Function at 0x61c46db9
Capabilities:
Parse credit card information
Reference sql statements
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x3ec
mov dword [ebp - 0x30c], eax
mov eax, dword [eax + 4]
mov dword [ebp - 0x338], eax
mov edx, dword [ebp - 0x30c]
mov edx, dword [edx]
mov dword [ebp - 0x308], edx
mov cl, byte [edx + 0x3e]
mov byte [ebp - 0x371], cl
mov ebx, dword [ebp - 0x30c]
mov ebx, dword [ebx + 8]
mov dword [ebp - 0x324], ebx
mov esi, dword [edx + 0x20]
mov edi, dword [edx + 0x24]
mov dword [ebp - 0x368], esi
mov dword [ebp - 0x364], edi
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeEnter
mov eax, dword [ebp - 0x30c]
cmp dword [eax + 0x50], 7
je 0x61c4e9bb
mov dword [eax + 0x50], 0
mov dword [eax + 0x88], 0
mov dword [eax + 0x8c], 0
mov dword [eax + 0x14], 0
mov edx, dword [ebp - 0x308]
mov dword [edx + 0x1c4], 0
mov eax, dword [edx + 0xf0]
test eax, eax
jne 0x61c4ea66
mov dword [ebp - 0x370], 0
cmp dword [edx + 0x124], 0
je 0x61c46e95
mov ecx, dword [edx + 0x12c]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 0x7c]
xor edx, edx
div ecx
sub ecx, edx
mov dword [ebp - 0x370], ecx
mov esi, dword [ebp - 0x30c]
imul eax, dword [esi + 0x4c], 0x14
add eax, dword [ebp - 0x338]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x35c], 0
mov dword [ebp - 0x36c], 0
mov byte [ebp - 0x389], 0
lea edi, [ebp - 0x2e8]
mov dword [ebp - 0x3cc], edi
movzx eax, byte [ebp - 0x371]
mov dword [ebp - 0x34c], eax
mov edx, dword [ebp - 0x308]
cmp byte [edx + 0x41], 0
jne 0x61c4e9d8
inc dword [ebp - 0x35c]
mov ecx, dword [ebp - 0x304]
mov dl, byte [ecx]
lea eax, [edx - 1]
cmp al, 0x9d
ja case.0x61c46f15.61
movzx eax, al
jmp dword [eax*4 + 0x61c797e4]
mov dword [ebp - 0x300], 0
mov ebx, dword [ebp - 0x304]
mov eax, dword [ebx + 8]
dec eax
imul eax, eax, 0x14
add eax, dword [ebp - 0x338]
mov dword [ebp - 0x304], eax
mov esi, dword [ebp - 0x308]
mov eax, dword [esi + 0xf0]
test eax, eax
jne 0x61c4ea83
mov eax, dword [esi + 0x124]
mov edi, dword [ebp - 0x370]
cmp dword [ebp - 0x35c], edi
jb 0x61c4e8ba
test eax, eax
je 0x61c4e8ba
mov ebx, dword [esi + 0x12c]
mov edx, dword [esi + 0x128]
mov dword [esp], edx
call eax
test eax, eax
jne 0x61c4e8d6
mov eax, dword [ebp - 0x35c]
add eax, ebx
mov dword [ebp - 0x370], eax
mov eax, dword [ebp - 0x35c]
xor edx, edx
div ebx
sub dword [ebp - 0x370], edx
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x324]
mov word [edx + 8], 4
mov eax, ecx
sub eax, dword [ebp - 0x338]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [edx], eax
mov ebx, eax
sar ebx, 0x1f
mov dword [edx + 4], ebx
mov dword [ebp - 0x300], 0
mov esi, dword [ebp - 0x304]
mov eax, dword [esi + 8]
dec eax
imul eax, eax, 0x14
add eax, dword [ebp - 0x338]
mov dword [ebp - 0x304], eax
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
imul eax, dword [edi + 4], 0x28
add eax, dword [ebp - 0x324]
imul edx, dword [eax], 0x14
add edx, dword [ebp - 0x338]
mov dword [ebp - 0x304], edx
mov word [eax + 8], pe_nt_image_headers32
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x324]
mov ecx, edx
mov edx, dword [edx + 0xc]
dec edx
mov dword [eax], edx
mov ebx, edx
sar ebx, 0x1f
mov dword [eax + 4], ebx
mov word [eax + 8], 4
mov dword [ebp - 0x300], 0
cmp dword [ecx + 8], 0
jmp 0x61c48598
mov esi, dword [ebp - 0x304]
imul eax, dword [esi + 4], 0x28
add eax, dword [ebp - 0x324]
imul edx, dword [eax], 0x14
mov edi, dword [ebp - 0x338]
mov edx, dword [edi + edx + 8]
dec edx
imul edx, edx, 0x14
add edx, edi
mov dword [ebp - 0x304], edx
mov word [eax + 8], pe_nt_image_headers32
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
imul eax, dword [edx + 4], 0x28
add eax, dword [ebp - 0x324]
mov word [eax + 8], 4
mov edx, dword [eax]
mov ecx, dword [ebp - 0x304]
sub ecx, dword [ebp - 0x338]
sar ecx, 2
imul ecx, ecx, 0xcccccccd
mov dword [eax], ecx
mov ebx, ecx
sar ebx, 0x1f
mov dword [eax + 4], ebx
imul edx, edx, 0x14
add edx, dword [ebp - 0x338]
mov dword [ebp - 0x304], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
imul eax, dword [esi + 0xc], 0x28
mov dword [ebp - 0x300], 0
mov edi, dword [ebp - 0x324]
test byte [edi + eax + 8], 1
je 0x61c4e8ba
mov esi, dword [ebp - 0x304]
sub esi, dword [ebp - 0x338]
sar esi, 2
imul esi, esi, 0xcccccccd
mov edx, dword [ebp - 0x304]
mov eax, dword [edx + 4]
test eax, eax
jne 0x61c4724d
mov ecx, dword [ebp - 0x30c]
mov ebx, dword [ecx + 0xb0]
test ebx, ebx
je 0x61c4724d
mov eax, dword [ebx + 4]
mov dword [ecx + 0xb0], eax
dec dword [ecx + 0xb8]
mov eax, dword [ecx + 0x5c]
mov esi, dword [ebp - 0x308]
mov dword [esi + 0x50], eax
add dword [esi + 0x54], eax
mov esi, dword [ebx]
mov eax, esi
call sym._closeCursorsInFrame
mov eax, dword [ebx + 0x14]
mov dword [esi + 0xc8], eax
mov eax, dword [ebx + 0x38]
mov dword [esi + 0xc4], eax
mov eax, dword [ebx + 8]
mov dword [esi + 4], eax
mov eax, dword [ebx + 0x30]
mov dword [esi + 0x20], eax
mov eax, dword [ebx + 0x10]
mov dword [esi + 8], eax
mov eax, dword [ebx + 0x34]
mov dword [esi + 0x1c], eax
mov eax, dword [ebx + 0x18]
mov dword [esi + 0x38], eax
mov eax, dword [ebx + 0x28]
mov dword [esi + 0x24], eax
mov eax, dword [esi]
mov edx, dword [ebx + 0x20]
mov ecx, dword [ebx + 0x24]
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], ecx
mov edx, dword [ebx + 0x44]
mov dword [esi + 0x5c], edx
mov edx, dword [ebx + 0x48]
mov dword [eax + 0x50], edx
mov eax, dword [ebx + 0x2c]
mov ecx, dword [ebp - 0x308]
mov edx, dword [ecx + 0x20]
mov ecx, dword [ecx + 0x24]
mov dword [ebp - 0x368], edx
mov dword [ebp - 0x364], ecx
mov ebx, dword [ebp - 0x304]
cmp dword [ebx + 8], 4
jne 0x61c47215
imul eax, eax, 0x14
mov esi, dword [ebp - 0x30c]
add eax, dword [esi + 4]
mov eax, dword [eax + 8]
dec eax
mov edi, dword [ebp - 0x30c]
mov edi, dword [edi + 4]
mov dword [ebp - 0x338], edi
mov edx, dword [ebp - 0x30c]
mov edx, dword [edx + 8]
mov dword [ebp - 0x324], edx
imul eax, eax, 0x14
add eax, edi
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x30c]
mov dword [ecx + 0x50], eax
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 8]
mov byte [ecx + 0x56], dl
mov dword [ecx + 0x4c], esi
test eax, eax
je 0x61c47317
mov dl, byte [ebx + 3]
xor eax, eax
test dl, dl
je 0x61c472a5
movzx edx, dl
mov eax, dword [edx*4 + 0x61c82718]
test eax, eax
je 0x61c472a5
mov edx, dword [ebx + 0x10]
test edx, edx
je 0x61c472a5
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp + 4], str._s_constraint_failed:__s
mov dword [esp], ecx
call sym._sqlite3VdbeError
jmp 0x61c472e3
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 0x10]
test edx, edx
je 0x61c472c9
mov dword [esp + 8], edx
mov dword [esp + 4], 0x61c77578
mov eax, dword [ebp - 0x30c]
mov dword [esp], eax
jmp 0x61c472de
mov dword [esp + 8], eax
mov dword [esp + 4], str._s_constraint_failed
mov edx, dword [ebp - 0x30c]
mov dword [esp], edx
call sym._sqlite3VdbeError
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [ecx + 0xa8]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], str.abort_at__d_in___s_:__s
mov ebx, dword [ebp - 0x304]
mov eax, dword [ebx + 4]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_log
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeHalt
mov ebx, eax
cmp eax, 5
jne 0x61c47334
mov esi, dword [ebp - 0x30c]
jmp 0x61c49bdd
mov edi, dword [ebp - 0x30c]
cmp dword [edi + 0x50], 1
jmp 0x61c49b2b
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 8]
call sym._out2Prerelease.clone.119
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 4]
mov dword [eax], edx
mov esi, edx
sar esi, 0x1f
mov dword [eax + 4], esi
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 8]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 8]
call sym._out2Prerelease.clone.119
mov edx, dword [edi + 0x10]
mov ecx, dword [edx + 4]
mov edx, dword [edx]
mov dword [eax], edx
mov dword [eax + 4], ecx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 8]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 8]
call sym._out2Prerelease.clone.119
mov word [eax + 8], 8
mov edx, dword [ebx + 0x10]
fld qword [edx]
fstp qword [eax]
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 8]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 8]
call sym._out2Prerelease.clone.119
mov ebx, eax
mov byte [edi], 0x19
mov esi, dword [edi + 0x10]
mov eax, esi
call sym._sqlite3Strlen30
mov dword [edi + 4], eax
cmp byte [ebp - 0x371], 1
je 0x61c4748c
mov dword [esp + 4], 0
mov dword [esp], 1
or ecx, 0xffffffff
mov edx, esi
mov eax, ebx
call sym._sqlite3VdbeMemSetStr
mov dword [ebp - 0x300], eax
cmp eax, 0x12
je 0x61c4e99b
mov edx, dword [ebp - 0x34c]
mov eax, ebx
call sym._sqlite3VdbeChangeEncoding
test eax, eax
jne 0x61c4e9d8
mov dword [ebx + 0x18], 0
or word [ebx + 8], 0x800
cmp byte [edi + 1], 0xff
jne 0x61c47474
mov edx, dword [edi + 0x10]
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbFree
mov esi, dword [ebp - 0x304]
mov byte [esi + 1], 0xff
mov eax, dword [ebx + 0x10]
mov dword [esi + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [esi + 4], eax
jmp 0x61c47496
mov dword [ebp - 0x300], 0
mov edi, dword [ebp - 0x308]
mov eax, dword [edi + 0x58]
mov edi, dword [ebp - 0x304]
cmp dword [edi + 4], eax
jle 0x61c474b9
jmp 0x61c4e99b
mov dword [ebp - 0x300], 0
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 8]
call sym._out2Prerelease.clone.119
mov word [eax + 8], 0xa02
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 0x10]
mov dword [eax + 0x10], edx
mov edx, dword [esi + 4]
mov dword [eax + 0xc], edx
mov dl, byte [ebp - 0x371]
mov byte [eax + 0xa], dl
cmp byte [esi + 3], 0
je 0x61c4e8ba
imul ecx, dword [esi + 0xc], 0x28
add ecx, dword [ebp - 0x324]
mov edx, dword [ecx + 4]
or edx, dword [ecx]
je 0x61c4e8ba
mov word [eax + 8], 0xa10
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 8]
call sym._out2Prerelease.clone.119
mov esi, eax
mov edi, dword [ebp - 0x304]
mov ebx, dword [edi + 0xc]
sub ebx, dword [edi + 8]
mov edi, 1
mov eax, dword [ebp - 0x304]
cmp dword [eax + 4], 0
je 0x61c47556
mov edi, 0x101
mov word [esi + 8], di
jmp 0x61c4756b
add esi, 0x28
mov eax, esi
call sym._sqlite3VdbeMemSetNull
mov word [esi + 8], di
dec ebx
test ebx, ebx
jg 0x61c4755c
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
imul edx, dword [ecx + 4], 0x28
add edx, dword [ebp - 0x324]
mov eax, dword [edx + 8]
and al, 0x7e
or eax, 1
mov word [edx + 8], ax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 8]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 8]
call sym._out2Prerelease.clone.119
mov ebx, eax
mov edi, dword [ebp - 0x304]
mov ecx, dword [edi + 4]
mov edx, dword [edi + 0x10]
mov dword [esp + 4], 0
mov dword [esp], 0
call sym._sqlite3VdbeMemSetStr
mov al, byte [ebp - 0x371]
mov byte [ebx + 0xa], al
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
mov ebx, dword [edx + 4]
dec ebx
imul ebx, ebx, 0x28
mov ecx, dword [ebp - 0x30c]
add ebx, dword [ecx + 0x3c]
mov eax, ebx
call sym._sqlite3VdbeMemTooBig
test eax, eax
jne 0x61c4e99b
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 8]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 8]
call sym._out2Prerelease.clone.119
mov ecx, 0x800
mov edx, ebx
call sym._sqlite3VdbeMemShallowCopy
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov eax, dword [eax + 0xc]
mov dword [ebp - 0x318], eax
mov edx, dword [ebp - 0x304]
imul ebx, dword [edx + 4], 0x28
add ebx, dword [ebp - 0x324]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x300]
call sym._sqlite3VdbeMemRelease
mov edi, dword [ebp - 0x300]
mov esi, ebx
mov ecx, 0xa
rep movsd dword es:[edi], dword [esi]
mov word [ebx + 8], 1
mov dword [ebx + 0x18], 0
mov ecx, dword [ebp - 0x300]
test byte [ecx + 9], 0x10
je 0x61c476c2
mov eax, ecx
call sym._sqlite3VdbeMemMakeWriteable
test eax, eax
jne 0x61c4e9d8
dec dword [ebp - 0x318]
je 0x61c4e846
add ebx, 0x28
add dword [ebp - 0x300], 0x28
jmp 0x61c47680
mov ebx, dword [ebp - 0x304]
mov esi, dword [ebx + 0xc]
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x324]
imul ebx, dword [ebx + 8], 0x28
add ebx, dword [ebp - 0x324]
mov ecx, 0x1000
mov edx, edi
mov eax, ebx
call sym._sqlite3VdbeMemShallowCopy
test byte [ebx + 9], 0x10
je 0x61c4771a
mov eax, ebx
call sym._sqlite3VdbeMemMakeWriteable
test eax, eax
jne 0x61c4e9d8
test esi, esi
je 0x61c4e852
dec esi
add ebx, 0x28
add edi, 0x28
jmp 0x61c476f7
mov esi, dword [ebp - 0x304]
imul edx, dword [esi + 4], 0x28
add edx, dword [ebp - 0x324]
imul eax, dword [esi + 8], 0x28
add eax, dword [ebp - 0x324]
mov ecx, 0x1000
call sym._sqlite3VdbeMemShallowCopy
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x308]
mov eax, dword [edi + 0x124]
mov edx, dword [ebp - 0x370]
cmp dword [ebp - 0x35c], edx
jb 0x61c4778f
test eax, eax
je 0x61c4778f
mov edx, dword [edi + 0x128]
mov dword [esp], edx
call eax
test eax, eax
jne 0x61c4e8d6
xor edx, edx
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeCheckFk
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4e8ba
mov edx, 1
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeCloseStatement
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4e8ba
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x48]
add eax, 2
or eax, 1
mov dword [ecx + 0x48], eax
mov esi, dword [ebp - 0x304]
imul ebx, dword [esi + 4], 0x28
add ebx, dword [ebp - 0x324]
mov dword [ecx + 0x14], ebx
xor esi, esi
jmp 0x61c4781f
test byte [ebx + 9], 0x10
je 0x61c47806
mov eax, ebx
call sym._sqlite3VdbeMemMakeWriteable
test eax, eax
jne 0x61c4e9d8
movzx eax, word [ebx + 8]
and eax, 0x202
cmp eax, 2
jne 0x61c4781b
mov eax, ebx
call sym._vdbeMemAddTerminator
inc esi
add ebx, 0x28
mov edi, dword [ebp - 0x304]
cmp esi, dword [edi + 8]
jl 0x61c477f1
mov eax, dword [ebp - 0x308]
cmp byte [eax + 0x41], 0
jne 0x61c4e9d8
mov eax, edi
sub eax, dword [ebp - 0x338]
sar eax, 2
imul eax, eax, 0xcccccccd
inc eax
mov edx, dword [ebp - 0x30c]
mov dword [edx + 0x4c], eax
mov ebx, 0x64
jmp 0x61c4e960
mov ecx, dword [ebp - 0x304]
imul eax, dword [ecx + 4], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x320], eax
imul eax, dword [ecx + 8], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x300], eax
imul ebx, dword [ecx + 0xc], 0x28
add ebx, dword [ebp - 0x324]
mov esi, dword [ebp - 0x320]
mov edx, dword [esi + 8]
mov eax, edx
mov edi, dword [ebp - 0x300]
or eax, dword [edi + 8]
test al, 1
je 0x61c478bd
mov eax, ebx
call sym._sqlite3VdbeMemSetNull
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
and dh, 0x40
je 0x61c478d5
mov eax, dword [ebp - 0x320]
call sym._sqlite3VdbeMemExpandBlob
test eax, eax
jne 0x61c4e9d8
mov eax, dword [ebp - 0x300]
test byte [eax + 9], 0x40
je 0x61c478ee
call sym._sqlite3VdbeMemExpandBlob
test eax, eax
jne 0x61c4e9d8
mov edx, dword [ebp - 0x320]
movzx eax, word [edx + 8]
test al, 0x12
jne 0x61c47917
xor ecx, ecx
mov edx, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x320]
call sym._sqlite3VdbeMemStringify
test eax, eax
jne 0x61c4e9d8
mov ecx, dword [ebp - 0x300]
movzx eax, word [ecx + 8]
test al, 0x12
jne 0x61c47940
xor ecx, ecx
mov edx, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x300]
call sym._sqlite3VdbeMemStringify
test eax, eax
jne 0x61c4e9d8
mov esi, dword [ebp - 0x300]
mov esi, dword [esi + 0xc]
mov edi, dword [ebp - 0x320]
mov edi, dword [edi + 0xc]
add esi, edi
mov dword [ebp - 0x318], esi
mov eax, esi
cdq
mov edi, edx
mov edx, dword [ebp - 0x308]
mov ecx, dword [edx + 0x58]
mov eax, ecx
cdq
cmp edi, edx
jg 0x61c4e99b
jl 0x61c47981
cmp dword [ebp - 0x318], ecx
ja 0x61c4e99b
xor ecx, ecx
cmp ebx, dword [ebp - 0x300]
sete cl
mov edx, dword [ebp - 0x318]
add edx, 2
mov eax, ebx
call sym._sqlite3VdbeMemGrow
test eax, eax
jne 0x61c4e9d8
mov eax, dword [ebx + 8]
and ax, 0xbe00
or eax, 2
mov word [ebx + 8], ax
cmp ebx, dword [ebp - 0x300]
je 0x61c479cd
mov eax, dword [ebx + 0x10]
mov ecx, dword [ebp - 0x300]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 0x300]
add eax, dword [edx + 0xc]
mov ecx, dword [ebp - 0x320]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x10]
mov edx, dword [ebp - 0x318]
mov byte [eax + edx], 0
mov eax, dword [ebx + 0x10]
mov byte [eax + edx + 1], 0
or word [ebx + 8], 0x200
mov dword [ebx + 0xc], edx
mov cl, byte [ebp - 0x371]
mov byte [ebx + 0xa], cl
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x320], eax
call sym._numericType
mov word [ebp - 0x348], ax
imul eax, dword [ebx + 8], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x330], eax
call sym._numericType
mov word [ebp - 0x350], ax
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x318], eax
mov esi, dword [ebp - 0x330]
mov eax, dword [esi + 8]
mov edi, dword [ebp - 0x320]
or eax, dword [edi + 8]
test al, 1
jne 0x61c4803d
mov eax, dword [ebp - 0x350]
and eax, dword [ebp - 0x348]
test al, 4
je 0x61c47ec6
mov eax, dword [edi]
mov edx, dword [edi + 4]
mov dword [ebp - 0x3d8], eax
mov dword [ebp - 0x3d4], edx
mov ecx, dword [esi]
mov ebx, dword [esi + 4]
mov dword [ebp - 0x300], ecx
mov dword [ebp - 0x2fc], ebx
mov dword [ebp - 0x50], ecx
mov dword [ebp - 0x4c], ebx
mov esi, dword [ebp - 0x304]
mov al, byte [esi]
cmp al, 0x5a
je 0x61c47b13
ja 0x61c47adb
cmp al, 0x59
jne 0x61c47e2e
jmp 0x61c47af0
cmp al, 0x5b
je 0x61c47b77
cmp al, 0x5c
jne 0x61c47e2e
jmp 0x61c47dc5
lea eax, [ebp - 0x50]
mov edx, dword [ebp - 0x3d8]
mov ecx, dword [ebp - 0x3d4]
call sym._sqlite3AddInt64
mov bl, 1
test eax, eax
jne 0x61c47ecc
jmp 0x61c47e98
mov eax, dword [ebp - 0x3d4]
sub eax, 0x80000000
or eax, dword [ebp - 0x3d8]
jne 0x61c47b4f
mov bl, 1
cmp dword [ebp - 0x2fc], 0
jns 0x61c47ecc
mov edx, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x2fc]
add edx, 0
adc ecx, 0x80000000
jmp 0x61c47cee
mov edx, dword [ebp - 0x3d8]
mov ecx, dword [ebp - 0x3d4]
neg edx
adc ecx, 0
neg ecx
lea eax, [ebp - 0x50]
call sym._sqlite3AddInt64
test eax, eax
je 0x61c47e98
jmp 0x61c47eca
mov ebx, dword [ebp - 0x2fc]
sar ebx, 0x1f
mov esi, ebx
sar esi, 0x1f
mov ebx, esi
xor esi, esi
add ebx, dword [ebp - 0x300]
adc esi, dword [ebp - 0x2fc]
mov ebx, esi
mov esi, ebx
sar esi, 0x1f
mov dword [ebp - 0x33c], ebx
mov edx, esi
mov edi, dword [ebp - 0x300]
mov dword [ebp - 0x380], edi
mov eax, dword [ebp - 0x2fc]
and eax, 0x80000000
mov dword [ebp - 0x37c], eax
test eax, eax
jns 0x61c47bf6
mov ecx, edi
dec ecx
mov dword [ebp - 0x3a0], ecx
mov dword [ebp - 0x39c], 0xffffffff
mov ebx, dword [ebp - 0x3a0]
mov esi, dword [ebp - 0x39c]
add ebx, 1
adc esi, 0
mov dword [ebp - 0x380], ebx
mov dword [ebp - 0x37c], esi
mov esi, dword [ebp - 0x380]
mov dword [ebp - 0x334], esi
mov edi, dword [ebp - 0x37c]
mov dword [ebp - 0x390], edi
mov ebx, dword [ebp - 0x3d4]
sar ebx, 0x1f
mov esi, ebx
sar esi, 0x1f
mov ebx, esi
xor esi, esi
add ebx, dword [ebp - 0x3d8]
adc esi, dword [ebp - 0x3d4]
mov ebx, esi
mov esi, ebx
sar esi, 0x1f
mov edi, ebx
mov eax, esi
mov ecx, dword [ebp - 0x3d8]
mov dword [ebp - 0x388], ecx
mov ebx, dword [ebp - 0x3d4]
and ebx, 0x80000000
mov dword [ebp - 0x384], ebx
test ebx, ebx
jns 0x61c47c8a
mov esi, ecx
dec esi
mov dword [ebp - 0x3a8], esi
mov dword [ebp - 0x3a4], 0xffffffff
mov ecx, dword [ebp - 0x3a8]
mov ebx, dword [ebp - 0x3a4]
add ecx, 1
adc ebx, 0
mov dword [ebp - 0x388], ecx
mov dword [ebp - 0x384], ebx
mov esi, dword [ebp - 0x388]
mov ebx, dword [ebp - 0x384]
mov dword [ebp - 0x394], ebx
mov ecx, dword [ebp - 0x33c]
or ecx, edx
jne 0x61c47d17
mov ebx, eax
or ebx, edi
jne 0x61c47cf9
mov ebx, dword [ebp - 0x2fc]
imul ebx, dword [ebp - 0x3d8]
mov eax, dword [ebp - 0x300]
imul eax, dword [ebp - 0x3d4]
add ebx, eax
mov eax, dword [ebp - 0x300]
mul dword [ebp - 0x3d8]
mov dword [ebp - 0x300], eax
add edx, ebx
mov dword [ebp - 0x2fc], edx
mov edx, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], ecx
jmp 0x61c47e98
mov ecx, dword [ebp - 0x334]
imul ecx, eax
mov eax, dword [ebp - 0x390]
imul eax, edi
add ecx, eax
mov eax, dword [ebp - 0x334]
mul edi
jmp 0x61c47d3b
or eax, edi
jne 0x61c47eca
mov ecx, dword [ebp - 0x394]
imul ecx, dword [ebp - 0x33c]
mov eax, edx
imul eax, esi
add ecx, eax
mov eax, dword [ebp - 0x33c]
mul esi
mov dword [ebp - 0x300], eax
add edx, ecx
mov dword [ebp - 0x2fc], edx
mov edx, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x2fc]
mov dword [ebp - 0x58], edx
mov dword [ebp - 0x54], ecx
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
mov ecx, eax
mov ebx, edx
add ecx, 0x80000000
adc ebx, 0
cmp ebx, 0
ja 0x61c47eca
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], eax
mov ebx, dword [ebp - 0x394]
imul ebx, dword [ebp - 0x334]
mov eax, dword [ebp - 0x390]
imul eax, esi
add ebx, eax
mov eax, dword [ebp - 0x334]
mul esi
mov esi, eax
lea edi, [ebx + edx]
lea eax, [ebp - 0x58]
mov edx, esi
mov ecx, edi
call sym._sqlite3AddInt64
test eax, eax
jne 0x61c47eca
mov eax, dword [ebp - 0x58]
mov edx, dword [ebp - 0x54]
jmp 0x61c47e92
mov edx, dword [ebp - 0x3d4]
or edx, dword [ebp - 0x3d8]
je 0x61c4803d
cmp dword [ebp - 0x3d4], 0xffffffff
jne 0x61c47e00
cmp dword [ebp - 0x3d8], 0xffffffff
jne 0x61c47e00
mov eax, dword [ebp - 0x2fc]
sub eax, 0x80000000
or eax, dword [ebp - 0x300]
je 0x61c47eca
mov ecx, dword [ebp - 0x3d8]
mov ebx, dword [ebp - 0x3d4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov ebx, dword [ebp - 0x300]
mov esi, dword [ebp - 0x2fc]
mov dword [esp], ebx
mov dword [esp + 4], esi
call dbg.__divdi3
jmp 0x61c47e92
mov esi, dword [ebp - 0x3d4]
or esi, dword [ebp - 0x3d8]
je 0x61c4803d
cmp dword [ebp - 0x3d4], 0xffffffff
jne 0x61c47e66
cmp dword [ebp - 0x3d8], 0xffffffff
jne 0x61c47e66
mov dword [ebp - 0x3d8], 1
mov dword [ebp - 0x3d4], 0
mov eax, dword [ebp - 0x3d8]
mov edx, dword [ebp - 0x3d4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov edx, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x2fc]
mov dword [esp], edx
mov dword [esp + 4], ecx
call dbg.__moddi3
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x318]
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, dword [ecx + 8]
and ax, 0xbe00
or eax, 4
mov word [ecx + 8], ax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
xor ebx, ebx
jmp 0x61c47ecc
mov bl, 1
mov eax, dword [ebp - 0x320]
call sym._sqlite3VdbeRealValue
mov eax, dword [ebp - 0x330]
fstp qword [ebp - 0x3c8]
call sym._sqlite3VdbeRealValue
mov esi, dword [ebp - 0x304]
mov al, byte [esi]
cmp al, 0x5a
fld qword [ebp - 0x3c8]
je 0x61c47f13
ja 0x61c47f02
cmp al, 0x59
jne 0x61c47f3b
jmp 0x61c47f0c
cmp al, 0x5b
je 0x61c47f1a
cmp al, 0x5c
jne 0x61c47f3b
jmp 0x61c47f21
faddp st(1)
jmp 0x61c47fd5
fsubp st(1)
jmp 0x61c47fd5
fmulp st(1)
jmp 0x61c47fd5
fldz
fxch st(1)
fucom st(1)
fnstsw ax
fstp st(1)
sahf
jp 0x61c47f34
je 0x61c48035
fdivp st(1)
jmp 0x61c47fd5
fnstcw word [ebp - 0x2f2]
mov ax, word [ebp - 0x2f2]
or ah, 0xc
mov word [ebp - 0x2f4], ax
fldcw word [ebp - 0x2f4]
fistp qword [ebp - 0x2f0]
fldcw word [ebp - 0x2f2]
mov eax, dword [ebp - 0x2f0]
mov edx, dword [ebp - 0x2ec]
fldcw word [ebp - 0x2f4]
fistp qword [ebp - 0x2f0]
fldcw word [ebp - 0x2f2]
mov esi, dword [ebp - 0x2f0]
mov edi, dword [ebp - 0x2ec]
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x4c], edi
mov ecx, edx
or ecx, eax
je 0x61c4803d
cmp edx, 0xffffffff
jne 0x61c47faf
cmp eax, 0xffffffff
jne 0x61c47faf
mov eax, 1
xor edx, edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
mov dword [esp], esi
mov dword [esp + 4], edi
call dbg.__moddi3
mov dword [ebp - 0x2f0], eax
mov dword [ebp - 0x2ec], edx
fild qword [ebp - 0x2f0]
fst qword [esp]
fstp qword [ebp - 0x3c8]
call sym._sqlite3IsNaN
test eax, eax
fld qword [ebp - 0x3c8]
jne 0x61c4803b
mov esi, dword [ebp - 0x318]
fstp qword [esi]
mov eax, dword [esi + 8]
and ax, 0xbe00
or eax, 8
mov word [esi + 8], ax
test bl, bl
jne 0x61c4e85e
mov eax, dword [ebp - 0x350]
or eax, dword [ebp - 0x348]
test al, 8
jne 0x61c4e85e
mov eax, esi
call sym._sqlite3VdbeIntegerAffinity
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
fstp st(0)
fstp st(0)
jmp 0x61c4803d
fstp st(0)
mov eax, dword [ebp - 0x318]
call sym._sqlite3VdbeMemSetNull
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov eax, dword [edi + 4]
mov dword [ebp - 0x300], 0
test eax, eax
je 0x61c4e8ba
imul eax, eax, 0x28
add eax, dword [ebp - 0x324]
xor edx, edx
xor ecx, ecx
call sym._sqlite3VdbeMemSetInt64
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov bl, byte [eax + 3]
movzx eax, bl
lea edx, [eax*4 + 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbMallocRaw
test eax, eax
je 0x61c4e9d8
mov dword [eax], 0
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 0x10]
mov dword [eax + 4], edx
mov edx, ecx
sub edx, dword [ebp - 0x338]
sar edx, 2
imul edx, edx, 0xcccccccd
mov dword [eax + 0x10], edx
mov esi, dword [ebp - 0x30c]
mov dword [eax + 0xc], esi
mov byte [eax + 0x1a], bl
mov byte [ecx + 1], 0xec
mov dword [ecx + 0x10], eax
mov byte [ecx], 0x24
mov edi, dword [ebp - 0x304]
mov ebx, dword [edi + 0x10]
imul esi, dword [edi + 0xc], 0x28
add esi, dword [ebp - 0x324]
cmp dword [ebx], esi
je 0x61c4812a
mov dword [ebx], esi
movzx eax, byte [ebx + 0x1a]
jmp 0x61c48124
mov edx, eax
mov ecx, dword [ebp - 0x304]
add edx, dword [ecx + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0x324]
mov dword [ebx + eax*4 + 0x1c], edx
dec eax
cmp eax, 0xffffffff
jne 0x61c4810c
mov edx, dword [ebx]
mov eax, dword [edx + 8]
and ax, 0xbe00
or eax, 1
mov word [edx + 8], ax
mov byte [ebx + 0x19], 0
mov eax, dword [ebp - 0x368]
mov edx, dword [ebp - 0x364]
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov eax, dword [ebx + 4]
lea edx, [ebx + 0x1c]
mov dword [esp + 8], edx
movzx edx, byte [ebx + 0x1a]
mov dword [esp + 4], edx
mov dword [esp], ebx
call dword [eax + 0xc]
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x20]
mov edx, dword [edx + 0x24]
mov dword [ebp - 0x368], eax
mov dword [ebp - 0x364], edx
mov dword [ebp - 0x300], 0
cmp byte [ebx + 0x19], 0
je 0x61c481e0
cmp dword [ebx + 0x14], 0
je 0x61c481c9
mov eax, dword [ebx]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_value_text
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61c77578
mov ecx, dword [ebp - 0x30c]
mov dword [esp], ecx
call sym._sqlite3VdbeError
mov edi, dword [ebx + 0x14]
mov dword [ebp - 0x300], edi
mov eax, dword [ebp - 0x304]
mov ecx, dword [eax + 4]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeDeleteAuxData
movzx eax, word [esi + 8]
test al, 0x12
je 0x61c4e8ba
mov edx, dword [ebp - 0x34c]
mov eax, dword [ebx]
call sym._sqlite3VdbeChangeEncoding
mov eax, dword [ebx]
jmp 0x61c4e18d
mov edx, dword [ebp - 0x304]
imul ecx, dword [edx + 4], 0x28
add ecx, dword [ebp - 0x324]
imul eax, dword [edx + 8], 0x28
add eax, dword [ebp - 0x324]
imul edi, dword [edx + 0xc], 0x28
add edi, dword [ebp - 0x324]
mov dword [ebp - 0x318], edi
mov edx, dword [eax + 8]
or edx, dword [ecx + 8]
and dl, 1
je 0x61c4824b
mov eax, edi
call sym._sqlite3VdbeMemSetNull
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x3bc], ecx
call sym._sqlite3VdbeIntValue
mov ebx, eax
mov esi, edx
mov ecx, dword [ebp - 0x3bc]
mov eax, ecx
call sym._sqlite3VdbeIntValue
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x31c], edx
mov ecx, dword [ebp - 0x304]
mov al, byte [ecx]
cmp al, 0x55
jne 0x61c48291
mov ecx, dword [ebp - 0x320]
and ecx, ebx
mov eax, dword [ebp - 0x31c]
and eax, esi
jmp 0x61c482a5
cmp al, 0x56
jne 0x61c482ae
mov ecx, dword [ebp - 0x320]
or ecx, ebx
mov eax, dword [ebp - 0x31c]
or eax, esi
mov ebx, ecx
mov esi, eax
jmp 0x61c483b7
mov edi, dword [ebp - 0x31c]
or edi, dword [ebp - 0x320]
je 0x61c483b7
cmp dword [ebp - 0x31c], 0
jge 0x61c482f8
mov dl, 0xaf
sub dl, al
mov al, dl
cmp dword [ebp - 0x31c], 0xffffffff
jl 0x61c48303
jg 0x61c482e3
cmp dword [ebp - 0x320], 0xffffffc1
jb 0x61c48303
neg dword [ebp - 0x320]
adc dword [ebp - 0x31c], 0
neg dword [ebp - 0x31c]
jmp 0x61c48320
jg 0x61c48303
cmp dword [ebp - 0x320], 0x3f
jbe 0x61c48320
cmp al, 0x57
je 0x61c483b3
mov eax, esi
add eax, 0
jns 0x61c483b3
or ebx, 0xffffffff
mov esi, ebx
jmp 0x61c483b7
cmp al, 0x57
jne 0x61c48340
mov edi, dword [ebp - 0x320]
mov eax, ebx
mov edx, esi
mov ecx, edi
shld edx, eax, cl
shl eax, cl
test cl, 0x20
je 0x61c4833e
mov edx, eax
xor eax, eax
jmp 0x61c48399
mov cl, byte [ebp - 0x320]
mov eax, ebx
mov edx, esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x61c48358
mov eax, edx
xor edx, edx
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], edx
test esi, esi
jns 0x61c483a5
mov ecx, 0x40
sub ecx, dword [ebp - 0x320]
mov eax, 0xffffffff
mov edx, eax
shl eax, cl
test cl, 0x20
je 0x61c48385
mov edx, eax
xor eax, eax
mov ecx, dword [ebp - 0x300]
or ecx, eax
mov ebx, dword [ebp - 0x2fc]
or ebx, edx
mov eax, ecx
mov edx, ebx
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x2fc], edx
mov ebx, dword [ebp - 0x300]
mov esi, dword [ebp - 0x2fc]
jmp 0x61c483b7
xor ebx, ebx
xor esi, esi
mov edx, dword [ebp - 0x318]
mov dword [edx], ebx
mov dword [edx + 4], esi
mov eax, dword [edx + 8]
and ax, 0xbe00
or eax, 4
mov word [edx + 8], ax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
imul ebx, dword [ecx + 4], 0x28
add ebx, dword [ebp - 0x324]
mov eax, ebx
call sym._sqlite3VdbeMemIntegerify
mov esi, dword [ebp - 0x304]
mov eax, dword [esi + 8]
cdq
add dword [ebx], eax
adc dword [ebx + 4], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
imul ebx, dword [edi + 4], 0x28
add ebx, dword [ebp - 0x324]
test byte [ebx + 8], 4
jne 0x61c48451
mov ecx, dword [ebp - 0x34c]
mov edx, 0x43
mov eax, ebx
call sym._applyAffinity
test byte [ebx + 8], 4
jne 0x61c48451
cmp dword [edi + 8], 0
jne 0x61c46fe0
jmp 0x61c4ea02
mov eax, dword [ebx + 8]
and ax, 0xbe00
or eax, 4
mov word [ebx + 8], ax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
imul ebx, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x324]
mov dword [ebp - 0x300], 0
test byte [ebx + 8], 4
je 0x61c4e8ba
mov eax, ebx
call sym._sqlite3VdbeRealValue
fstp qword [ebx]
mov eax, dword [ebx + 8]
and ax, 0xbe00
or eax, 8
mov word [ebx + 8], ax
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
imul ebx, dword [edx + 4], 0x28
add ebx, dword [ebp - 0x324]
mov dword [ebp - 0x300], 0
test byte [ebx + 9], 0x40
je 0x61c484db
mov eax, ebx
call sym._sqlite3VdbeMemExpandBlob
mov dword [ebp - 0x300], eax
mov ecx, dword [ebp - 0x304]
movzx edx, byte [ecx + 8]
mov ecx, dword [ebp - 0x34c]
mov eax, ebx
call sym._sqlite3VdbeMemCast
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
imul edi, dword [ebx + 4], 0x28
add edi, dword [ebp - 0x324]
imul ebx, dword [ebx + 0xc], 0x28
add ebx, dword [ebp - 0x324]
mov esi, dword [edi + 8]
mov eax, dword [ebx + 8]
mov word [ebp - 0x300], ax
or eax, esi
test al, 1
mov edx, dword [ebp - 0x304]
mov al, byte [edx + 3]
je 0x61c485a3
test al, al
jns 0x61c48558
mov eax, 1
test si, 1
je 0x61c48680
mov eax, dword [ebp - 0x300]
and eax, 0x101
dec eax
setne al
movzx eax, al
jmp 0x61c48680
movzx eax, al
test al, 0x20
je 0x61c4858c
mov ecx, dword [ebp - 0x304]
imul edx, dword [ecx + 8], 0x28
add edx, dword [ebp - 0x324]
mov eax, dword [edx + 8]
and ax, 0xbe00
or eax, 1
mov word [edx + 8], ax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
test al, 0x10
jne 0x61c46fea
jmp 0x61c4e8ba
and eax, 0x47
cmp al, 0x42
jle 0x61c485d4
mov eax, esi
and eax, 0xe
cmp eax, 2
jne 0x61c485bd
xor edx, edx
mov eax, edi
call sym._applyNumericAffinity
movzx eax, word [ebx + 8]
and eax, 0xe
cmp eax, 2
jne 0x61c48636
xor edx, edx
mov eax, ebx
call sym._applyNumericAffinity
jmp 0x61c48636
jne 0x61c48636
movzx eax, si
test al, 2
jne 0x61c48601
test al, 0xc
je 0x61c48601
mov ecx, 1
mov edx, dword [ebp - 0x34c]
mov eax, edi
call sym._sqlite3VdbeMemStringify
and si, 0x1ff
mov eax, dword [edi + 8]
and ax, 0xfe00
or esi, eax
movzx eax, word [ebx + 8]
test al, 2
jne 0x61c48636
test al, 0xc
je 0x61c48636
mov ecx, 1
mov edx, dword [ebp - 0x34c]
mov eax, ebx
call sym._sqlite3VdbeMemStringify
and word [ebp - 0x300], 0x1ff
mov eax, dword [ebx + 8]
and ax, 0xfe00
or word [ebp - 0x300], ax
test byte [edi + 9], 0x40
je 0x61c48648
mov eax, edi
call sym._sqlite3VdbeMemExpandBlob
and si, 0xbfff
test byte [ebx + 9], 0x40
je 0x61c4865e
mov eax, ebx
call sym._sqlite3VdbeMemExpandBlob
and word [ebp - 0x300], 0xbfff
mov eax, dword [ebp - 0x308]
cmp byte [eax + 0x41], 0
jne 0x61c4e9d8
mov edx, dword [ebp - 0x304]
mov ecx, dword [edx + 0x10]
mov edx, edi
mov eax, ebx
call sym._sqlite3MemCompare
mov ecx, dword [ebp - 0x304]
mov dl, byte [ecx]
sub edx, 0x4e
cmp dl, 4
ja case.default.0x61c48693
movzx edx, dl
jmp dword [edx*4 + 0x61c79a5c]
test eax, eax
sete al
jmp 0x61c486a6
test eax, eax
setne al
movzx eax, al
jmp 0x61c486be
test eax, eax
setle al
jmp 0x61c486a6
test eax, eax
setg al
jmp 0x61c486a6
not eax
shr eax, 0x1f
mov word [edi + 8], si
mov esi, dword [ebp - 0x300]
mov word [ebx + 8], si
mov edi, dword [ebp - 0x304]
test byte [edi + 3], 0x20
je 0x61c48706
imul ecx, dword [edi + 8], 0x28
add ecx, dword [ebp - 0x324]
mov edx, dword [ecx + 8]
and dx, 0xbe00
or edx, 4
mov word [ecx + 8], dx
mov dword [ecx], eax
cdq
mov dword [ecx + 4], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
jmp 0x61c4e0b7
mov ecx, dword [ebp - 0x304]
mov ecx, dword [ecx + 0x10]
mov dword [ebp - 0x360], ecx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
xor eax, eax
test byte [ebx + 3], 1
setne al
neg eax
and dword [ebp - 0x360], eax
mov esi, dword [ebx + 0xc]
mov dword [ebp - 0x300], esi
mov esi, dword [ebx + 0x10]
mov edi, dword [ebx + 4]
mov dword [ebp - 0x318], edi
mov eax, dword [ebx + 8]
mov dword [ebp - 0x320], eax
xor ebx, ebx
mov eax, dword [ebp - 0x36c]
mov edi, dword [ebp - 0x360]
jmp 0x61c487f0
mov eax, ebx
test edi, edi
je 0x61c48781
mov eax, dword [edi + ebx*4]
mov edx, dword [esi + 0x10]
mov dl, byte [edx + ebx]
mov byte [ebp - 0x360], dl
mov ecx, dword [esi + ebx*4 + 0x14]
mov edx, dword [ebp - 0x320]
lea edx, [eax + edx]
imul edx, edx, 0x28
add edx, dword [ebp - 0x324]
add eax, dword [ebp - 0x318]
imul eax, eax, 0x28
add eax, dword [ebp - 0x324]
call sym._sqlite3MemCompare
test eax, eax
je 0x61c487ef
mov dword [ebp - 0x36c], eax
cmp byte [ebp - 0x360], 0
je 0x61c4e86a
neg eax
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
inc ebx
cmp ebx, dword [ebp - 0x300]
jl 0x61c48778
mov dword [ebp - 0x36c], eax
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
cmp dword [ebp - 0x36c], 0
jge 0x61c48848
mov edx, dword [ebp - 0x304]
mov eax, dword [edx + 4]
dec eax
imul eax, eax, 0x14
add eax, dword [ebp - 0x338]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
jne 0x61c48872
mov ecx, dword [ebp - 0x304]
mov eax, dword [ecx + 8]
dec eax
imul eax, eax, 0x14
add eax, dword [ebp - 0x338]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov eax, dword [ebx + 0xc]
dec eax
imul eax, eax, 0x14
add eax, dword [ebp - 0x338]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
imul eax, dword [esi + 4], 0x28
add eax, dword [ebp - 0x324]
mov ebx, 2
test byte [eax + 8], 1
jne 0x61c488c2
call sym._sqlite3VdbeIntValue
or eax, edx
setne bl
movzx ebx, bl
mov edi, dword [ebp - 0x304]
imul eax, dword [edi + 8], 0x28
add eax, dword [ebp - 0x324]
mov edx, 2
test byte [eax + 8], 1
jne 0x61c488ea
call sym._sqlite3VdbeIntValue
or eax, edx
setne dl
movzx edx, dl
mov eax, dword [ebp - 0x304]
cmp byte [eax], 0x48
jne 0x61c48902
lea ebx, [ebx + ebx*2]
movzx edx, byte [edx + ebx + 0x61c826f0]
jmp 0x61c4890d
lea ebx, [ebx + ebx*2]
movzx edx, byte [edx + ebx + 0x61c826e4]
mov ecx, dword [ebp - 0x304]
imul eax, dword [ecx + 0xc], 0x28
add eax, dword [ebp - 0x324]
cmp edx, 2
mov ecx, dword [eax + 8]
jne 0x61c48940
and cx, 0xbe00
or ecx, 1
mov word [eax + 8], cx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [eax], edx
mov ebx, edx
sar ebx, 0x1f
mov dword [eax + 4], ebx
and cx, 0xbe00
or ecx, 4
mov word [eax + 8], cx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
imul esi, dword [edi + 4], 0x28
add esi, dword [ebp - 0x324]
imul ebx, dword [edi + 8], 0x28
add ebx, dword [ebp - 0x324]
mov eax, ebx
call sym._sqlite3VdbeMemSetNull
mov dword [ebp - 0x300], 0
test byte [esi + 8], 1
jne 0x61c4e8ba
mov word [ebx + 8], 4
mov eax, esi
call sym._sqlite3VdbeIntValue
or eax, edx
sete al
movzx eax, al
mov dword [ebx], eax
mov dword [ebx + 4], 0
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
imul esi, dword [eax + 4], 0x28
add esi, dword [ebp - 0x324]
imul ebx, dword [eax + 8], 0x28
add ebx, dword [ebp - 0x324]
mov eax, ebx
call sym._sqlite3VdbeMemSetNull
mov dword [ebp - 0x300], 0
test byte [esi + 8], 1
jne 0x61c4e8ba
mov word [ebx + 8], 4
mov eax, esi
call sym._sqlite3VdbeIntValue
not eax
mov dword [ebx], eax
not edx
mov dword [ebx + 4], edx
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x30c]
mov eax, dword [edx + 0xc8]
mov ecx, dword [ebp - 0x304]
add eax, dword [ecx + 4]
mov dword [ebp - 0x300], 0
cmp byte [eax], 0
jne 0x61c46fea
mov byte [eax], 1
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x324]
test byte [eax + 8], 1
je 0x61c48a58
mov edx, dword [ebx + 0xc]
jmp 0x61c48a81
call sym._sqlite3VdbeRealValue
mov edx, 1
fldz
fxch st(1)
fucompp
fnstsw ax
sahf
jp 0x61c48a73
setne dl
movzx edx, dl
mov esi, dword [ebp - 0x304]
cmp byte [esi], 0x2e
jne 0x61c48a81
xor edx, 1
mov dword [ebp - 0x300], 0
jmp 0x61c4a813
mov edi, dword [ebp - 0x304]
imul eax, dword [edi + 4], 0x28
mov dword [ebp - 0x300], 0
mov edx, dword [ebp - 0x324]
test byte [edx + eax + 8], 1
jmp 0x61c48598
mov ecx, dword [ebp - 0x304]
imul eax, dword [ecx + 4], 0x28
mov dword [ebp - 0x300], 0
mov ebx, dword [ebp - 0x324]
test byte [ebx + eax + 8], 1
jmp 0x61c4cfb5
mov esi, dword [ebp - 0x304]
mov esi, dword [esi + 8]
mov dword [ebp - 0x330], esi
mov eax, dword [ebp - 0x304]
mov edi, dword [eax + 0xc]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov ebx, dword [eax + edx*4]
mov esi, dword [ebx + 0x50]
mov dword [ebp - 0x320], esi
mov esi, dword [ebx]
cmp byte [ebx + 0x1a], 0
je 0x61c48b19
mov eax, ebx
call sym._handleDeferredMoveto
jmp 0x61c48b2a
test esi, esi
je 0x61c48b3d
cmp byte [esi + 0x42], 1
je 0x61c48b3d
mov eax, ebx
call sym._handleMovedCursor
mov dword [ebp - 0x300], eax
cmp dword [ebp - 0x300], 0
jne 0x61c4ea1b
imul eax, edi, 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x318], eax
mov edi, dword [ebp - 0x30c]
mov edi, dword [edi + 0x48]
cmp dword [ebx + 0x3c], edi
je 0x61c48ca4
cmp byte [ebx + 0x19], 0
je 0x61c48b8a
test esi, esi
jne 0x61c48e86
imul eax, dword [ebx + 0x10], 0x28
add eax, dword [ebp - 0x324]
mov edi, dword [eax + 0xc]
mov dword [ebx + 0x44], edi
mov dword [ebx + 0x40], edi
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x4c], eax
jmp 0x61c48c0d
test byte [ebx + 0x1b], 4
jne 0x61c48bc5
mov eax, esi
call sym._getCellInfo
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 0x14]
mov dword [ebp - 0x50], edx
mov dword [ebp - 0x4c], eax
mov ecx, dword [esi + 0x18]
movsx eax, byte [esi + 0x44]
mov eax, dword [esi + eax*4 + 0x78]
mov edi, dword [eax + 0x3c]
movzx eax, word [esi + 0x20]
sub edi, ecx
cmp edi, eax
jbe 0x61c48bbd
mov edi, eax
mov dword [ebx + 0x4c], ecx
mov dword [ebx + 0x40], edx
jmp 0x61c48bef
mov eax, esi
call sym._getCellInfo
mov eax, dword [esi + 0x1c]
mov dword [ebx + 0x40], eax
mov edx, dword [esi + 0x18]
movsx eax, byte [esi + 0x44]
mov eax, dword [esi + eax*4 + 0x78]
mov edi, dword [eax + 0x3c]
movzx eax, word [esi + 0x20]
sub edi, edx
cmp edi, eax
jbe 0x61c48bec
mov edi, eax
mov dword [ebx + 0x4c], edx
mov eax, dword [ebx + 0x40]
cmp eax, edi
ja 0x61c48bfb
mov dword [ebx + 0x44], eax
jmp 0x61c48bfe
mov dword [ebx + 0x44], edi
mov edx, dword [ebp - 0x308]
cmp eax, dword [edx + 0x58]
ja 0x61c4e99b
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x48]
mov dword [ebx + 0x3c], eax
mov eax, dword [ebx + 0x4c]
mov dl, byte [eax]
test dl, dl
js 0x61c48c2f
movzx eax, dl
mov dword [ebp - 0x44], eax
mov eax, 1
jmp 0x61c48c3a
lea edx, [ebp - 0x44]
call sym._sqlite3GetVarint32
movzx eax, al
mov dword [ebx + 0x48], eax
mov word [ebx + 0x16], 0
mov eax, dword [ebp - 0x44]
mov edx, dword [ebp - 0x320]
mov dword [edx], eax
mov eax, dword [ebp - 0x44]
cmp eax, 0x18003
ja 0x61c48c5d
cmp eax, dword [ebx + 0x40]
jbe 0x61c48c90
mov dword [esp + 0xc], 0x61c77104
mov dword [esp + 8], 0x12314
mov dword [esp + 4], 0x61c77f56
mov dword [esp], 0xb
call sym.sqlite3.dll_sqlite3_log
mov dword [ebp - 0x300], 0xb
jmp 0x61c4e8ba
cmp edi, eax
jae 0x61c48cb4
mov dword [ebx + 0x4c], 0
mov dword [ebx + 0x44], 0
jmp 0x61c48cb4
movzx eax, word [ebx + 0x16]
cmp eax, dword [ebp - 0x330]
jg 0x61c48e96
mov ecx, dword [ebp - 0x320]
mov ecx, dword [ecx]
cmp dword [ebx + 0x48], ecx
jae 0x61c48e56
mov edi, dword [ebx + 0x4c]
mov dword [ebp - 0x300], edi
test edi, edi
jne 0x61c48d22
lea edx, [ebp - 0xf0]
mov ecx, 0xa
mov edi, edx
mov eax, dword [ebp - 0x300]
rep stosd dword es:[edi], eax
mov dword [esp + 4], edx
xor eax, eax
test byte [ebx + 0x1b], 4
sete al
mov dword [esp], eax
mov edx, dword [ebp - 0x320]
mov ecx, dword [edx]
xor edx, edx
mov eax, esi
call sym._sqlite3VdbeMemFromBtree
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4e8ba
mov ecx, dword [ebp - 0xe0]
mov dword [ebp - 0x300], ecx
movzx eax, word [ebx + 0x16]
mov edi, dword [ebp - 0x320]
mov edx, dword [edi + eax*4]
mov dword [ebp - 0x44], edx
mov edi, dword [ebp - 0x300]
add edi, dword [ebx + 0x48]
mov ecx, dword [ebp - 0x300]
mov edx, dword [ebp - 0x320]
add ecx, dword [edx]
mov dword [ebp - 0x33c], ecx
lea ecx, [eax + 1]
mov dword [ebp - 0x348], esi
mov esi, ebx
mov ebx, ecx
lea eax, [ebx - 1]
mov dword [ebp - 0x334], eax
mov al, byte [edi]
test al, al
js 0x61c48d74
movzx eax, al
mov dword [ebp - 0x40], eax
inc edi
jmp 0x61c48d83
lea edx, [ebp - 0x40]
mov eax, edi
call sym._sqlite3GetVarint32
movzx eax, al
add edi, eax
mov eax, dword [ebp - 0x40]
mov dword [esi + ebx*4 + 0x50], eax
call sym._sqlite3VdbeSerialTypeLen
mov edx, dword [ebp - 0x44]
add edx, eax
mov dword [ebp - 0x44], edx
cmp edx, eax
jae 0x61c48dac
mov ebx, esi
mov esi, dword [ebp - 0x348]
mov edi, dword [ebp - 0x33c]
inc edi
jmp 0x61c48dda
mov dword [ebp - 0x334], ebx
mov ecx, dword [ebp - 0x320]
mov dword [ecx + ebx*4], edx
inc ebx
cmp edi, dword [ebp - 0x33c]
jae 0x61c48dd2
mov eax, dword [ebp - 0x330]
cmp dword [ebp - 0x334], eax
jle 0x61c48d5c
mov ebx, esi
mov esi, dword [ebp - 0x348]
mov edx, dword [ebp - 0x334]
mov word [ebx + 0x16], dx
mov eax, edi
sub eax, dword [ebp - 0x300]
mov dword [ebx + 0x48], eax
cmp dword [ebx + 0x4c], 0
jne 0x61c48e09
lea eax, [ebp - 0xf0]
call sym._sqlite3VdbeMemRelease
mov word [ebp - 0xe8], 1
cmp edi, dword [ebp - 0x33c]
jb 0x61c48e1b
ja 0x61c48e23
mov ecx, dword [ebx + 0x40]
cmp dword [ebp - 0x44], ecx
jne 0x61c48e23
mov edi, dword [ebx + 0x40]
cmp dword [ebp - 0x44], edi
jbe 0x61c48e56
mov dword [esp + 0xc], 0x61c77104
mov dword [esp + 8], 0x12368
mov dword [esp + 4], 0x61c77f56
mov dword [esp], 0xb
call sym.sqlite3.dll_sqlite3_log
mov dword [ebp - 0x300], 0xb
jmp 0x61c4e8ba
movzx eax, word [ebx + 0x16]
cmp eax, dword [ebp - 0x330]
jg 0x61c48e96
mov eax, dword [ebp - 0x304]
cmp byte [eax + 1], 0xf8
jne 0x61c48e86
mov edx, dword [eax + 0x10]
mov ecx, 0x800
mov eax, dword [ebp - 0x318]
call sym._sqlite3VdbeMemShallowCopy
jmp 0x61c48f8b
mov eax, dword [ebp - 0x318]
call sym._sqlite3VdbeMemSetNull
jmp 0x61c48f8b
mov edx, dword [ebp - 0x318]
movzx eax, word [edx + 8]
test eax, 0x2460
je 0x61c48eae
mov eax, edx
call sym._sqlite3VdbeMemSetNull
mov ecx, dword [ebp - 0x330]
mov edx, dword [ebx + ecx*4 + 0x54]
mov dword [ebp - 0x40], edx
mov edi, dword [ebp - 0x320]
mov edi, dword [edi + ecx*4 + 4]
cmp dword [ebx + 0x44], edi
jb 0x61c48ed8
mov eax, dword [ebx + 0x4c]
mov ebx, dword [ebp - 0x320]
add eax, dword [ebx + ecx*4]
jmp 0x61c48f16
mov edi, dword [ebp - 0x304]
mov al, byte [edi + 3]
test al, 0xc0
je 0x61c48ef3
cmp edx, 0xb
jbe 0x61c48eef
test dl, 1
je 0x61c48f0c
test al, al
js 0x61c48f0c
mov eax, edx
mov dword [ebp - 0x3bc], edx
call sym._sqlite3VdbeSerialTypeLen
mov ecx, eax
test eax, eax
mov edx, dword [ebp - 0x3bc]
jne 0x61c48f23
xor eax, eax
cmp edx, 0xd
ja 0x61c48f16
lea eax, [ebp - 0x50]
mov ecx, dword [ebp - 0x318]
call sym._sqlite3VdbeSerialGet
jmp 0x61c48f7c
mov eax, dword [ebp - 0x330]
mov edi, dword [ebp - 0x320]
mov edx, dword [edi + eax*4]
mov eax, dword [ebp - 0x318]
mov dword [esp + 4], eax
xor eax, eax
test byte [ebx + 0x1b], 4
sete al
mov dword [esp], eax
mov eax, esi
call sym._sqlite3VdbeMemFromBtree
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4e8ba
mov edx, dword [ebp - 0x318]
mov eax, dword [edx + 0x10]
mov ecx, edx
mov edx, dword [ebp - 0x40]
call sym._sqlite3VdbeSerialGet
mov ecx, dword [ebp - 0x318]
and word [ecx + 8], 0xefff
mov bl, byte [ebp - 0x371]
mov esi, dword [ebp - 0x318]
mov byte [esi + 0xa], bl
mov edi, dword [ebp - 0x318]
mov edi, dword [edi + 8]
mov word [ebp - 0x320], di
mov dword [ebp - 0x300], 0
test di, 0x1000
je 0x61c4e8ba
mov eax, dword [ebp - 0x318]
mov esi, dword [eax + 0x10]
test esi, esi
je 0x61c4e8ba
mov ebx, dword [eax + 0xc]
lea edx, [ebx + 2]
call sym._sqlite3VdbeMemClearAndResize
test eax, eax
jne 0x61c4e9d8
mov edx, dword [ebp - 0x318]
mov eax, dword [edx + 0x10]
mov edi, eax
mov ecx, ebx
rep movsb byte es:[edi], byte [esi]
mov eax, dword [edx + 0x10]
mov byte [eax + ebx], 0
mov eax, dword [edx + 0x10]
mov byte [eax + ebx + 1], 0
mov eax, dword [ebp - 0x320]
and eax, 0x12
or ah, 2
mov word [edx + 8], ax
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov ebx, dword [ecx + 0x10]
imul esi, dword [ecx + 4], 0x28
add esi, dword [ebp - 0x324]
jmp 0x61c4902f
movsx edx, dl
mov ecx, dword [ebp - 0x34c]
mov eax, esi
call sym._applyAffinity
add esi, 0x28
mov dl, byte [ebx]
inc ebx
test dl, dl
jne 0x61c4901c
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov ebx, dword [esi + 0x10]
imul eax, dword [esi + 4], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x300], eax
mov eax, dword [esi + 8]
dec eax
imul eax, eax, 0x28
add eax, dword [ebp - 0x300]
mov dword [ebp - 0x350], eax
mov edi, dword [ebp - 0x30c]
movzx edi, byte [edi + 0x57]
mov dword [ebp - 0x334], edi
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x33c], eax
test ebx, ebx
je 0x61c490af
mov eax, dword [ebp - 0x300]
jmp 0x61c49098
mov eax, esi
movsx edx, byte [ebx]
inc ebx
lea esi, [eax + 0x28]
mov ecx, dword [ebp - 0x34c]
call sym._applyAffinity
cmp byte [ebx], 0
jne 0x61c49096
mov esi, dword [ebp - 0x350]
mov dword [ebp - 0x320], 0
mov dword [ebp - 0x31c], 0
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x330], 0
mov dword [ebp - 0x32c], 0
movzx edi, word [esi + 8]
xor ebx, ebx
test edi, 1
jne 0x61c49192
test edi, 4
je 0x61c49162
mov ebx, dword [esi]
mov edx, dword [esi + 4]
test edx, edx
jns 0x61c49114
mov eax, ebx
not eax
mov ecx, edx
not ecx
jmp 0x61c49118
mov eax, ebx
mov ecx, edx
cmp ecx, 0
ja 0x61c49155
cmp eax, 0x7f
ja 0x61c49137
cmp dword [ebp - 0x334], 3
jle 0x61c4918d
and ebx, 0xfffffffe
or ebx, edx
jne 0x61c4918d
lea ebx, [eax + 8]
jmp 0x61c49192
mov ebx, 2
cmp eax, 0x7fff
jbe 0x61c49192
mov bl, 3
cmp eax, 0x7fffff
jbe 0x61c49192
mov bl, 4
cmp eax, 0x7fffffff
jbe 0x61c49192
cmp ecx, 0x8000
sbb ebx, ebx
add ebx, 6
jmp 0x61c49192
mov ebx, 7
test edi, 8
jne 0x61c49192
mov eax, dword [esi + 0xc]
test edi, 0x4000
je 0x61c4917c
add eax, dword [esi]
xor edx, edx
test edi, 2
setne dl
lea ebx, [edx + eax*2 + 0xc]
jmp 0x61c49192
mov ebx, 1
mov dword [esi + 0x1c], ebx
mov eax, ebx
call sym._sqlite3VdbeSerialTypeLen
mov dword [ebp - 0x358], eax
and edi, 0x4000
je 0x61c491f9
mov edx, dword [ebp - 0x32c]
or edx, dword [ebp - 0x330]
je 0x61c491c8
mov eax, esi
call sym._sqlite3VdbeMemExpandBlob
test eax, eax
je 0x61c491f9
jmp 0x61c4e9d8
mov eax, dword [esi]
mov dword [ebp - 0x348], eax
mov ecx, eax
sar ecx, 0x1f
mov dword [ebp - 0x344], ecx
mov edx, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x344]
add dword [ebp - 0x320], edx
adc dword [ebp - 0x31c], ecx
sub dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x358]
cdq
add dword [ebp - 0x330], eax
adc dword [ebp - 0x32c], edx
mov eax, 1
cmp ebx, 0x7f
jbe 0x61c4921f
mov eax, ebx
xor edx, edx
call sym._sqlite3VarintLen
add dword [ebp - 0x318], eax
sub esi, 0x28
cmp esi, dword [ebp - 0x300]
jae 0x61c490e7
cmp dword [ebp - 0x318], 0x7e
jg 0x61c49246
mov edi, dword [ebp - 0x318]
inc edi
jmp 0x61c49277
mov ecx, dword [ebp - 0x318]
mov ebx, ecx
sar ebx, 0x1f
mov eax, ecx
mov edx, ebx
call sym._sqlite3VarintLen
mov ebx, eax
mov edi, dword [ebp - 0x318]
lea edi, [eax + edi]
mov eax, edi
cdq
call sym._sqlite3VarintLen
cmp ebx, eax
setl al
movzx eax, al
add edi, eax
mov dword [ebp - 0x348], edi
mov ebx, edi
sar ebx, 0x1f
mov dword [ebp - 0x344], ebx
mov edx, dword [ebp - 0x330]
mov ecx, dword [ebp - 0x32c]
add edx, dword [ebp - 0x348]
adc ecx, dword [ebp - 0x344]
mov ebx, dword [ebp - 0x320]
mov esi, dword [ebp - 0x31c]
add ebx, edx
adc esi, ecx
mov dword [ebp - 0x318], ebx
mov dword [ebp - 0x314], esi
mov esi, dword [ebp - 0x308]
mov eax, dword [esi + 0x58]
mov dword [ebp - 0x330], eax
mov ebx, eax
sar ebx, 0x1f
mov dword [ebp - 0x32c], ebx
mov esi, dword [ebp - 0x32c]
cmp dword [ebp - 0x314], esi
jg 0x61c4e99b
jl 0x61c492f6
cmp dword [ebp - 0x318], eax
ja 0x61c4e99b
imul eax, dword [ebp - 0x33c], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x318], eax
mov dword [ebp - 0x358], edx
call sym._sqlite3VdbeMemClearAndResize
test eax, eax
jne 0x61c4e9d8
mov eax, dword [ebp - 0x318]
mov eax, dword [eax + 0x10]
mov dword [ebp - 0x334], eax
cmp edi, 0x7f
ja 0x61c49340
mov edx, edi
mov byte [eax], dl
mov dword [ebp - 0x330], 1
jmp 0x61c49360
mov edx, dword [ebp - 0x348]
mov ecx, dword [ebp - 0x344]
mov eax, dword [ebp - 0x334]
call sym._sqlite3PutVarint
movzx eax, al
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x33c], edi
mov ecx, dword [ebp - 0x300]
mov ebx, dword [ecx + 0x1c]
cmp ebx, 0x7f
ja 0x61c4938f
mov edi, dword [ebp - 0x334]
mov esi, dword [ebp - 0x330]
mov byte [edi + esi], bl
mov dword [ebp - 0x348], 1
jmp 0x61c493ad
mov eax, dword [ebp - 0x334]
add eax, dword [ebp - 0x330]
mov edx, ebx
xor ecx, ecx
call sym._sqlite3PutVarint
movzx eax, al
mov dword [ebp - 0x348], eax
mov edx, dword [ebp - 0x334]
add edx, dword [ebp - 0x33c]
lea eax, [ebx - 1]
cmp eax, 6
ja 0x61c493e8
mov eax, dword [ebp - 0x300]
mov esi, dword [eax]
mov edi, dword [eax + 4]
movzx eax, byte [ebx + 0x61c80eac]
mov ecx, eax
dec ecx
mov ebx, esi
mov byte [edx + ecx], bl
shrd esi, edi, 8
shr edi, 8
test ecx, ecx
jne 0x61c493d5
jmp 0x61c49401
xor eax, eax
cmp ebx, 0xb
jbe 0x61c49401
mov esi, dword [ebp - 0x300]
mov eax, dword [esi + 0xc]
mov esi, dword [esi + 0x10]
mov edi, edx
mov ecx, eax
rep movsb byte es:[edi], byte [esi]
add dword [ebp - 0x300], 0x28
mov edx, dword [ebp - 0x350]
cmp dword [ebp - 0x300], edx
ja 0x61c4942d
mov ecx, dword [ebp - 0x348]
add dword [ebp - 0x330], ecx
add dword [ebp - 0x33c], eax
jmp 0x61c49366
mov esi, dword [ebp - 0x358]
mov ebx, dword [ebp - 0x318]
mov dword [ebx + 0xc], esi
mov word [ebx + 8], 0x10
mov edi, dword [ebp - 0x31c]
or edi, dword [ebp - 0x320]
je 0x61c4945e
mov eax, dword [ebp - 0x320]
mov dword [ebx], eax
mov word [ebx + 8], 0x4010
mov edx, dword [ebp - 0x318]
mov byte [edx + 0xa], 1
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 4]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov ebx, dword [eax]
cmp dword [ebx + 0x34], 0
je 0x61c4959f
mov eax, ebx
call sym._moveToRoot
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x314], 0
jmp 0x61c4957b
movsx eax, byte [ebx + 0x44]
mov edx, dword [ebx + eax*4 + 0x78]
mov al, byte [edx + 5]
test al, al
jne 0x61c494d3
cmp byte [edx + 2], 0
jne 0x61c49539
movzx esi, word [edx + 0x12]
xor edi, edi
add dword [ebp - 0x318], esi
adc dword [ebp - 0x314], edi
test al, al
je 0x61c49539
mov al, byte [ebx + 0x44]
test al, al
jne 0x61c49502
mov eax, ebx
call sym._moveToRoot
mov dword [ebp - 0x300], eax
jmp 0x61c495bd
mov word [ebx + 0x24], 0
and byte [ebx + 0x40], 0xf9
movsx edx, al
mov edx, dword [ebx + edx*4 + 0x78]
dec eax
mov byte [ebx + 0x44], al
mov eax, dword [edx + 0x48]
call sym._sqlite3PagerUnrefNotNull
movsx edx, byte [ebx + 0x44]
lea eax, [edx + 0x28]
mov cx, word [ebx + eax*2]
mov edx, dword [ebx + edx*4 + 0x78]
cmp cx, word [edx + 0x12]
jae 0x61c494e9
inc ecx
mov word [ebx + eax*2], cx
movsx eax, byte [ebx + 0x44]
movzx ecx, word [ebx + eax*2 + 0x50]
movzx eax, word [edx + 0x12]
cmp ecx, eax
jne 0x61c49553
movzx eax, byte [edx + 6]
add eax, 8
jmp 0x61c4956a
mov esi, dword [edx + 0x40]
movzx eax, byte [esi + ecx*2 + 1]
movzx ecx, byte [esi + ecx*2]
shl ecx, 8
or eax, ecx
movzx ecx, word [edx + 0x14]
and eax, ecx
add eax, dword [edx + 0x38]
call sym._sqlite3Get4byte
mov edx, eax
mov eax, ebx
call sym._moveToChild
test eax, eax
je 0x61c494be
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x314], 0
jmp 0x61c495bd
mov dword [ebp - 0x318], 0
mov dword [ebp - 0x314], 0
mov dword [ebp - 0x300], 0
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 8]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 8]
call sym._out2Prerelease.clone.119
mov edx, dword [ebp - 0x318]
mov ecx, dword [ebp - 0x314]
mov dword [eax], edx
mov dword [eax + 4], ecx
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov ecx, dword [ecx + 4]
mov dword [ebp - 0x318], ecx
mov ebx, dword [ebp - 0x304]
mov ebx, dword [ebx + 0x10]
mov dword [ebp - 0x320], ebx
test ecx, ecx
jne 0x61c49702
mov esi, dword [ebp - 0x308]
cmp dword [esi + 0x9c], 0
jle 0x61c49644
mov dword [esp + 4], str.cannot_open_savepoint___SQL_statements_in_progress
mov edi, dword [ebp - 0x30c]
mov dword [esp], edi
call sym._sqlite3VdbeError
mov dword [ebp - 0x300], 5
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x320]
call sym._sqlite3Strlen30
mov ebx, eax
mov eax, dword [ebp - 0x308]
mov ecx, dword [eax + 0x1f0]
add ecx, dword [eax + 0x1f4]
xor edx, edx
call sym._sqlite3VtabSavepoint
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4ea1b
lea edx, [ebx + 0x21]
xor ecx, ecx
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbMallocRaw
test eax, eax
je 0x61c4e8ba
lea edx, [eax + 0x20]
mov dword [eax], edx
lea ecx, [ebx + 1]
mov edi, edx
mov esi, dword [ebp - 0x320]
rep movsb byte es:[edi], byte [esi]
mov edx, dword [ebp - 0x308]
cmp byte [edx + 0x3f], 0
je 0x61c496b8
mov byte [edx + 0x3f], 0
mov byte [edx + 0x46], 1
jmp 0x61c496c4
mov ecx, dword [ebp - 0x308]
inc dword [ecx + 0x1f0]
mov ebx, dword [ebp - 0x308]
mov edx, dword [ebx + 0x1e8]
mov dword [eax + 0x18], edx
mov dword [ebx + 0x1e8], eax
mov edx, dword [ebx + 0x1f8]
mov ecx, dword [ebx + 0x1fc]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
mov edx, dword [ebx + 0x200]
mov ecx, dword [ebx + 0x204]
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], ecx
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x308]
mov ebx, dword [eax + 0x1e8]
xor esi, esi
jmp 0x61c49716
inc esi
mov ebx, dword [ebx + 0x18]
test ebx, ebx
je 0x61c49747
mov edx, dword [ebp - 0x320]
mov dword [esp + 4], edx
mov eax, dword [ebx]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_stricmp
test eax, eax
jne 0x61c49712
cmp dword [ebp - 0x318], 1
sete byte [ebp - 0x330]
jne 0x61c4979b
jmp 0x61c4eb42
mov ecx, dword [ebp - 0x320]
mov dword [esp + 8], ecx
mov dword [esp + 4], str.no_such_savepoint:__s
mov ebx, dword [ebp - 0x30c]
mov dword [esp], ebx
call sym._sqlite3VdbeError
mov dword [ebp - 0x300], 1
jmp 0x61c4e8ba
mov dword [esp + 4], str.cannot_release_savepoint___SQL_statements_in_progress
mov esi, dword [ebp - 0x30c]
mov dword [esp], esi
call sym._sqlite3VdbeError
mov dword [ebp - 0x300], 5
jmp 0x61c4e8ba
xor edi, edi
cmp dword [ebx + 0x18], 0
jne 0x61c497b4
mov edi, dword [ebp - 0x308]
xor eax, eax
cmp byte [edi + 0x46], 0
setne al
mov edi, eax
test edi, edi
je 0x61c49855
cmp byte [ebp - 0x330], 0
je 0x61c49855
mov edx, 1
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeCheckFk
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4e95a
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x3f], 1
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeHalt
cmp eax, 5
jne 0x61c49835
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x338]
sar eax, 2
imul eax, eax, 0xcccccccd
mov ecx, dword [ebp - 0x30c]
mov dword [ecx + 0x4c], eax
mov ebx, dword [ebp - 0x308]
mov byte [ebx + 0x3f], 0
mov dword [ecx + 0x50], 5
jmp 0x61c49b0c
mov eax, dword [ebp - 0x308]
mov byte [eax + 0x46], 0
mov edx, dword [ebp - 0x30c]
mov edx, dword [edx + 0x50]
mov dword [ebp - 0x300], edx
mov ecx, eax
jmp 0x61c49988
not esi
mov ecx, dword [ebp - 0x308]
add esi, dword [ecx + 0x1f0]
mov dword [ebp - 0x320], 0
cmp dword [ebp - 0x318], 2
jne 0x61c498de
xor eax, eax
test byte [ecx + 0x18], 2
setne al
mov dword [ebp - 0x320], eax
mov dword [ebp - 0x300], 0
xor eax, 1
mov dword [ebp - 0x334], eax
jmp 0x61c498cd
mov eax, dword [ebp - 0x300]
shl eax, 4
mov edx, dword [ebp - 0x308]
add eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
mov ecx, dword [ebp - 0x334]
mov edx, 0x204
call sym._sqlite3BtreeTripAllCursors
test eax, eax
jne 0x61c4ea17
inc dword [ebp - 0x300]
mov eax, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x308]
cmp eax, dword [ecx + 0x14]
jl 0x61c4989a
mov dword [ebp - 0x300], 0
jmp 0x61c4991a
mov eax, dword [ebp - 0x300]
shl eax, 4
mov edx, dword [ebp - 0x308]
add eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
mov ecx, esi
mov edx, dword [ebp - 0x318]
call sym._sqlite3BtreeSavepoint
test eax, eax
jne 0x61c4ea17
inc dword [ebp - 0x300]
mov eax, dword [ebp - 0x300]
mov ecx, dword [ebp - 0x308]
cmp eax, dword [ecx + 0x14]
jl 0x61c498ea
mov dword [ebp - 0x300], 0
cmp dword [ebp - 0x320], 0
je 0x61c49982
mov eax, ecx
call sym._sqlite3ExpirePreparedStatements
mov eax, dword [ebp - 0x308]
call sym._sqlite3ResetAllSchemasOfConnection
mov edx, dword [ebp - 0x308]
or dword [edx + 0x18], 2
mov ecx, edx
jmp 0x61c49988
mov eax, dword [edx + 0x18]
mov dword [ecx + 0x1e8], eax
mov eax, ecx
mov dword [ebp - 0x3bc], ecx
call sym._sqlite3DbFree
mov ecx, dword [ebp - 0x3bc]
dec dword [ecx + 0x1f0]
jmp 0x61c49988
mov ecx, dword [ebp - 0x308]
mov edx, dword [ecx + 0x1e8]
cmp edx, ebx
jne 0x61c4995e
cmp byte [ebp - 0x330], 0
je 0x61c499c5
mov eax, dword [ebx + 0x18]
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x1e8], eax
mov edx, ebx
mov eax, ecx
call sym._sqlite3DbFree
test edi, edi
jne 0x61c499ef
mov ebx, dword [ebp - 0x308]
dec dword [ebx + 0x1f0]
jmp 0x61c499ef
mov eax, dword [ebx + 8]
mov edx, dword [ebx + 0xc]
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x1f8], eax
mov dword [ecx + 0x1fc], edx
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [ecx + 0x200], eax
mov dword [ecx + 0x204], edx
test edi, edi
je 0x61c49a00
cmp dword [ebp - 0x318], 2
jne 0x61c4e8ba
mov ecx, esi
mov edx, dword [ebp - 0x318]
mov eax, dword [ebp - 0x308]
call sym._sqlite3VtabSavepoint
mov dword [ebp - 0x300], eax
test eax, eax
je 0x61c4e8ba
jmp 0x61c4ea17
mov ebx, dword [ebp - 0x304]
mov esi, dword [ebx + 4]
mov eax, dword [ebx + 8]
xor edx, edx
test esi, esi
je 0x61c49a47
mov edi, dword [ebp - 0x308]
xor edx, edx
cmp byte [edi + 0x3f], 0
sete dl
test edx, edx
je 0x61c49a83
test eax, eax
jne 0x61c49a83
mov edx, dword [ebp - 0x308]
cmp dword [edx + 0x9c], 0
jle 0x61c49a83
mov dword [esp + 4], str.cannot_commit_transaction___SQL_statements_in_progress
mov ecx, dword [ebp - 0x30c]
mov dword [esp], ecx
call sym._sqlite3VdbeError
mov dword [ebp - 0x300], 5
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x308]
movzx edx, byte [ebx + 0x3f]
cmp esi, edx
je 0x61c49b36
test eax, eax
je 0x61c49aab
mov edx, 0x204
mov eax, ebx
call sym._sqlite3RollbackAll
mov byte [ebx + 0x3f], 1
jmp 0x61c49b16
mov edx, 1
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeCheckFk
mov ebx, eax
test eax, eax
jne 0x61c4e960
mov ebx, esi
mov edi, dword [ebp - 0x308]
mov byte [edi + 0x3f], bl
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeHalt
cmp eax, 5
jne 0x61c49b16
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x338]
sar eax, 2
imul eax, eax, 0xcccccccd
mov edx, dword [ebp - 0x30c]
mov dword [edx + 0x4c], eax
mov al, 1
sub al, bl
mov byte [edi + 0x3f], al
mov dword [edx + 0x50], 5
mov ebx, 5
jmp 0x61c4e960
mov eax, dword [ebp - 0x308]
call sym._sqlite3CloseSavepoints
mov ecx, dword [ebp - 0x30c]
cmp dword [ecx + 0x50], 1
sbb ebx, ebx
and ebx, 0x64
inc ebx
jmp 0x61c4e960
mov edx, str.cannot_start_a_transaction_within_a_transaction
test esi, esi
je 0x61c49b4d
mov edx, str.cannot_commit___no_transaction_is_active
test eax, eax
je 0x61c49b4d
mov edx, str.cannot_rollback___no_transaction_is_active
mov dword [esp + 4], edx
mov ebx, dword [ebp - 0x30c]
mov dword [esp], ebx
call sym._sqlite3VdbeError
mov dword [ebp - 0x300], 1
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 8]
test edx, edx
je 0x61c49b8b
mov edi, dword [ebp - 0x308]
test byte [edi + 0x1b], 2
jne 0x61c4ea09
mov ecx, dword [ebp - 0x304]
mov eax, dword [ecx + 4]
shl eax, 4
mov ebx, dword [ebp - 0x308]
add eax, dword [ebx + 0x10]
mov esi, dword [eax + 4]
test esi, esi
je 0x61c49d14
mov eax, esi
call sym._sqlite3BtreeBeginTrans
mov dword [ebp - 0x300], eax
cmp eax, 5
jne 0x61c49be9
mov ebx, eax
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x338]
sar eax, 2
imul eax, eax, 0xcccccccd
mov esi, dword [ebp - 0x30c]
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], 5
jmp 0x61c4e960
cmp dword [ebp - 0x300], 0
jne 0x61c4ea1b
mov edi, dword [ebp - 0x304]
cmp dword [edi + 8], 0
je 0x61c49ce8
mov eax, dword [ebp - 0x30c]
test byte [eax + 0x58], 0x20
je 0x61c49ce8
mov edx, dword [ebp - 0x308]
cmp byte [edx + 0x3f], 0
je 0x61c49c2f
cmp dword [edx + 0x98], 1
jle 0x61c49ce8
mov ecx, dword [ebp - 0x30c]
cmp dword [ecx + 0x68], 0
jne 0x61c49c57
mov ebx, dword [ebp - 0x308]
mov eax, dword [ebx + 0x1f4]
inc eax
mov dword [ebx + 0x1f4], eax
add eax, dword [ebx + 0x1f0]
mov dword [ecx + 0x68], eax
mov edi, dword [ebp - 0x30c]
mov ecx, dword [edi + 0x68]
dec ecx
xor edx, edx
mov eax, dword [ebp - 0x308]
call sym._sqlite3VtabSavepoint
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c49cac
mov eax, dword [ebp - 0x30c]
mov edi, dword [eax + 0x68]
mov ebx, dword [esi + 4]
mov eax, esi
call sym._sqlite3BtreeEnter
mov eax, dword [ebx]
cmp edi, dword [eax + 0x60]
jle 0x61c49ca5
cmp byte [eax + 6], 0
je 0x61c49ca5
mov edx, edi
call sym._pagerOpenSavepoint
mov dword [ebp - 0x300], eax
mov eax, esi
call sym._sqlite3BtreeLeave
mov ecx, dword [ebp - 0x308]
mov eax, dword [ecx + 0x1f8]
mov edx, dword [ecx + 0x1fc]
mov ebx, dword [ebp - 0x30c]
mov dword [ebx + 0x98], eax
mov dword [ebx + 0x9c], edx
mov eax, dword [ecx + 0x200]
mov edx, dword [ecx + 0x204]
mov dword [ebx + 0xa0], eax
mov dword [ebx + 0xa4], edx
lea ecx, [ebp - 0x40]
mov edx, 1
mov eax, esi
call sym._sqlite3BtreeGetMeta
mov edx, dword [ebp - 0x304]
mov eax, dword [edx + 4]
shl eax, 4
mov ecx, dword [ebp - 0x308]
add eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
jmp 0x61c49d27
mov dword [ebp - 0x40], 0
xor eax, eax
mov dword [ebp - 0x300], 0
mov ebx, dword [ebp - 0x304]
cmp byte [ebx + 3], 0
je 0x61c4e8ba
mov esi, dword [ebx + 0xc]
cmp dword [ebp - 0x40], esi
jne 0x61c49d48
cmp eax, dword [ebx + 0x10]
je 0x61c4e8ba
mov edi, dword [ebp - 0x30c]
mov edx, dword [edi + 0x2c]
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbFree
mov edx, str.database_schema_has_changed
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbStrDup
mov dword [edi + 0x2c], eax
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 4]
mov eax, edx
shl eax, 4
mov ecx, dword [ebp - 0x308]
add eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
mov ebx, dword [ebp - 0x40]
cmp dword [eax], ebx
je 0x61c49d97
mov eax, ecx
call sym._sqlite3ResetOneSchema
mov esi, dword [ebp - 0x30c]
or byte [esi + 0x58], 8
mov dword [ebp - 0x300], 0x11
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 0xc]
mov eax, dword [edi + 4]
shl eax, 4
mov ecx, dword [ebp - 0x308]
add eax, dword [ecx + 0x10]
mov eax, dword [eax + 4]
lea ecx, [ebp - 0x40]
call sym._sqlite3BtreeGetMeta
mov edx, dword [edi + 8]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 8]
call sym._out2Prerelease.clone.119
mov edx, dword [ebp - 0x40]
mov dword [eax], edx
mov esi, edx
sar esi, 0x1f
mov dword [eax + 4], esi
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov ebx, dword [edi + 4]
shl ebx, 4
mov eax, dword [ebp - 0x308]
add ebx, dword [eax + 0x10]
imul esi, dword [edi + 0xc], 0x28
add esi, dword [ebp - 0x324]
mov eax, esi
call sym._sqlite3VdbeMemIntegerify
mov edx, dword [edi + 8]
mov eax, dword [ebx + 4]
mov ecx, dword [esi]
call sym._sqlite3BtreeUpdateMeta
mov dword [ebp - 0x300], eax
mov eax, dword [edi + 8]
cmp eax, 1
jne 0x61c49e54
mov eax, dword [ebx + 0xc]
mov edx, dword [esi]
mov dword [eax], edx
mov edx, dword [ebp - 0x308]
or dword [edx + 0x18], 2
jmp 0x61c49e61
cmp eax, 2
jne 0x61c49e61
mov eax, dword [ebx + 0xc]
mov edx, dword [esi]
mov byte [eax + 0x4c], dl
mov ecx, dword [ebp - 0x304]
cmp dword [ecx + 4], 1
jne 0x61c4e8ba
mov eax, dword [ebp - 0x308]
call sym._sqlite3ExpirePreparedStatements
mov ebx, dword [ebp - 0x30c]
and byte [ebx + 0x58], 0xf7
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov ecx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov ebx, dword [eax + ecx*4]
test ebx, ebx
je case.0x61c46f15.53
mov eax, dword [esi + 8]
cmp dword [ebx + 0x1c], eax
je 0x61c49ffa
mov dword [ebp - 0x300], 0x204
mov ecx, dword [ebp - 0x30c]
test byte [ecx + 0x58], 8
jne 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edi, dword [ebx + 8]
mov ebx, dword [ebx + 0xc]
mov eax, ebx
shl eax, 4
mov ecx, dword [ebp - 0x308]
add eax, dword [ecx + 0x10]
mov esi, dword [eax + 4]
mov dword [ebp - 0x318], esi
mov dword [ebp - 0x300], 0
cmp dl, 0x37
jne 0x61c49f1a
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4c]
mov dword [ebp - 0x300], 1
mov edx, dword [ebp - 0x30c]
cmp al, byte [edx + 0x57]
jae 0x61c49f1a
mov byte [edx + 0x57], al
mov ecx, dword [ebp - 0x304]
test byte [ecx + 3], 4
je 0x61c49f52
imul edi, edi, 0x28
add edi, dword [ebp - 0x324]
mov eax, edi
call sym._sqlite3VdbeMemIntegerify
mov edi, dword [edi]
cmp edi, 1
jg 0x61c49f52
mov dword [esp + 0xc], 0x61c77104
mov dword [esp + 8], 0x126b4
jmp 0x61c4bc10
mov esi, dword [ebp - 0x304]
mov al, byte [esi + 1]
cmp al, 0xfa
jne 0x61c49f6f
mov esi, dword [esi + 0x10]
movzx eax, word [esi + 8]
movzx ecx, word [esi + 6]
lea ecx, [eax + ecx]
jmp 0x61c49f84
cmp al, 0xf2
jne 0x61c49f80
mov edx, dword [ebp - 0x304]
mov ecx, dword [edx + 0x10]
xor esi, esi
jmp 0x61c49f84
xor esi, esi
xor ecx, ecx
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 4]
mov dword [esp + 4], 1
mov dword [esp], ebx
mov eax, dword [ebp - 0x30c]
call sym._allocateCursor
mov ebx, eax
test eax, eax
je 0x61c4e9d8
mov byte [eax + 0x19], 1
or byte [eax + 0x1b], 8
mov dword [eax + 0x1c], edi
mov eax, dword [eax]
mov dword [esp + 4], eax
mov dword [esp], esi
mov ecx, dword [ebp - 0x300]
mov edx, edi
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeCursor
mov dword [ebp - 0x300], eax
mov dword [ebx + 8], esi
mov edx, dword [ebp - 0x304]
cmp byte [edx + 1], 0xfa
setne dl
shl edx, 2
mov al, byte [ebx + 0x1b]
and eax, 0xfffffffb
or eax, edx
mov byte [ebx + 0x1b], al
jmp 0x61c4a004
mov dword [ebp - 0x300], 0
mov edx, dword [ebx]
mov ecx, dword [ebp - 0x304]
movzx eax, byte [ecx + 3]
and eax, 3
mov byte [edx + 0x43], al
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov ecx, dword [ebx + 8]
mov edx, dword [ebx + 4]
mov dword [esp + 4], 1
mov dword [esp], 0xffffffff
mov eax, dword [ebp - 0x30c]
call sym._allocateCursor
mov esi, eax
test eax, eax
je 0x61c4e9d8
mov byte [eax + 0x19], 1
or byte [eax + 0x1b], 1
mov dword [esp + 8], 0x41e
mov al, byte [ebx + 3]
or eax, 5
movzx eax, al
mov dword [esp + 4], eax
lea eax, [esi + 4]
mov dword [esp], eax
mov ecx, dword [ebp - 0x308]
xor edx, edx
mov eax, dword [ecx]
call sym._sqlite3BtreeOpen
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4a14a
mov eax, dword [esi + 4]
mov edx, 1
call sym._sqlite3BtreeBeginTrans
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4a14a
mov edi, dword [ebx + 0x10]
mov dword [ebp - 0x318], edi
test edi, edi
mov edi, dword [esi + 4]
je 0x61c4a122
mov eax, dword [ebp - 0x304]
mov bl, byte [eax + 3]
or ebx, 2
movzx ebx, bl
mov eax, edi
call sym._sqlite3BtreeEnter
mov ecx, ebx
lea edx, [ebp - 0x40]
mov eax, edi
call sym._btreeCreateTable
mov dword [ebp - 0x300], eax
mov eax, edi
call sym._sqlite3BtreeLeave
cmp dword [ebp - 0x300], 0
jne 0x61c4a11c
mov edx, dword [ebp - 0x318]
mov dword [esi + 8], edx
mov eax, dword [esi + 4]
mov edx, dword [esi]
mov dword [esp + 4], edx
mov ecx, dword [ebp - 0x318]
mov dword [esp], ecx
mov ecx, 1
mov edx, dword [ebp - 0x40]
call sym._sqlite3BtreeCursor
mov dword [ebp - 0x300], eax
and byte [esi + 0x1b], 0xfb
jmp 0x61c4a14a
mov eax, dword [esi]
mov dword [esp + 4], eax
mov dword [esp], 0
mov ecx, 1
mov edx, 1
mov eax, edi
call sym._sqlite3BtreeCursor
mov dword [ebp - 0x300], eax
or byte [esi + 0x1b], 4
mov ebx, dword [ebp - 0x304]
cmp byte [ebx + 3], 8
setne dl
shl edx, 3
mov al, byte [esi + 0x1b]
and eax, 0xfffffff7
or eax, edx
mov byte [esi + 0x1b], al
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
mov dword [esp + 4], 1
mov dword [esp], 0xffffffff
mov eax, dword [ebp - 0x30c]
call sym._allocateCursor
mov esi, eax
test eax, eax
je 0x61c4e9d8
mov edi, dword [ebp - 0x304]
mov eax, dword [edi + 0x10]
mov dword [esi + 8], eax
mov edx, dword [edi + 0xc]
mov dword [ebp - 0x334], edx
mov dword [ebp - 0x330], 0
mov ecx, dword [ebp - 0x308]
cmp byte [ecx + 0x40], 2
je 0x61c4a1da
cmp dword [0x61c75004], 0
je 0x61c4a1da
mov ebx, dword [ecx + 0x84]
mov dword [ebp - 0x330], ebx
movzx eax, word [eax + 6]
lea eax, [eax*4 + 0x14]
mov dword [ebp - 0x320], eax
imul eax, dword [ebp - 0x330], 0x48
lea edi, [eax + 0x88]
mov edx, dword [ebp - 0x320]
lea edx, [edi + edx]
mov ecx, edx
sar ecx, 0x1f
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbMallocZero
mov ebx, eax
mov dword [esi + 0x38], eax
mov dword [ebp - 0x300], 7
test eax, eax
je 0x61c4e8ba
lea edi, [eax + edi]
mov dword [ebp - 0x318], edi
mov dword [eax + 0x1c], edi
mov esi, dword [esi + 8]
mov ecx, dword [ebp - 0x320]
rep movsb byte es:[edi], byte [esi]
mov esi, dword [ebp - 0x318]
mov dword [esi + 0xc], 0
cmp dword [ebp - 0x330], 0
jne 0x61c4a27a
cmp dword [ebp - 0x334], 0
je 0x61c4a27a
mov ax, word [esi + 6]
add eax, dword [esi + 8]
sub ax, word [ebp - 0x334]
mov word [esi + 8], ax
mov edi, dword [ebp - 0x334]
mov word [esi + 6], di
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x20]
mov dword [ebx + 0xc], esi
mov dl, byte [ebp - 0x330]
lea eax, [edx + 1]
mov byte [ebx + 0x3b], al
dec edx
mov byte [ebx + 0x3a], dl
cmp al, 1
seta byte [ebx + 0x39]
mov ecx, dword [ebp - 0x308]
mov dword [ebx + 0x18], ecx
mov edx, ebx
xor ecx, ecx
movzx eax, al
jmp 0x61c4a2ba
mov dword [edx], ebx
inc ecx
add edx, 0x48
cmp ecx, eax
jl 0x61c4a2b7
mov dword [ebp - 0x300], 0
mov edi, dword [ebp - 0x308]
cmp byte [edi + 0x40], 2
je 0x61c4a345
mov ecx, dword [0x61c750e0]
mov eax, ecx
imul eax, esi
mov dword [ebx], eax
mov eax, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
mov edx, dword [eax + 0x50]
mov eax, ecx
cmp ecx, edx
jge 0x61c4a2f5
mov eax, edx
imul esi
cmp edx, 0
jl 0x61c4a30a
jg 0x61c4a305
cmp eax, 0x20000000
jbe 0x61c4a30a
mov eax, 0x20000000
mov dword [ebx + 4], eax
mov dword [ebp - 0x300], 0
cmp dword [0x61c750c0], 0
jne 0x61c4a345
mov dword [ebx + 0x34], esi
mov dword [esp], esi
mov eax, esi
sar eax, 0x1f
mov dword [esp + 4], eax
call sym._sqlite3Malloc
mov dword [ebx + 0x28], eax
cmp eax, 1
sbb edx, edx
and edx, 7
mov dword [ebp - 0x300], edx
mov ecx, dword [ebp - 0x318]
movzx edx, word [ecx + 8]
movzx eax, word [ecx + 6]
lea eax, [edx + eax]
cmp eax, 0xc
jg 0x61c4e8ba
mov eax, dword [ecx + 0x14]
test eax, eax
je 0x61c4a375
mov esi, dword [ebp - 0x308]
cmp eax, dword [esi + 8]
jne 0x61c4e8ba
mov byte [ebx + 0x3c], 3
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov ecx, dword [eax + edx*4]
mov eax, dword [ecx + 0x28]
mov edx, dword [ecx + 0x2c]
mov ebx, eax
mov esi, edx
add ebx, 1
adc esi, 0
mov dword [ecx + 0x28], ebx
mov dword [ecx + 0x2c], esi
mov dword [ebp - 0x300], 0
mov ebx, edx
or ebx, eax
jmp 0x61c4cfb5
mov esi, dword [ebp - 0x304]
mov ecx, dword [esi + 0xc]
mov edx, dword [esi + 4]
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
mov eax, dword [ebp - 0x30c]
call sym._allocateCursor
test eax, eax
je 0x61c4e9d8
mov byte [eax + 0x19], 1
mov edx, dword [esi + 8]
mov dword [eax + 0x10], edx
or byte [eax + 0x1b], 4
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov edx, dword [eax + edx*4]
mov eax, ecx
call sym._sqlite3VdbeFreeCursor.clone.177
mov edx, dword [edi + 4]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 0x38]
mov dword [eax + edx*4], 0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov ecx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov edi, dword [eax + ecx*4]
movzx edx, dl
mov dword [ebp - 0x318], edx
mov byte [edi + 0x19], 0
test byte [edi + 0x1b], 4
je 0x61c4a555
imul ecx, dword [esi + 0xc], 0x28
add ecx, dword [ebp - 0x324]
movzx eax, word [ecx + 8]
and eax, 0xe
cmp eax, 2
jne 0x61c4a49c
xor edx, edx
mov eax, ecx
mov dword [ebp - 0x3bc], ecx
call sym._applyNumericAffinity
mov ecx, dword [ebp - 0x3bc]
mov eax, ecx
mov dword [ebp - 0x3bc], ecx
call sym._sqlite3VdbeIntValue
mov ebx, eax
mov esi, edx
mov ecx, dword [ebp - 0x3bc]
movzx eax, word [ecx + 8]
test al, 4
jne 0x61c4a51d
mov dword [ebp - 0x300], 0
test al, 8
je 0x61c46fea
fld qword [ecx]
mov dword [ebp - 0x2f0], ebx
mov dword [ebp - 0x2ec], edx
fild qword [ebp - 0x2f0]
fucom st(1)
fnstsw ax
sahf
jbe 0x61c4a501
fstp st(0)
fstp st(0)
mov eax, dword [ebp - 0x318]
and eax, 1
cmp eax, 1
sbb dword [ebp - 0x318], 0
jmp 0x61c4a51d
fxch st(1)
fucompp
fnstsw ax
sahf
jbe 0x61c4a51d
mov eax, dword [ebp - 0x318]
and eax, 1
cmp eax, 1
sbb dword [ebp - 0x318], 0xffffffff
lea edx, [ebp - 0x40]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov dword [esp], ebx
mov dword [esp + 4], esi
xor edx, edx
mov eax, dword [edi]
call sym._sqlite3BtreeMovetoUnpacked
mov dword [ebp - 0x300], eax
mov dword [edi + 0x30], ebx
mov dword [edi + 0x34], esi
test eax, eax
je 0x61c4a5da
jmp 0x61c4ea17
mov ecx, dword [ebp - 0x304]
mov eax, dword [ecx + 0x10]
mov edx, dword [edi + 8]
mov dword [ebp - 0x88], edx
mov word [ebp - 0x84], ax
mov eax, dword [ebp - 0x318]
sub eax, 0x3f
and eax, 1
cmp eax, 1
sbb eax, eax
and eax, 2
dec eax
mov byte [ebp - 0x82], al
imul eax, dword [ecx + 0xc], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x80], eax
test byte [eax + 9], 0x40
je 0x61c4a5a1
call sym._sqlite3VdbeMemExpandBlob
lea edx, [ebp - 0x88]
lea ebx, [ebp - 0x40]
mov dword [esp + 0xc], ebx
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov eax, dword [edi]
call sym._sqlite3BtreeMovetoUnpacked
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4ea1b
mov byte [edi + 0x1a], 0
mov dword [edi + 0x3c], 0
cmp dword [ebp - 0x318], 0x40
mov eax, dword [ebp - 0x40]
jle 0x61c4a625
test eax, eax
js 0x61c4a602
cmp dword [ebp - 0x318], 0x42
jne 0x61c4a61c
test eax, eax
jne 0x61c4a61c
mov dword [ebp - 0x40], 0
lea esi, [ebp - 0x40]
mov dword [esp + 4], esi
mov eax, dword [edi]
mov dword [esp], eax
call sym._sqlite3BtreeNext
jmp 0x61c4a64e
mov dword [ebp - 0x40], 0
jmp 0x61c4a66c
test eax, eax
jg 0x61c4a636
cmp dword [ebp - 0x318], 0x3f
jne 0x61c4a65d
test eax, eax
jne 0x61c4a65d
mov dword [ebp - 0x40], 0
lea eax, [ebp - 0x40]
mov dword [esp + 4], eax
mov eax, dword [edi]
mov dword [esp], eax
call sym._sqlite3BtreePrevious
mov dword [ebp - 0x300], eax
test eax, eax
je 0x61c4a66c
jmp 0x61c4ea17
mov eax, dword [edi]
cmp byte [eax + 0x42], 1
setne al
movzx eax, al
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x300], 0
cmp dword [ebp - 0x40], 0
jmp 0x61c48598
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 4]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 0x38]
mov ebx, dword [eax + edx*4]
mov byte [ebx + 0x19], 0
imul eax, dword [ecx + 8], 0x28
add eax, dword [ebp - 0x324]
call sym._sqlite3VdbeIntValue
mov dword [ebx + 0x30], eax
mov dword [ebx + 0x34], edx
mov byte [ebx + 0x1a], 1
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [ebp - 0x304]
imul edi, dword [eax + 0xc], 0x28
add edi, dword [ebp - 0x324]
mov dword [ebp - 0x20], 0
mov edx, dword [eax + 0x10]
test edx, edx
mov eax, dword [esi + 8]
jle 0x61c4a72f
mov dword [ebp - 0x88], eax
mov word [ebp - 0x84], dx
mov dword [ebp - 0x80], edi
xor ebx, ebx
jmp 0x61c4a71c
imul eax, ebx, 0x28
add eax, dword [ebp - 0x80]
test byte [eax + 9], 0x40
je 0x61c4a71b
call sym._sqlite3VdbeMemExpandBlob
inc ebx
movzx eax, word [ebp - 0x84]
cmp ebx, eax
jl 0x61c4a70a
lea ebx, [ebp - 0x88]
jmp 0x61c4a76d
lea edx, [ebp - 0x20]
mov dword [esp], edx
mov ecx, 0xbf
lea edx, [ebp - 0x2e8]
call sym._sqlite3VdbeAllocUnpackedRecord
mov ebx, eax
test eax, eax
je 0x61c4e9d8
test byte [edi + 9], 0x40
je 0x61c4a75c
mov eax, edi
call sym._sqlite3VdbeMemExpandBlob
mov ecx, dword [edi + 0x10]
mov edx, dword [edi + 0xc]
mov eax, dword [esi + 8]
mov dword [esp], ebx
call sym._sqlite3VdbeRecordUnpack
mov byte [ebx + 6], 0
xor edi, edi
mov edx, dword [ebp - 0x304]
cmp byte [edx], 0x44
jne 0x61c4a7a0
movzx ecx, word [ebx + 4]
xor edx, edx
jmp 0x61c4a793
imul eax, edx, 0x28
add eax, dword [ebx + 8]
test byte [eax + 8], 1
jne 0x61c4a79b
inc edx
cmp edx, ecx
jl 0x61c4a786
xor edi, edi
jmp 0x61c4a7a0
mov edi, 1
lea ecx, [ebp - 0x40]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov edx, ebx
mov eax, dword [esi]
call sym._sqlite3BtreeMovetoUnpacked
mov dword [ebp - 0x300], eax
mov edx, dword [ebp - 0x20]
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbFree
cmp dword [ebp - 0x300], 0
jne 0x61c4e8ba
mov eax, dword [ebp - 0x40]
mov dword [esi + 0xc], eax
test eax, eax
sete cl
movzx edx, cl
mov al, 1
sub al, cl
mov byte [esi + 0x19], al
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov ebx, dword [ebp - 0x304]
cmp byte [ebx], 0x46
jne 0x61c4a81a
test edx, edx
jmp 0x61c48598
test edi, edi
jne 0x61c46fea
test edx, edx
jmp 0x61c4cfb5
mov esi, dword [ebp - 0x304]
imul edx, dword [esi + 0xc], 0x28
mov ecx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov ebx, dword [eax + ecx*4]
mov eax, dword [ebx]
mov dword [ebp - 0x40], 0
mov ecx, dword [ebp - 0x324]
mov esi, dword [ecx + edx]
mov edi, dword [ecx + edx + 4]
lea edx, [ebp - 0x40]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov dword [esp], esi
mov dword [esp + 4], edi
xor edx, edx
call sym._sqlite3BtreeMovetoUnpacked
mov dword [ebp - 0x300], eax
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], edi
mov byte [ebx + 0x19], 0
mov dword [ebx + 0x3c], 0
mov byte [ebx + 0x1a], 0
mov eax, dword [ebp - 0x40]
mov dword [ebx + 0xc], eax
jmp 0x61c4e0b7
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 8]
call sym._out2Prerelease.clone.119
mov esi, dword [ebp - 0x304]
mov ecx, dword [esi + 4]
mov edx, dword [ebx + 0x38]
mov ebx, dword [edx + ecx*4]
mov edx, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x2c]
mov dword [eax], edx
mov dword [eax + 4], ecx
add edx, 1
adc ecx, 0
mov dword [ebx + 0x28], edx
mov dword [ebx + 0x2c], ecx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x50], 0
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x40], 0
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 8]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 8]
call sym._out2Prerelease.clone.119
mov dword [ebp - 0x318], eax
mov edx, dword [edi + 4]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 0x38]
mov esi, dword [eax + edx*4]
test byte [esi + 0x1b], 2
jne 0x61c4a990
lea edx, [ebp - 0x40]
mov eax, dword [esi]
call sym._sqlite3BtreeLast
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4ea1b
cmp dword [ebp - 0x40], 0
je 0x61c4a95c
mov dword [ebp - 0x50], 1
mov dword [ebp - 0x4c], 0
jmp 0x61c4a990
mov ebx, dword [esi]
mov eax, ebx
call sym._getCellInfo
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
cmp edx, 0x7fffffff
jne 0x61c4a984
cmp eax, 0xffffffff
jne 0x61c4a984
or byte [esi + 0x1b], 2
jmp 0x61c4a990
add eax, 1
adc edx, 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov edi, dword [ebp - 0x304]
mov ebx, dword [edi + 0xc]
test ebx, ebx
je 0x61c4aa13
mov edx, dword [ebp - 0x30c]
mov eax, dword [edx + 0xb0]
test eax, eax
jne 0x61c4a9b1
jmp 0x61c4a9c0
mov eax, edx
mov edx, dword [eax + 4]
test edx, edx
jne 0x61c4a9af
imul ebx, ebx, 0x28
add ebx, dword [eax + 0x10]
jmp 0x61c4a9c9
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x324]
mov eax, ebx
call sym._sqlite3VdbeMemIntegerify
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
cmp edx, 0x7fffffff
jne 0x61c4a9e6
cmp eax, 0xffffffff
je 0x61c4ea10
test byte [esi + 0x1b], 2
jne 0x61c4ea10
cmp edx, dword [ebp - 0x4c]
jl 0x61c4aa08
jg 0x61c4a9fc
cmp eax, dword [ebp - 0x50]
jb 0x61c4aa08
add eax, 1
adc edx, 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebp - 0x300], 0
test byte [esi + 0x1b], 2
je 0x61c4aaa7
xor ebx, ebx
lea edi, [ebp - 0x50]
mov dword [esp + 4], edi
mov dword [esp], 8
call sym.sqlite3.dll_sqlite3_randomness
mov ecx, dword [ebp - 0x50]
mov dword [ebp - 0x3b0], ecx
mov eax, dword [ebp - 0x4c]
and eax, 0x3fffffff
mov dword [ebp - 0x3ac], eax
mov eax, dword [ebp - 0x3b0]
mov edx, dword [ebp - 0x3ac]
add eax, 1
adc edx, 0
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
lea ecx, [ebp - 0x40]
mov dword [esp + 0xc], ecx
mov dword [esp + 8], 0
mov dword [esp], eax
mov dword [esp + 4], edx
xor edx, edx
mov eax, dword [esi]
call sym._sqlite3BtreeMovetoUnpacked
test eax, eax
jne 0x61c4aaa1
cmp dword [ebp - 0x40], 0
jne 0x61c4aaa1
inc ebx
cmp ebx, 0x64
jne 0x61c4aa2c
mov bl, 0xd
jmp 0x61c4ea21
mov dword [ebp - 0x300], eax
mov byte [esi + 0x1a], 0
mov dword [esi + 0x3c], 0
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov ebx, dword [ebp - 0x318]
mov dword [ebx], eax
mov dword [ebx + 4], edx
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
imul eax, dword [esi + 8], 0x28
add eax, dword [ebp - 0x324]
mov ebx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov ecx, dword [edi + 0x38]
mov ebx, dword [ecx + ebx*4]
cmp dl, 0x54
mov esi, dword [esi + 0xc]
jne 0x61c4ab01
imul esi, esi, 0x28
mov ecx, dword [ebp - 0x324]
mov edi, dword [ecx + esi + 4]
mov esi, dword [ecx + esi]
jmp 0x61c4ab06
mov edi, esi
sar edi, 0x1f
mov edx, dword [ebp - 0x304]
test byte [edx + 3], 1
je 0x61c4ab1b
mov ecx, dword [ebp - 0x30c]
inc dword [ecx + 0x5c]
mov edx, dword [ebp - 0x304]
test byte [edx + 3], 2
je 0x61c4ab3f
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x20], esi
mov dword [ecx + 0x24], edi
mov dword [ebp - 0x368], esi
mov dword [ebp - 0x364], edi
movzx edx, word [eax + 8]
mov dword [ebp - 0x300], edx
and dl, 1
je 0x61c4ab5c
mov dword [eax + 0x10], 0
mov dword [eax + 0xc], 0
mov ecx, dword [ebp - 0x304]
movzx ecx, byte [ecx + 3]
mov dword [ebp - 0x318], ecx
xor edx, edx
and cl, 0x10
je 0x61c4ab76
mov edx, dword [ebx + 0xc]
xor ecx, ecx
test dword [ebp - 0x300], 0x4000
je 0x61c4ab86
mov ecx, dword [eax]
mov dword [esp + 0x18], edx
xor edx, edx
test byte [ebp - 0x318], 8
setne dl
mov dword [esp + 0x14], edx
mov dword [esp + 0x10], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xc], edx
mov eax, dword [eax + 0x10]
mov dword [esp + 8], eax
mov dword [esp], esi
mov dword [esp + 4], edi
xor edx, edx
mov eax, dword [ebx]
call sym._sqlite3BtreeInsert
mov dword [ebp - 0x300], eax
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
test eax, eax
jne 0x61c4e8ba
mov eax, dword [ebp - 0x308]
mov ecx, dword [eax + 0xd4]
test ecx, ecx
je 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 0x10]
test edx, edx
je 0x61c4e8ba
movsx eax, byte [ebx + 0x18]
shl eax, 4
mov ebx, dword [ebp - 0x308]
add eax, dword [ebx + 0x10]
mov eax, dword [eax]
mov dword [ebp - 0x318], eax
mov ebx, dword [ebp - 0x304]
movzx eax, byte [ebx + 3]
and eax, 4
cmp eax, 1
sbb eax, eax
and eax, 0xfffffffb
add eax, 0x17
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], edx
mov esi, dword [ebp - 0x318]
mov dword [esp + 8], esi
mov dword [esp + 4], eax
mov edi, dword [ebp - 0x308]
mov eax, dword [edi + 0xd0]
mov dword [esp], eax
call ecx
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx]
call sym._sqlite3BtreeDelete
mov dword [ebp - 0x300], eax
mov dword [ebx + 0x3c], 0
test eax, eax
jne 0x61c4ace5
mov esi, dword [ebp - 0x308]
mov edx, dword [esi + 0xd4]
test edx, edx
je 0x61c4ace5
mov edi, dword [ebp - 0x304]
mov eax, dword [edi + 0x10]
test eax, eax
je 0x61c4ace5
test byte [ebx + 0x1b], 4
je 0x61c4ace5
mov esi, dword [ebx + 0x30]
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov dword [esp + 0xc], eax
movsx eax, byte [ebx + 0x18]
shl eax, 4
mov ecx, dword [ebp - 0x308]
add eax, dword [ecx + 0x10]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], 9
mov eax, dword [ecx + 0xd0]
mov dword [esp], eax
call edx
mov ebx, dword [ebp - 0x304]
test byte [ebx + 8], 1
je 0x61c4e8ba
mov esi, dword [ebp - 0x30c]
inc dword [esi + 0x5c]
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x5c]
mov edx, dword [ebp - 0x308]
mov dword [edx + 0x50], eax
add dword [edx + 0x54], eax
mov dword [edi + 0x5c], 0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 4]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov esi, dword [ecx + 0xc]
mov dword [ebp - 0x320], esi
mov edi, dword [ecx + 0x10]
mov dword [ebp - 0x318], edi
mov esi, dword [eax + 0x38]
mov ebx, dword [esi + 0x20]
mov edi, dword [eax + 8]
test ebx, ebx
jne 0x61c4ad94
lea eax, [ebp - 0x20]
mov dword [esp], eax
xor ecx, ecx
xor edx, edx
mov eax, edi
call sym._sqlite3VdbeAllocUnpackedRecord
mov ebx, eax
mov dword [esi + 0x20], eax
mov dword [ebp - 0x300], 7
test eax, eax
je 0x61c4e8ba
mov eax, dword [ebp - 0x318]
mov word [ebx + 4], ax
cmp byte [esi + 0x38], 0
je 0x61c4adba
cmp byte [esi + 0x39], 0
je 0x61c4ada5
mov eax, dword [esi + 0x10]
jmp 0x61c4adb2
mov edx, dword [esi + 0x14]
mov eax, dword [edx + 8]
imul eax, dword [eax + 4], 0x38
add eax, dword [edx + 0xc]
mov edx, dword [eax + 0x14]
mov ecx, dword [eax + 0x20]
jmp 0x61c4adc2
mov ecx, dword [esi + 0x24]
mov edx, dword [ecx]
add ecx, 8
mov dword [esp], ebx
mov eax, edi
call sym._sqlite3VdbeRecordUnpack
xor eax, eax
jmp 0x61c4ade1
imul edx, eax, 0x28
add edx, dword [ebx + 8]
test byte [edx + 8], 1
jne 0x61c46fe0
inc eax
cmp eax, dword [ebp - 0x318]
jl 0x61c4add0
imul eax, dword [ebp - 0x320], 0x28
add eax, dword [ebp - 0x324]
mov dword [esp + 8], ebx
mov edx, dword [eax + 0x10]
mov dword [esp + 4], edx
mov eax, dword [eax + 0xc]
mov dword [esp], eax
call sym._sqlite3VdbeRecordCompare
test eax, eax
jne 0x61c46fe0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
imul ebx, dword [edx + 8], 0x28
add ebx, dword [ebp - 0x324]
mov edx, dword [edx + 4]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
mov eax, dword [eax + 0x38]
cmp byte [eax + 0x38], 0
je 0x61c4ae6b
cmp byte [eax + 0x39], 0
je 0x61c4ae56
mov eax, dword [eax + 0x10]
jmp 0x61c4ae63
mov edx, dword [eax + 0x14]
mov eax, dword [edx + 8]
imul eax, dword [eax + 4], 0x38
add eax, dword [edx + 0xc]
mov ecx, dword [eax + 0x14]
mov esi, dword [eax + 0x20]
jmp 0x61c4ae73
mov esi, dword [eax + 0x24]
mov ecx, dword [esi]
add esi, 8
mov edx, ecx
mov eax, ebx
mov dword [ebp - 0x3bc], ecx
call sym._sqlite3VdbeMemClearAndResize
mov dword [ebp - 0x300], 7
test eax, eax
mov ecx, dword [ebp - 0x3bc]
jne 0x61c4aeb8
mov dword [ebx + 0xc], ecx
mov eax, dword [ebx + 8]
and ax, 0xbe00
or eax, 0x10
mov word [ebx + 8], ax
mov eax, dword [ebx + 0x10]
mov edi, eax
rep movsb byte es:[edi], byte [esi]
mov dword [ebp - 0x300], 0
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 0xc]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov eax, dword [eax + edx*4]
mov dword [eax + 0x3c], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov ebx, dword [esi + 8]
mov edx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x300], eax
mov edi, dword [eax]
test byte [eax + 0x1b], 4
jne 0x61c4af24
mov eax, edi
call sym._getCellInfo
mov esi, dword [edi + 0x10]
mov eax, dword [ebp - 0x308]
mov ecx, dword [eax + 0x58]
mov eax, ecx
cdq
cmp dword [edi + 0x14], edx
jg 0x61c4e99b
jl 0x61c4af3d
cmp esi, ecx
jmp 0x61c4af37
mov eax, edi
call sym._getCellInfo
mov esi, dword [edi + 0x1c]
mov edx, dword [ebp - 0x308]
cmp esi, dword [edx + 0x58]
ja 0x61c4e99b
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x324]
mov edx, esi
cmp esi, 0x20
jae 0x61c4af52
mov edx, 0x20
mov eax, ebx
call sym._sqlite3VdbeMemClearAndResize
test eax, eax
jne 0x61c4e9d8
mov dword [ebx + 0xc], esi
mov eax, dword [ebx + 8]
and ax, 0xbe00
or eax, 0x10
mov word [ebx + 8], ax
mov ecx, dword [ebp - 0x300]
test byte [ecx + 0x1b], 4
jne 0x61c4af99
mov dword [esp + 4], 0
mov eax, dword [ebx + 0x10]
mov dword [esp], eax
mov ecx, esi
xor edx, edx
mov eax, edi
call sym._accessPayload
jmp 0x61c4afb4
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 8], esi
mov dword [esp + 4], 0
mov dword [esp], edi
call sym._sqlite3BtreeData
mov dword [ebp - 0x300], eax
mov byte [ebx + 0xa], 1
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 8]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 8]
call sym._out2Prerelease.clone.119
mov esi, eax
mov edx, dword [ebx + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov ebx, dword [eax + edx*4]
cmp byte [ebx + 0x19], 0
je 0x61c4b006
mov word [esi + 8], 1
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
cmp byte [ebx + 0x1a], 0
je 0x61c4b014
mov eax, dword [ebx + 0x30]
mov edx, dword [ebx + 0x34]
jmp 0x61c4b089
mov eax, dword [ebx + 0x20]
test eax, eax
je 0x61c4b042
mov ebx, dword [eax]
mov ecx, dword [ebx]
lea edx, [ebp - 0x50]
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [ecx + 0x30]
mov dword [ebp - 0x300], eax
lea edx, [ebx + 8]
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
jmp 0x61c4b099
mov eax, dword [ebx]
cmp byte [eax + 0x42], 1
je 0x61c4b05f
mov eax, ebx
call sym._handleMovedCursor
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4ea1b
cmp byte [ebx + 0x19], 0
je 0x61c4b07a
mov word [esi + 8], 1
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebx]
mov eax, ebx
call sym._getCellInfo
mov eax, dword [ebx + 0x10]
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], edx
mov dword [ebp - 0x300], 0
mov eax, dword [ebp - 0x50]
mov edx, dword [ebp - 0x4c]
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov eax, dword [eax + edx*4]
mov byte [eax + 0x19], 1
mov dword [eax + 0x3c], 0
mov ebx, dword [eax]
mov dword [ebp - 0x300], 0
test ebx, ebx
je 0x61c4e8ba
mov eax, dword [ebx + 0x30]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_free
mov dword [ebx + 0x30], 0
mov byte [ebx + 0x42], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 0x38]
mov ebx, dword [eax + edx*4]
mov eax, dword [ebx]
mov dword [ebp - 0x40], 0
lea edx, [ebp - 0x40]
call sym._sqlite3BtreeLast
mov dword [ebp - 0x300], eax
mov eax, dword [ebp - 0x40]
mov byte [ebx + 0x19], al
mov byte [ebx + 0x1a], 0
mov dword [ebx + 0x3c], 0
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 0xc]
mov dword [ebx + 0xc], edx
cmp dword [edi + 8], 0
jg 0x61c4e0b7
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x30c]
inc dword [eax + 0x74]
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 4]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 0x38]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x318], eax
mov ebx, dword [eax + 0x38]
test ebx, ebx
je 0x61c4b623
cmp byte [ebx + 0x38], 0
jne 0x61c4b1a5
cmp dword [ebx + 0x24], 0
je 0x61c4b66e
lea edx, [ebx + 0x24]
lea eax, [ebx + 0x40]
call sym._vdbeSorterSort
mov dword [ebp - 0x300], eax
jmp 0x61c4b61f
mov eax, ebx
call sym._vdbeSorterFlushPMA
movzx esi, byte [ebx + 0x3b]
jmp 0x61c4b1c4
imul eax, esi, 0x48
lea eax, [ebx + eax + 0x40]
call sym._vdbeSorterJoinThread
test edi, edi
je 0x61c4b1c4
mov eax, edi
dec esi
mov edi, eax
cmp esi, 0xffffffff
jne 0x61c4b1b2
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x320], eax
mov eax, 1
test edi, edi
jne 0x61c4b67d
mov eax, dword [ebx + 0x48]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x3b4], eax
mov al, byte [ebx + 0x3c]
mov edx, sym._vdbeSorterCompareInt
cmp al, 1
je 0x61c4b20b
mov edx, sym._vdbeSorterCompare
cmp al, 2
jne 0x61c4b20b
mov edx, sym._vdbeSorterCompareText
mov al, byte [ebx + 0x3b]
mov byte [ebp - 0x300], al
movzx eax, al
mov dword [ebp - 0x33c], ebx
mov ecx, ebx
xor esi, esi
jmp 0x61c4b227
mov dword [ecx + 0x18], edx
inc esi
add ecx, 0x48
cmp esi, eax
jl 0x61c4b223
xor edi, edi
cmp byte [ebp - 0x300], 1
jbe 0x61c4b24e
call sym._vdbeMergeEngineNew
mov edi, eax
test eax, eax
jne 0x61c4b24e
mov dword [ebp - 0x320], 7
mov edx, dword [ebp - 0x320]
mov dword [ebp - 0x320], 0
mov esi, ebx
mov ebx, edx
jmp 0x61c4b4df
mov ecx, dword [ebp - 0x33c]
mov edx, dword [ecx + 0x5c]
test edx, edx
je 0x61c4b4d2
mov dword [ebp - 0x24], 0
mov dword [ebp - 0x300], 0x10
mov dword [ebp - 0x2fc], 0
mov dword [ebp - 0x348], 0
mov eax, edx
sar eax, 0x1f
mov dword [ebp - 0x32c], eax
mov ecx, edx
mov eax, 0x10
xor edx, edx
jmp 0x61c4b2c0
shld edx, eax, 4
shl eax, 4
inc dword [ebp - 0x348]
cmp edx, dword [ebp - 0x32c]
jl 0x61c4b2b3
jg 0x61c4b2ce
cmp eax, ecx
jb 0x61c4b2b3
mov edx, ecx
imul eax, dword [ebp - 0x320], 0x48
lea eax, [esi + eax + 0x40]
mov dword [ebp - 0x330], eax
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x54], 0
cmp ecx, 0x10
jg 0x61c4b309
lea ecx, [ebp - 0x24]
mov dword [esp], ecx
lea ecx, [ebp - 0x58]
call sym._vdbeMergeEngineLevel0
mov ebx, eax
jmp 0x61c4b49f
mov eax, 0x10
call sym._vdbeMergeEngineNew
mov dword [ebp - 0x24], eax
test eax, eax
jne 0x61c4b31f
mov ebx, 7
mov dword [ebp - 0x334], 0
mov dword [ebp - 0x350], 0
mov dword [ebp - 0x390], esi
mov dword [ebp - 0x394], edi
jmp 0x61c4b47a
mov dword [ebp - 0x28], 0
sub edx, dword [ebp - 0x350]
cmp edx, 0x10
jle 0x61c4b35b
mov edx, 0x10
lea ebx, [ebp - 0x28]
mov dword [esp], ebx
lea ecx, [ebp - 0x58]
mov eax, dword [ebp - 0x330]
call sym._vdbeMergeEngineLevel0
mov ebx, eax
test eax, eax
jne 0x61c4b473
mov edi, dword [ebp - 0x24]
mov esi, dword [ebp - 0x334]
inc esi
mov dword [ebp - 0x3b8], esi
lea ecx, [ebp - 0x2c]
mov edx, dword [ebp - 0x28]
mov eax, dword [ebp - 0x330]
call sym._vdbeIncrMergerNew
mov ebx, eax
mov eax, 1
mov dword [ebp - 0x300], 1
jmp 0x61c4b3b5
shl dword [ebp - 0x300], 4
inc eax
cmp eax, dword [ebp - 0x348]
jl 0x61c4b3ad
mov dword [ebp - 0x358], 1
jmp 0x61c4b435
mov eax, dword [ebp - 0x334]
cdq
idiv dword [ebp - 0x300]
mov ecx, 0x10
cdq
idiv ecx
imul esi, edx, 0x38
add esi, dword [edi + 0xc]
cmp dword [esi + 0x30], 0
jne 0x61c4b413
mov eax, 0x10
call sym._vdbeMergeEngineNew
mov edx, eax
mov ebx, 7
test eax, eax
je 0x61c4b42f
lea ecx, [esi + 0x30]
mov eax, dword [ebp - 0x330]
call sym._vdbeIncrMergerNew
mov ebx, eax
test eax, eax
jne 0x61c4b42f
mov eax, dword [esi + 0x30]
mov edi, dword [eax + 4]
mov eax, dword [ebp - 0x300]
mov ecx, 0x10
cdq
idiv ecx
mov dword [ebp - 0x300], eax
xor ebx, ebx
inc dword [ebp - 0x358]
test ebx, ebx
jne 0x61c4b447
mov esi, dword [ebp - 0x348]
cmp dword [ebp - 0x358], esi
jl 0x61c4b3c9
test ebx, ebx
mov eax, dword [ebp - 0x2c]
jne 0x61c4b462
mov edx, dword [ebp - 0x334]
and edx, 0xf
imul edx, edx, 0x38
add edx, dword [edi + 0xc]
mov dword [edx + 0x30], eax
jmp 0x61c4b467
call sym._vdbeIncrFree
mov edi, dword [ebp - 0x3b8]
mov dword [ebp - 0x334], edi
add dword [ebp - 0x350], 0x10
mov eax, dword [ebp - 0x33c]
mov edx, dword [eax + 0x5c]
test ebx, ebx
jne 0x61c4b493
cmp dword [ebp - 0x350], edx
jl 0x61c4b344
mov esi, dword [ebp - 0x390]
mov edi, dword [ebp - 0x394]
test ebx, ebx
jne 0x61c4b4ca
test edi, edi
mov edx, dword [ebp - 0x24]
je 0x61c4b4c6
imul ecx, dword [ebp - 0x320], 0x38
add ecx, dword [edi + 0xc]
add ecx, 0x30
mov eax, dword [ebp - 0x330]
call sym._vdbeIncrMergerNew
mov ebx, eax
jmp 0x61c4b4d2
mov edi, edx
jmp 0x61c4b4d2
mov eax, dword [ebp - 0x24]
call sym._vdbeMergeEngineFree
inc dword [ebp - 0x320]
add dword [ebp - 0x33c], 0x48
test ebx, ebx
jne 0x61c4b500
movzx eax, byte [esi + 0x3b]
cmp dword [ebp - 0x320], eax
jl 0x61c4b267
mov ebx, esi
cmp byte [esi + 0x39], 0
jne 0x61c4b512
jmp 0x61c4b5f8
mov dword [ebp - 0x300], ebx
mov eax, edi
call sym._vdbeMergeEngineFree
jmp 0x61c4b616
dec eax
imul eax, eax, 0x48
lea eax, [esi + eax + 0x40]
mov dword [ebp - 0x320], eax
call sym._vdbeSortAllocUnpacked
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4b618
mov edx, 0x38
xor ecx, ecx
mov eax, dword [ebp - 0x3b4]
call sym._sqlite3DbMallocZero
mov esi, eax
mov dword [ebx + 0x10], eax
test eax, eax
jne 0x61c4eab9
mov dword [ebp - 0x300], 7
jmp 0x61c4b618
mov eax, dword [esi + 0x30]
mov dword [eax + 0x18], 1
mov ecx, dword [eax]
mov eax, dword [eax + 0x10]
cdq
sub dword [ecx + 0x40], eax
sbb dword [ecx + 0x44], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4b5b1
imul eax, dword [ebp - 0x300], 0x38
add eax, dword [edi + 0xc]
mov edx, dword [eax + 0x30]
test edx, edx
je 0x61c4b5ab
mov dword [edx + 0x18], 1
mov eax, dword [edx]
mov edx, dword [edx + 0x10]
mov ecx, edx
sar ecx, 0x1f
sub dword [eax + 0x40], edx
sbb dword [eax + 0x44], ecx
inc dword [ebp - 0x300]
movzx eax, byte [ebx + 0x3b]
dec eax
cmp dword [ebp - 0x300], eax
jl 0x61c4b583
xor ecx, ecx
jmp 0x61c4b5e3
imul eax, ecx, 0x38
add eax, dword [edi + 0xc]
mov edx, 1
mov dword [ebp - 0x3bc], ecx
call sym._vdbePmaReaderIncrInit
test eax, eax
mov ecx, dword [ebp - 0x3bc]
jne 0x61c4b5f0
inc ecx
movzx eax, byte [ebx + 0x3b]
cmp ecx, eax
jl 0x61c4b5c2
jmp 0x61c4eadc
mov dword [ebp - 0x300], eax
jmp 0x61c4b616
lea eax, [esi + 0x40]
xor ecx, ecx
mov edx, edi
call sym._vdbeMergeEngineInit
mov dword [ebp - 0x300], eax
mov dword [esi + 0x14], edi
cmp dword [ebp - 0x300], 0
je 0x61c4b61f
xor edi, edi
mov eax, edi
call sym._vdbeMergeEngineFree
xor eax, eax
jmp 0x61c4b67d
mov edx, dword [ebp - 0x318]
mov ebx, dword [edx]
mov eax, ebx
call sym._moveToRoot
mov dword [ebp - 0x300], eax
mov eax, 1
cmp dword [ebp - 0x300], 0
jne 0x61c4b65b
cmp byte [ebx + 0x42], 0
je 0x61c4b65b
mov eax, ebx
call sym._moveToLeftmost
mov dword [ebp - 0x300], eax
xor eax, eax
mov ecx, dword [ebp - 0x318]
mov byte [ecx + 0x1a], 0
mov dword [ecx + 0x3c], 0
jmp 0x61c4b67d
mov eax, 1
mov dword [ebp - 0x300], 0
mov ebx, dword [ebp - 0x318]
mov byte [ebx + 0x19], al
jmp 0x61c4e0b7
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov esi, dword [eax + edx*4]
mov dword [ebp - 0x40], 0
mov ebx, dword [esi + 0x38]
cmp byte [ebx + 0x38], 0
je 0x61c4b6e6
cmp byte [ebx + 0x39], 0
je 0x61c4b6d9
mov eax, dword [ebx + 0x10]
call sym._vdbePmaReaderNext
mov dword [ebp - 0x300], eax
mov eax, dword [ebx + 0x10]
cmp dword [eax + 0x18], 0
sete al
movzx eax, al
mov dword [ebp - 0x40], eax
jmp 0x61c4b76b
mov eax, dword [ebx + 0x14]
lea edx, [ebp - 0x40]
call sym._vdbeMergeEngineStep
jmp 0x61c4b765
mov edx, dword [ebx + 0x24]
mov eax, dword [edx + 4]
mov dword [ebx + 0x24], eax
mov dword [edx + 4], 0
cmp dword [ebx + 0x28], 0
jne 0x61c4b707
mov eax, dword [ebp - 0x308]
call sym._vdbeSorterRecordFree
xor eax, eax
cmp dword [ebx + 0x24], 0
sete al
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x300], 0
jmp 0x61c4b76b
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
cmp dword [eax + edx*4], 0
je 0x61c4e880
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + edx*4]
mov eax, dword [ebx + 0xc]
mov dword [ebp - 0x40], eax
lea edi, [ebp - 0x40]
mov dword [esp + 4], edi
mov eax, dword [esi]
mov dword [esp], eax
call dword [ebx + 0x10]
mov dword [ebp - 0x300], eax
mov dword [esi + 0x3c], 0
cmp dword [ebp - 0x40], 0
jne 0x61c4b795
mov byte [esi + 0x19], 0
mov edx, dword [ebp - 0x304]
movzx eax, byte [edx + 3]
mov ecx, dword [ebp - 0x30c]
inc dword [ecx + eax*4 + 0x6c]
jmp 0x61c46f26
mov byte [esi + 0x19], 1
jmp 0x61c46f3f
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 0x38]
mov ebx, dword [eax + edx*4]
mov edi, dword [ebp - 0x304]
imul eax, dword [edi + 8], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x318], eax
test byte [edi + 3], 1
je 0x61c4b7d2
inc dword [esi + 0x5c]
mov eax, dword [ebp - 0x318]
test byte [eax + 9], 0x40
je 0x61c4b7f1
call sym._sqlite3VdbeMemExpandBlob
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4e8ba
mov edx, dword [ebp - 0x304]
cmp byte [edx], 0x6e
mov ecx, dword [ebp - 0x318]
mov edx, dword [ecx + 0x10]
jne 0x61c4b998
mov ebx, dword [ebx + 0x38]
lea ecx, [edx + 1]
mov al, byte [edx + 1]
test al, al
js 0x61c4b81e
movzx eax, al
mov dword [ebp - 0x40], eax
jmp 0x61c4b828
lea edx, [ebp - 0x40]
mov eax, ecx
call sym._sqlite3GetVarint32
mov eax, dword [ebp - 0x40]
lea edx, [eax - 1]
cmp edx, 8
ja 0x61c4b83e
cmp eax, 7
je 0x61c4b83e
and byte [ebx + 0x3c], 1
jmp 0x61c4b851
cmp eax, 0xa
jle 0x61c4b84d
test al, 1
je 0x61c4b84d
and byte [ebx + 0x3c], 2
jmp 0x61c4b851
mov byte [ebx + 0x3c], 0
mov edi, dword [ebp - 0x318]
mov esi, dword [edi + 0xc]
lea eax, [esi + 8]
mov dword [ebp - 0x320], eax
mov eax, esi
cdq
call sym._sqlite3VarintLen
lea esi, [eax + esi]
mov eax, dword [ebx + 4]
mov dword [ebp - 0x300], 0
test eax, eax
je 0x61c4b8b8
cmp dword [ebx + 0x28], 0
je 0x61c4b89c
mov edx, dword [ebx + 0x30]
test edx, edx
je 0x61c4b8b8
add edx, dword [ebp - 0x320]
cmp edx, eax
jg 0x61c4eaf3
jmp 0x61c4b8b8
mov edx, dword [ebx + 0x2c]
cmp edx, eax
jg 0x61c4eaf3
cmp edx, dword [ebx]
jle 0x61c4b8b8
cmp dword [0x61c8323c], 0
jne 0x61c4eaf3
add dword [ebx + 0x2c], esi
cmp esi, dword [ebx + 8]
jle 0x61c4b8c3
mov dword [ebx + 8], esi
mov edi, dword [ebx + 0x28]
test edi, edi
je 0x61c4b933
mov esi, dword [ebp - 0x320]
add esi, dword [ebx + 0x30]
mov eax, dword [ebx + 0x34]
cmp esi, eax
jle 0x61c4b912
shl eax, 1
cmp eax, esi
jl 0x61c4b8da
mov edx, dword [ebx + 4]
cmp eax, edx
jle 0x61c4b8ed
cmp edx, esi
jl 0x61c4b8ef
mov eax, edx
mov esi, eax
mov edx, esi
mov ecx, esi
sar ecx, 0x1f
mov eax, edi
call sym._sqlite3Realloc
test eax, eax
je 0x61c4b97a
mov edx, dword [ebx + 0x24]
add edx, eax
sub edx, dword [ebx + 0x28]
mov dword [ebx + 0x24], edx
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x34], esi
mov esi, dword [ebx + 0x28]
mov ecx, dword [ebx + 0x30]
lea eax, [esi + ecx]
mov edx, dword [ebp - 0x320]
add edx, 7
and edx, 0xfffffff8
add edx, ecx
mov dword [ebx + 0x30], edx
mov edx, dword [ebx + 0x24]
sub edx, esi
jmp 0x61c4b951
mov edx, dword [ebp - 0x320]
mov ecx, edx
sar ecx, 0x1f
mov dword [esp], edx
mov dword [esp + 4], ecx
call sym._sqlite3Malloc
test eax, eax
je 0x61c4b989
mov edx, dword [ebx + 0x24]
mov dword [eax + 4], edx
lea edx, [eax + 8]
mov ecx, dword [ebp - 0x318]
mov esi, dword [ecx + 0x10]
mov ecx, dword [ecx + 0xc]
mov edi, edx
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebp - 0x318]
mov edx, dword [ecx + 0xc]
mov dword [eax], edx
mov dword [ebx + 0x24], eax
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 7
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 7
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x318]
mov ecx, dword [esi + 0xc]
xor eax, eax
mov edi, dword [ebp - 0x304]
test byte [edi + 3], 0x10
je 0x61c4b9b2
mov eax, dword [ebx + 0xc]
mov dword [esp + 0x18], eax
mov esi, dword [ebp - 0x304]
mov eax, dword [esi + 0xc]
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x61c77244
mov dword [esp], ecx
mov edi, ecx
sar edi, 0x1f
mov dword [esp + 4], edi
mov eax, dword [ebx]
call sym._sqlite3BtreeInsert
mov dword [ebp - 0x300], eax
mov dword [ebx + 0x3c], 0
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov ebx, dword [eax + edx*4]
mov esi, dword [ebx]
mov eax, dword [ebx + 8]
mov dword [ebp - 0x88], eax
mov edi, dword [ebp - 0x304]
mov eax, dword [edi + 0xc]
mov word [ebp - 0x84], ax
mov byte [ebp - 0x82], 0
imul eax, dword [edi + 8], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x80], eax
lea edx, [ebp - 0x88]
lea eax, [ebp - 0x40]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov dword [esp], 0
mov dword [esp + 4], 0
mov eax, esi
call sym._sqlite3BtreeMovetoUnpacked
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4ba8c
cmp dword [ebp - 0x40], 0
jne 0x61c4ba8c
mov eax, esi
call sym._sqlite3BtreeDelete
mov dword [ebp - 0x300], eax
mov dword [ebx + 0x3c], 0
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 8]
call sym._out2Prerelease.clone.119
mov edi, eax
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 4]
mov eax, dword [ebx + 0x38]
mov ebx, dword [eax + edx*4]
mov esi, dword [ebx]
mov word [edi + 8], 1
cmp byte [esi + 0x42], 1
je 0x61c4bae3
mov eax, ebx
call sym._handleMovedCursor
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4ea1b
mov dword [ebp - 0x300], 0
cmp byte [ebx + 0x19], 0
jne 0x61c4e8ba
mov eax, esi
call sym._getCellInfo
mov ecx, dword [esi + 0x10]
mov word [ebp - 0x188], 0
mov eax, dword [ebp - 0x308]
mov dword [ebp - 0x170], eax
mov dword [ebp - 0x178], 0
lea eax, [ebp - 0x190]
mov dword [esp + 4], eax
mov dword [esp], 1
xor edx, edx
mov eax, esi
call sym._sqlite3VdbeMemFromBtree
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4ea1b
mov eax, dword [ebp - 0x180]
mov dl, byte [eax]
test dl, dl
js 0x61c4bb5c
movzx edx, dl
mov dword [ebp - 0x40], edx
jmp 0x61c4bb64
lea edx, [ebp - 0x40]
call sym._sqlite3GetVarint32
mov eax, dword [ebp - 0x40]
cmp eax, 2
jbe 0x61c4bbf5
cmp eax, dword [ebp - 0x184]
jg 0x61c4bbf5
dec eax
add eax, dword [ebp - 0x180]
mov dl, byte [eax]
test dl, dl
js 0x61c4bb8d
movzx edx, dl
mov dword [ebp - 0x44], edx
jmp 0x61c4bb95
lea edx, [ebp - 0x44]
call sym._sqlite3GetVarint32
mov edx, dword [ebp - 0x44]
lea eax, [edx - 1]
cmp eax, 8
ja 0x61c4bbf5
cmp edx, 7
je 0x61c4bbf5
movzx ebx, byte [edx + 0x61c80eac]
mov eax, dword [ebp - 0x184]
mov ecx, dword [ebp - 0x40]
add ecx, ebx
cmp eax, ecx
jb 0x61c4bbf5
lea ecx, [ebp - 0x1b8]
sub eax, ebx
add eax, dword [ebp - 0x180]
call sym._sqlite3VdbeSerialGet
mov ebx, dword [ebp - 0x1b8]
mov esi, dword [ebp - 0x1b4]
lea eax, [ebp - 0x190]
call sym._sqlite3VdbeMemRelease
mov dword [edi], ebx
mov dword [edi + 4], esi
mov word [edi + 8], 4
jmp 0x61c4e8ba
lea eax, [ebp - 0x190]
call sym._sqlite3VdbeMemRelease
mov dword [esp + 0xc], 0x61c77104
mov dword [esp + 8], 0x11175
mov dword [esp + 4], 0x61c77f56
mov dword [esp], 0xb
call sym.sqlite3.dll_sqlite3_log
mov ebx, 0xb
jmp 0x61c4ea21
mov ebx, dword [ebp - 0x304]
mov ecx, dword [ebx + 4]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 0x38]
mov esi, dword [eax + ecx*4]
mov eax, dword [esi + 8]
mov dword [ebp - 0x88], eax
mov eax, dword [ebx + 0x10]
mov word [ebp - 0x84], ax
cmp dl, 0x74
sbb eax, eax
mov byte [ebp - 0x82], al
imul eax, dword [ebx + 0xc], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x80], eax
mov ebx, dword [esi]
mov eax, ebx
call sym._getCellInfo
mov ecx, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
mov eax, ecx
mov edx, ebx
add eax, 0xffffffff
adc edx, 0xffffffff
cmp edx, 0
ja 0x61c4bc93
cmp eax, 0x7ffffffe
jbe 0x61c4bcc5
mov dword [esp + 0xc], 0x61c77104
mov dword [esp + 8], 0x11195
mov dword [esp + 4], 0x61c77f56
mov dword [esp], 0xb
call sym.sqlite3.dll_sqlite3_log
xor ebx, ebx
mov dword [ebp - 0x300], 0xb
jmp 0x61c4bd35
mov word [ebp - 0x160], 0
mov edi, dword [ebp - 0x308]
mov dword [ebp - 0x148], edi
mov dword [ebp - 0x150], 0
lea edi, [ebp - 0x168]
mov dword [esp + 4], edi
mov dword [esp], 1
xor edx, edx
mov eax, dword [esi]
call sym._sqlite3VdbeMemFromBtree
mov dword [ebp - 0x300], eax
xor ebx, ebx
test eax, eax
jne 0x61c4bd35
lea eax, [ebp - 0x88]
mov dword [esp + 8], eax
mov eax, dword [ebp - 0x158]
mov dword [esp + 4], eax
mov eax, dword [ebp - 0x15c]
mov dword [esp], eax
call sym._sqlite3VdbeRecordCompare
mov ebx, eax
mov eax, edi
call sym._sqlite3VdbeMemRelease
mov eax, dword [ebp - 0x304]
test byte [eax], 1
jne 0x61c4bd44
neg ebx
jmp 0x61c4bd45
inc ebx
test ebx, ebx
jg 0x61c46fea
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 8]
call sym._out2Prerelease.clone.119
mov dword [ebp - 0x320], eax
mov word [eax + 8], 1
mov esi, dword [ebp - 0x308]
mov eax, dword [esi + 0xa4]
inc eax
cmp dword [esi + 0x98], eax
jle 0x61c4bd9d
mov byte [ebx + 0x56], 2
mov dword [ebp - 0x300], 6
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov edi, dword [edi + 0xc]
mov dword [ebp - 0x330], edi
mov eax, dword [ebp - 0x304]
mov esi, dword [eax + 4]
shl edi, 4
mov dword [ebp - 0x334], edi
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x10]
mov eax, dword [eax + edi + 4]
mov dword [ebp - 0x318], eax
call sym._sqlite3BtreeEnter
mov dword [ebp - 0x30], 0
mov ecx, dword [ebp - 0x318]
mov ebx, dword [ecx + 4]
cmp dword [ebx + 8], 0
jne 0x61c4bfab
lea ecx, [ebp - 0x30]
mov dword [esp], 0
mov edx, esi
mov eax, ebx
call sym._btreeGetPage
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x44], eax
xor edi, edi
test eax, eax
jne 0x61c4bfb7
xor ecx, ecx
mov edx, esi
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeClearTable
mov dword [ebp - 0x44], eax
test eax, eax
je 0x61c4be42
mov eax, dword [ebp - 0x30]
call sym._releasePage
mov ebx, dword [ebp - 0x44]
mov dword [ebp - 0x300], ebx
jmp 0x61c4bfb7
cmp esi, 1
jbe 0x61c4bf8b
cmp byte [ebx + 0x11], 0
je 0x61c4bf7e
lea ecx, [ebp - 0x40]
mov edx, 4
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeGetMeta
cmp esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x30]
jne 0x61c4be96
lea edx, [ebp - 0x44]
call sym._freePage
mov eax, dword [ebp - 0x30]
call sym._releasePage
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x300], esi
test esi, esi
je 0x61c4bf3f
jmp 0x61c4bfb7
call sym._releasePage
mov dword [esp], 0
lea ecx, [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov eax, ebx
call sym._btreeGetPage
mov dword [ebp - 0x300], eax
mov dword [ebp - 0x44], eax
test eax, eax
jne 0x61c4bfb7
mov dword [esp + 8], 0
mov dword [esp + 4], esi
mov dword [esp], 0
mov ecx, 1
mov edx, dword [ebp - 0x34]
mov eax, ebx
call sym._relocatePage
mov dword [ebp - 0x44], eax
mov eax, dword [ebp - 0x34]
call sym._releasePage
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4bfb7
mov dword [ebp - 0x34], 0
mov dword [esp], 0
lea ecx, [ebp - 0x34]
mov edx, dword [ebp - 0x40]
mov eax, ebx
call sym._btreeGetPage
mov dword [ebp - 0x44], eax
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x34]
call sym._freePage
mov eax, dword [ebp - 0x34]
call sym._releasePage
mov edx, dword [ebp - 0x44]
mov dword [ebp - 0x300], edx
test edx, edx
jne 0x61c4bfb7
mov edi, dword [ebp - 0x40]
dec dword [ebp - 0x40]
jmp 0x61c4bf48
dec esi
mov dword [ebp - 0x40], esi
mov esi, dword [ebp - 0x40]
mov eax, dword [0x61c75110]
xor edx, edx
div dword [ebx + 0x20]
inc eax
cmp esi, eax
je 0x61c4bf44
mov edx, esi
mov eax, ebx
call sym._ptrmapPageno
cmp eax, esi
je 0x61c4bf44
mov ecx, esi
mov edx, 4
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeUpdateMeta
mov dword [ebp - 0x44], eax
jmp 0x61c4bfa0
lea edx, [ebp - 0x44]
mov eax, dword [ebp - 0x30]
call sym._freePage
jmp 0x61c4bf98
mov edx, 9
mov eax, dword [ebp - 0x30]
call sym._zeroPage
mov eax, dword [ebp - 0x30]
call sym._releasePage
mov ecx, dword [ebp - 0x44]
mov dword [ebp - 0x300], ecx
jmp 0x61c4bfb7
xor edi, edi
mov dword [ebp - 0x300], 0x106
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeLeave
mov ebx, dword [ebp - 0x320]
mov word [ebx + 8], 4
mov dword [ebx], edi
mov esi, edi
sar esi, 0x1f
mov dword [ebx + 4], esi
cmp dword [ebp - 0x300], 0
jne 0x61c4e8ba
test edi, edi
je 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov ebx, dword [eax + 4]
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x10]
mov esi, dword [ebp - 0x334]
mov ecx, dword [eax + esi + 0xc]
mov eax, dword [ecx + 0x10]
jmp 0x61c4c01b
mov edx, dword [eax + 8]
cmp dword [edx + 0x1c], edi
jne 0x61c4c019
mov dword [edx + 0x1c], ebx
mov eax, dword [eax]
test eax, eax
jne 0x61c4c00e
mov eax, dword [ecx + 0x20]
jmp 0x61c4c031
mov edx, dword [eax + 8]
cmp dword [edx + 0x28], edi
jne 0x61c4c02f
mov dword [edx + 0x28], ebx
mov eax, dword [eax]
test eax, eax
jne 0x61c4c024
mov al, byte [ebp - 0x330]
inc eax
mov byte [ebp - 0x389], al
jmp 0x61c4e8ba
mov dword [ebp - 0x40], 0
xor ecx, ecx
mov edx, dword [ebp - 0x304]
cmp dword [edx + 0xc], 0
je 0x61c4c05f
lea ecx, [ebp - 0x40]
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 4]
mov eax, dword [ebx + 8]
shl eax, 4
mov esi, dword [ebp - 0x308]
add eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
call sym._sqlite3BtreeClearTable
mov dword [ebp - 0x300], eax
mov ecx, dword [ebx + 0xc]
test ecx, ecx
je 0x61c4e8ba
mov eax, dword [ebp - 0x40]
mov edi, dword [ebp - 0x30c]
add dword [edi + 0x5c], eax
test ecx, ecx
jle 0x61c4e8ba
imul ecx, ecx, 0x28
cdq
mov ebx, dword [ebp - 0x324]
add dword [ebx + ecx], eax
adc dword [ebx + ecx + 4], edx
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 4]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 0x38]
mov eax, dword [eax + edx*4]
mov edx, dword [eax + 0x38]
test edx, edx
je 0x61c4c0f0
mov eax, dword [ebp - 0x308]
call sym._sqlite3VdbeSorterReset
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov eax, dword [eax]
mov edx, dword [eax + 0x34]
xor ecx, ecx
mov eax, dword [eax]
call sym._sqlite3BtreeClearTable
mov dword [ebp - 0x300], eax
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 8]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 8]
call sym._out2Prerelease.clone.119
mov edi, eax
mov dword [ebp - 0x40], 0
mov ebx, dword [ebp - 0x304]
mov eax, dword [ebx + 4]
shl eax, 4
mov esi, dword [ebp - 0x308]
add eax, dword [esi + 0x10]
cmp byte [ebx], 0x7a
setne bl
movzx ebx, bl
inc ebx
mov esi, dword [eax + 4]
mov eax, esi
call sym._sqlite3BtreeEnter
mov ecx, ebx
lea edx, [ebp - 0x40]
mov eax, esi
call sym._btreeCreateTable
mov dword [ebp - 0x300], eax
mov eax, esi
call sym._sqlite3BtreeLeave
mov eax, dword [ebp - 0x40]
mov dword [edi], eax
cdq
mov dword [edi + 4], edx
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov eax, dword [ecx + 4]
mov edx, str.sqlite_master
cmp eax, 1
jne 0x61c4c191
mov edx, str.sqlite_temp_master
mov ebx, dword [ebp - 0x308]
mov dword [ebp - 0x74], ebx
mov dword [ebp - 0x6c], eax
mov ecx, dword [ebp - 0x30c]
add ecx, 0x2c
mov dword [ebp - 0x70], ecx
mov esi, dword [ebp - 0x304]
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
shl eax, 4
add eax, dword [ebx + 0x10]
mov eax, dword [eax]
mov dword [esp + 8], eax
mov dword [esp + 4], str.SELECT_name__rootpage__sql_FROM__q._s_WHERE__s_ORDER_BY_rowid
mov dword [esp], ebx
call sym._sqlite3MPrintf
mov ebx, eax
test eax, eax
je 0x61c4c24f
mov edi, dword [ebp - 0x308]
mov byte [edi + 0x91], 1
mov dword [ebp - 0x68], 0
mov dword [esp + 0x10], 0
lea eax, [ebp - 0x74]
mov dword [esp + 0xc], eax
mov dword [esp + 8], sym._sqlite3InitCallback
mov dword [esp + 4], ebx
mov dword [esp], edi
call sym.sqlite3.dll_sqlite3_exec
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4c226
mov eax, dword [ebp - 0x68]
mov dword [ebp - 0x300], eax
mov edx, ebx
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbFree
mov edx, dword [ebp - 0x308]
mov byte [edx + 0x91], 0
cmp dword [ebp - 0x300], 0
je 0x61c4e8ba
jmp 0x61c4c259
mov dword [ebp - 0x300], 7
mov eax, dword [ebp - 0x308]
call sym._sqlite3ResetAllSchemasOfConnection
cmp dword [ebp - 0x300], 7
jne 0x61c4e8ba
jmp 0x61c4e9d8
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 4]
mov eax, dword [ebp - 0x308]
call sym._sqlite3AnalysisLoad
mov dword [ebp - 0x300], eax
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 0x10]
mov eax, dword [ebx + 4]
shl eax, 4
mov esi, dword [ebp - 0x308]
add eax, dword [esi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 8
xor ecx, ecx
call sym._sqlite3HashInsert
mov edx, eax
mov eax, esi
call sym._sqlite3DeleteTable
or dword [esi + 0x18], 2
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 0x10]
mov eax, dword [edi + 4]
shl eax, 4
mov ecx, dword [ebp - 0x308]
add eax, dword [ecx + 0x10]
mov eax, dword [eax + 0xc]
add eax, 0x18
xor ecx, ecx
call sym._sqlite3HashInsert
test eax, eax
je 0x61c4c330
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 8]
cmp edx, eax
jne 0x61c4c313
mov edx, dword [eax + 0x14]
mov dword [ecx + 8], edx
jmp 0x61c4c323
mov edx, ecx
test edx, edx
je 0x61c4c323
mov ecx, dword [edx + 0x14]
cmp ecx, eax
jne 0x61c4c311
jmp 0x61c4eb5a
mov edx, eax
mov eax, dword [ebp - 0x308]
call sym._freeIndex
mov ebx, dword [ebp - 0x308]
or dword [ebx + 0x18], 2
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 0x10]
mov eax, dword [esi + 4]
shl eax, 4
mov edi, dword [ebp - 0x308]
add eax, dword [edi + 0x10]
mov eax, dword [eax + 0xc]
add eax, 0x28
xor ecx, ecx
call sym._sqlite3HashInsert
mov ebx, eax
mov dword [ebp - 0x300], 0
test eax, eax
je 0x61c4e8ba
mov eax, dword [eax + 0x14]
cmp eax, dword [ebx + 0x18]
jne 0x61c4c3ac
mov edx, dword [ebx + 4]
add eax, 8
call sym._sqlite3HashFind
lea edx, [eax + 0x3c]
mov eax, dword [eax + 0x3c]
jmp 0x61c4c3a3
lea edx, [eax + 0x20]
mov eax, dword [eax + 0x20]
cmp eax, ebx
jne 0x61c4c39d
mov eax, dword [ebx + 0x20]
mov dword [edx], eax
mov edx, ebx
mov eax, dword [ebp - 0x308]
call sym._sqlite3DeleteTrigger
mov eax, dword [ebp - 0x308]
or dword [eax + 0x18], 2
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
mov edx, dword [edx + 8]
mov dword [ebp - 0x320], edx
lea edx, [edx*4 + 4]
xor ecx, ecx
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbMallocRaw
mov dword [ebp - 0x300], eax
test eax, eax
je 0x61c4e9d8
mov ecx, dword [ebp - 0x304]
imul eax, dword [ecx + 0xc], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x330], eax
imul eax, dword [ecx + 4], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x318], eax
mov esi, eax
xor ebx, ebx
jmp 0x61c4c443
mov eax, esi
call sym._sqlite3VdbeIntValue
mov edi, dword [ebp - 0x300]
mov dword [edi + ebx*4], eax
inc ebx
add esi, 0x28
cmp ebx, dword [ebp - 0x320]
jl 0x61c4c42f
mov eax, dword [ebp - 0x300]
mov dword [eax + ebx*4], 0
mov edx, dword [ebp - 0x330]
mov esi, dword [edx]
mov ecx, dword [ebp - 0x304]
movzx eax, byte [ecx + 3]
shl eax, 4
mov ebx, dword [ebp - 0x308]
add eax, dword [ebx + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x334], eax
mov ebx, dword [eax + 4]
mov eax, dword [ebx + 4]
mov eax, dword [eax + 0x18]
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x334]
call sym._sqlite3BtreeEnter
mov dword [ebp - 0x228], ebx
mov eax, dword [ebx]
mov dword [ebp - 0x224], eax
mov eax, dword [ebx + 0x2c]
mov dword [ebp - 0x21c], eax
mov dword [ebp - 0x218], esi
mov dword [ebp - 0x214], 0
mov dword [ebp - 0x210], 0
mov dword [ebp - 0x20c], 0
mov dword [ebp - 0x208], 0
mov dword [ebp - 0x204], 0
mov dword [ebp - 0x220], 0
mov dword [ebp - 0x1e4], 0
lea esi, [ebp - 0x2e8]
mov dword [ebp - 0x1fc], esi
mov dword [ebp - 0x1f8], esi
mov dword [ebp - 0x200], 0
mov dword [ebp - 0x1f4], 0
mov dword [ebp - 0x1f0], 0x64
mov dword [ebp - 0x1ec], 0x3b9aca00
mov byte [ebp - 0x1e8], 0
test eax, eax
je 0x61c4c718
shr eax, 3
inc eax
xor edx, edx
call sym._sqlite3MallocZero
mov dword [ebp - 0x220], eax
test eax, eax
je 0x61c4c56c
mov eax, dword [ebx + 0x20]
call sym._pcache1Alloc
mov dword [ebp - 0x1e4], eax
test eax, eax
jne 0x61c4c57b
mov dword [ebp - 0x210], 1
jmp 0x61c4c718
mov eax, dword [0x61c75110]
xor edx, edx
div dword [ebx + 0x20]
lea edx, [eax + 1]
cmp edx, dword [ebp - 0x21c]
ja 0x61c4c59b
mov eax, dword [ebp - 0x220]
call sym._setPageReferenced.clone.51
mov dword [ebp - 0x20c], str.Main_freelist:
mov eax, dword [ebx + 0xc]
mov esi, dword [eax + 0x38]
lea eax, [esi + 0x24]
call sym._sqlite3Get4byte
mov edi, eax
lea eax, [esi + 0x20]
call sym._sqlite3Get4byte
mov dword [esp], edi
mov ecx, eax
mov edx, 1
lea eax, [ebp - 0x228]
call sym._checkList
mov dword [ebp - 0x20c], 0
mov eax, dword [ebx + 4]
and dword [eax + 0x18], 0xefffffff
xor esi, esi
lea edi, [ebp - 0x228]
jmp 0x61c4c63e
mov eax, dword [ebp - 0x300]
mov edx, dword [eax + esi*4]
test edx, edx
je 0x61c4c63d
cmp byte [ebx + 0x11], 0
je 0x61c4c61b
cmp edx, 1
jle 0x61c4c61b
mov dword [esp], 0
mov ecx, 1
mov eax, edi
call sym._checkPtrmap
mov ecx, dword [ebp - 0x300]
mov edx, dword [ecx + esi*4]
mov dword [esp], 0xffffffff
mov dword [esp + 4], 0x7fffffff
lea ecx, [ebp - 0x58]
mov eax, edi
call sym._checkTreePage
inc esi
cmp esi, dword [ebp - 0x320]
jge 0x61c4c64f
cmp dword [ebp - 0x218], 0
jne 0x61c4c5f0
mov eax, dword [ebx + 4]
mov esi, dword [ebp - 0x33c]
mov dword [eax + 0x18], esi
mov esi, 1
lea edi, [ebp - 0x228]
jmp 0x61c4c703
mov eax, esi
shr eax, 3
mov dword [ebp - 0x320], eax
mov ecx, esi
and ecx, 7
mov edx, 1
shl edx, cl
mov dword [ebp - 0x33c], edx
mov eax, dword [ebp - 0x220]
mov ecx, dword [ebp - 0x320]
movzx eax, byte [eax + ecx]
test edx, eax
jne 0x61c4c6c3
mov edx, esi
mov eax, ebx
call sym._ptrmapPageno
cmp eax, esi
jne 0x61c4c6af
cmp byte [ebx + 0x11], 0
jne 0x61c4c6c3
mov dword [esp + 8], esi
mov dword [esp + 4], str.Page__d_is_never_used
mov dword [esp], edi
call sym._checkAppendMsg
mov eax, dword [ebp - 0x220]
mov edx, dword [ebp - 0x320]
movzx eax, byte [eax + edx]
test dword [ebp - 0x33c], eax
je 0x61c4c702
mov edx, esi
mov eax, ebx
call sym._ptrmapPageno
cmp eax, esi
jne 0x61c4c702
cmp byte [ebx + 0x11], 0
je 0x61c4c702
mov dword [esp + 8], esi
mov dword [esp + 4], str.Pointer_map_page__d_is_referenced
mov dword [esp], edi
call sym._checkAppendMsg
inc esi
cmp esi, dword [ebp - 0x21c]
ja 0x61c4c718
cmp dword [ebp - 0x218], 0
jne 0x61c4c66b
mov eax, dword [ebp - 0x1e4]
call sym._pcache1Free
mov eax, dword [ebp - 0x220]
mov dword [esp], eax
call sym.sqlite3.dll_sqlite3_free
cmp dword [ebp - 0x210], 0
je 0x61c4c74b
lea eax, [ebp - 0x200]
call sym._sqlite3StrAccumReset
inc dword [ebp - 0x214]
mov ebx, dword [ebp - 0x214]
test ebx, ebx
jne 0x61c4c760
lea eax, [ebp - 0x200]
call sym._sqlite3StrAccumReset
mov eax, dword [ebp - 0x334]
call sym._sqlite3BtreeLeave
lea eax, [ebp - 0x200]
call sym._sqlite3StrAccumFinish
mov esi, eax
mov edx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbFree
mov eax, ebx
cdq
mov ecx, dword [ebp - 0x330]
sub dword [ecx], ebx
sbb dword [ecx + 4], edx
mov eax, dword [ebp - 0x318]
call sym._sqlite3VdbeMemSetNull
test ebx, ebx
je 0x61c4c7cd
test esi, esi
je 0x61c4e9d8
mov dword [esp + 4], sym.sqlite3.dll_sqlite3_free
mov dword [esp], 1
or ecx, 0xffffffff
mov edx, esi
mov eax, dword [ebp - 0x318]
call sym._sqlite3VdbeMemSetStr
mov edx, dword [ebp - 0x34c]
mov eax, dword [ebp - 0x318]
call sym._sqlite3VdbeChangeEncoding
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
imul ebx, dword [esi + 4], 0x28
add ebx, dword [ebp - 0x324]
mov esi, dword [esi + 8]
test byte [ebx + 8], 0x20
jne 0x61c4c817
mov eax, ebx
call sym._sqlite3VdbeMemSetRowSet
test byte [ebx + 8], 0x20
je 0x61c4e9d8
imul esi, esi, 0x28
mov eax, dword [ebp - 0x324]
mov edx, dword [eax + esi]
mov ecx, dword [eax + esi + 4]
mov eax, dword [ebx]
call sym._sqlite3RowSetInsert
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
imul ebx, dword [edx + 4], 0x28
add ebx, dword [ebp - 0x324]
test byte [ebx + 8], 0x20
je 0x61c4c8d9
mov edi, dword [ebx]
movzx eax, word [edi + 0x1a]
test al, 2
jne 0x61c4c875
test al, 1
jne 0x61c4c870
mov eax, dword [edi + 8]
call sym._rowSetEntrySort
mov dword [edi + 8], eax
or word [edi + 0x1a], 2
mov eax, dword [edi + 8]
test eax, eax
je 0x61c4c8d9
mov ebx, dword [eax]
mov esi, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [edi + 8], eax
test eax, eax
jne 0x61c4eb13
mov edx, dword [edi]
jmp 0x61c4c8a9
mov ecx, dword [edx]
mov dword [ebp - 0x300], ecx
mov eax, dword [edi + 4]
call sym._sqlite3DbFree
mov edx, dword [ebp - 0x300]
test edx, edx
jne 0x61c4c893
mov dword [edi], 0
mov word [edi + 0x18], 0
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
mov dword [edi + 0x14], 0
mov word [edi + 0x1a], 1
jmp 0x61c4eb13
mov eax, ebx
call sym._sqlite3VdbeMemSetNull
jmp case.0x61c46f15.13
mov ebx, dword [ebp - 0x304]
imul eax, dword [ebx + 4], 0x28
add eax, dword [ebp - 0x324]
mov dword [ebp - 0x318], eax
mov esi, ebx
mov ebx, dword [ebx + 0xc]
mov edi, dword [esi + 0x10]
mov dword [ebp - 0x320], edi
test byte [eax + 8], 0x20
jne 0x61c4c924
call sym._sqlite3VdbeMemSetRowSet
mov eax, dword [ebp - 0x318]
test byte [eax + 8], 0x20
je 0x61c4e9d8
imul ebx, ebx, 0x28
add ebx, dword [ebp - 0x324]
mov dword [ebp - 0x330], ebx
cmp dword [ebp - 0x320], 0
je 0x61c4caa5
mov edx, dword [ebx]
mov dword [ebp - 0x334], edx
mov ecx, dword [ebx + 4]
mov dword [ebp - 0x33c], ecx
mov esi, dword [ebp - 0x318]
mov ebx, dword [esi]
mov edi, dword [ebp - 0x320]
cmp edi, dword [ebx + 0x1c]
je 0x61c4ca46
mov edi, dword [ebx + 8]
test edi, edi
je 0x61c4ca3d
lea eax, [ebx + 0x14]
mov dword [ebp - 0x300], eax
test byte [ebx + 0x1a], 1
jne 0x61c4c98b
mov eax, edi
call sym._rowSetEntrySort
mov edi, eax
mov esi, dword [ebx + 0x14]
jmp 0x61c4c9c5
mov eax, dword [esi + 0xc]
test eax, eax
je 0x61c4ca20
lea edx, [esi + 8]
mov dword [ebp - 0x300], edx
lea ecx, [ebp - 0x3c]
lea edx, [ebp - 0x38]
call sym._rowSetTreeToList
mov dword [esi + 0xc], 0
mov edx, edi
mov eax, dword [ebp - 0x38]
call sym._rowSetEntryMerge
mov edi, eax
mov esi, dword [esi + 8]
test esi, esi
jne 0x61c4c990
jmp 0x61c4eb65
mov eax, dword [ebx + 4]
mov edx, 0x3f8
xor ecx, ecx
call sym._sqlite3DbMallocRaw
test eax, eax
je 0x61c4ca00
mov edx, dword [ebx]
mov dword [eax], edx
mov dword [ebx], eax
add eax, 8
mov dword [ebx + 0x10], eax
mov word [ebx + 0x18], 0x3f
dec word [ebx + 0x18]
mov esi, dword [ebx + 0x10]
lea eax, [esi + 0x10]
mov dword [ebx + 0x10], eax
mov ecx, dword [ebp - 0x300]
mov dword [ecx], esi
test esi, esi
je 0x61c4ca2a
mov dword [esi], 0
mov dword [esi + 4], 0
mov dword [esi + 8], 0
mov eax, edi
call sym._rowSetListToTree
mov dword [esi + 0xc], eax
mov dword [ebx + 8], 0
mov dword [ebx + 0xc], 0
or word [ebx + 0x1a], 1
mov esi, dword [ebp - 0x320]
mov dword [ebx + 0x1c], esi
mov edx, dword [ebx + 0x14]
jmp 0x61c4ca8a
mov eax, dword [edx + 0xc]
jmp 0x61c4ca83
mov ecx, dword [eax]
mov ebx, dword [eax + 4]
cmp ebx, dword [ebp - 0x33c]
jg 0x61c4ca80
jl 0x61c4ca67
cmp ecx, dword [ebp - 0x334]
jae 0x61c4ca6c
mov eax, dword [eax + 8]
jmp 0x61c4ca83
cmp ebx, dword [ebp - 0x33c]
jg 0x61c4ca80
cmp ecx, dword [ebp - 0x334]
jbe 0x61c46fe0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x61c4ca50
mov edx, dword [edx + 8]
test edx, edx
jne 0x61c4ca4b
mov dword [ebp - 0x300], 0
cmp dword [ebp - 0x320], 0
js 0x61c4e8ba
mov edi, dword [ebp - 0x330]
mov edx, dword [edi]
mov ecx, dword [edi + 4]
mov ebx, dword [ebp - 0x318]
mov eax, dword [ebx]
call sym._sqlite3RowSetInsert
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov esi, dword [edi + 0x10]
mov eax, edi
mov edi, dword [edi + 0xc]
cmp byte [eax + 3], 0
je 0x61c4cb0c
mov edx, dword [esi + 0x14]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0xb0]
jmp 0x61c4caf4
mov eax, dword [eax + 4]
test eax, eax
je 0x61c4cb0c
cmp dword [eax + 0x1c], edx
jne 0x61c4caf1
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x308]
mov eax, dword [ebx + 0x80]
mov ebx, dword [ebp - 0x30c]
cmp dword [ebx + 0xb8], eax
jl 0x61c4cb45
mov dword [esp + 4], str.too_many_levels_of_trigger_recursion
mov dword [esp], ebx
call sym._sqlite3VdbeError
mov dword [ebp - 0x300], 1
jmp 0x61c4e8ba
imul edi, edi, 0x28
add edi, dword [ebp - 0x324]
test byte [edi + 8], 0x40
jne 0x61c4cc2f
mov edx, dword [esi + 0xc]
mov ecx, dword [esi + 8]
add ecx, edx
mov dword [ebp - 0x300], ecx
imul eax, ecx, 0xa
lea edx, [edx + eax + 0x14]
shl edx, 2
add edx, dword [esi + 0x10]
mov ecx, edx
sar ecx, 0x1f
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbMallocZero
mov ebx, eax
test eax, eax
je 0x61c4e9d8
mov eax, edi
call sym._sqlite3VdbeMemRelease
mov word [edi + 8], 0x40
mov dword [edi], ebx
mov edi, dword [ebp - 0x30c]
mov dword [ebx], edi
mov eax, dword [ebp - 0x300]
mov dword [ebx + 0x3c], eax
mov eax, dword [esi + 0xc]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x338]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [ebx + 0x2c], eax
mov eax, dword [edi + 8]
mov dword [ebx + 0x10], eax
mov eax, dword [edi + 0x1c]
mov dword [ebx + 0x34], eax
mov eax, dword [edi + 0x38]
mov dword [ebx + 0x18], eax
mov eax, dword [edi + 0x24]
mov dword [ebx + 0x28], eax
mov eax, dword [edi + 4]
mov dword [ebx + 8], eax
mov eax, dword [edi + 0x20]
mov dword [ebx + 0x30], eax
mov eax, dword [esi + 0x14]
mov dword [ebx + 0x1c], eax
mov eax, dword [edi + 0xc8]
mov dword [ebx + 0x14], eax
mov eax, dword [edi + 0xc4]
mov dword [ebx + 0x38], eax
imul eax, dword [ebp - 0x300], 0x28
lea edx, [ebx + eax + 0x50]
lea eax, [ebx + 0x50]
jmp 0x61c4cc29
mov word [eax + 8], pe_nt_image_headers32
mov ecx, dword [ebp - 0x308]
mov dword [eax + 0x20], ecx
add eax, 0x28
cmp eax, edx
jne 0x61c4cc17
jmp 0x61c4cc31
mov ebx, dword [edi]
mov edi, dword [ebp - 0x30c]
inc dword [edi + 0xb8]
mov eax, dword [edi + 0xb0]
mov dword [ebx + 4], eax
mov eax, dword [ebp - 0x368]
mov edx, dword [ebp - 0x364]
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], edx
mov eax, dword [edi + 0x5c]
mov dword [ebx + 0x44], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x50]
mov dword [ebx + 0x48], eax
mov dword [edi + 0x5c], 0
mov dword [edi + 0xb0], ebx
lea edx, [ebx + 0x28]
mov dword [ebp - 0x324], edx
mov dword [edi + 8], edx
mov eax, dword [ebx + 0x3c]
mov dword [edi + 0x1c], eax
movzx edx, word [ebx + 0x40]
mov dword [edi + 0x24], edx
inc eax
imul eax, eax, 0x28
add eax, dword [ebp - 0x324]
mov dword [edi + 0x38], eax
mov ecx, dword [esi]
mov dword [ebp - 0x338], ecx
mov dword [edi + 4], ecx
mov ecx, dword [esi + 4]
mov dword [edi + 0x20], ecx
lea edx, [eax + edx*4]
mov dword [edi + 0xc8], edx
mov ecx, dword [esi + 0x10]
mov dword [edi + 0xc4], ecx
mov ebx, dword [ebp - 0x338]
sub ebx, 0x14
mov dword [ebp - 0x304], ebx
xor eax, eax
mov edi, edx
rep stosb byte es:[edi], al
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov edx, dword [esi + 8]
mov edi, dword [ebp - 0x30c]
mov eax, dword [edi + 8]
call sym._out2Prerelease.clone.119
mov ecx, dword [edi + 0xb0]
imul edx, dword [ecx + 0x2c], 0x14
add edx, dword [ecx + 8]
mov edx, dword [edx + 4]
add edx, dword [esi + 4]
imul edx, edx, 0x28
add edx, dword [ecx + 0x10]
mov ecx, 0x1000
call sym._sqlite3VdbeMemShallowCopy
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x308]
test byte [eax + 0x1b], 1
je 0x61c4cd60
mov edx, dword [ebp - 0x304]
mov eax, dword [edx + 8]
cdq
mov ecx, dword [ebp - 0x308]
add dword [ecx + 0x200], eax
adc dword [ecx + 0x204], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
cmp dword [ebx + 4], 0
mov eax, dword [ebx + 8]
je 0x61c4cd91
cdq
mov esi, dword [ebp - 0x308]
add dword [esi + 0x1f8], eax
adc dword [esi + 0x1fc], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
cdq
mov edi, dword [ebp - 0x30c]
add dword [edi + 0x90], eax
adc dword [edi + 0x94], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x304]
cmp dword [eax + 4], 0
je 0x61c4cdf2
mov edx, dword [ebp - 0x308]
mov eax, dword [edx + 0x1fc]
mov dword [ebp - 0x300], 0
or eax, dword [edx + 0x1f8]
jne 0x61c4e8ba
mov eax, dword [edx + 0x204]
or eax, dword [edx + 0x200]
jmp 0x61c4cfb5
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x94]
mov dword [ebp - 0x300], 0
or eax, dword [ecx + 0x90]
jne 0x61c4e8ba
mov ebx, dword [ebp - 0x308]
mov eax, dword [ebx + 0x204]
or eax, dword [ebx + 0x200]
jmp 0x61c4cfb5
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 0xb0]
test eax, eax
jne 0x61c4ce3f
jmp 0x61c4ce55
mov eax, edx
mov edx, dword [eax + 4]
test edx, edx
jne 0x61c4ce3d
mov edi, dword [ebp - 0x304]
imul ebx, dword [edi + 4], 0x28
add ebx, dword [eax + 0x10]
jmp 0x61c4ce65
mov eax, dword [ebp - 0x304]
imul ebx, dword [eax + 4], 0x28
add ebx, dword [ebp - 0x324]
mov eax, ebx
call sym._sqlite3VdbeMemIntegerify
mov edx, dword [ebp - 0x304]
imul esi, dword [edx + 8], 0x28
add esi, dword [ebp - 0x324]
mov eax, esi
call sym._sqlite3VdbeMemIntegerify
mov eax, dword [esi]
mov edx, dword [esi + 4]
cmp dword [ebx + 4], edx
jg 0x61c4e88c
jl 0x61c4ce9b
cmp dword [ebx], eax
jae 0x61c4e88c
mov dword [ebx], eax
mov dword [ebx + 4], edx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
imul eax, dword [ecx + 4], 0x28
add eax, dword [ebp - 0x324]
cmp dword [eax + 4], 0
jg 0x61c46fe0
jl 0x61c4ced4
cmp dword [eax], 0
ja 0x61c46fe0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x324]
mov eax, dword [ebx + 0xc]
cdq
add eax, dword [ecx]
adc edx, dword [ecx + 4]
mov dword [ecx], eax
mov dword [ecx + 4], edx
test edx, edx
js 0x61c46fe0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
imul esi, dword [edi + 4], 0x28
add esi, dword [ebp - 0x324]
mov ecx, dword [esi]
mov ebx, dword [esi + 4]
mov dword [ebp - 0x300], 0
mov eax, ebx
or eax, ecx
je 0x61c4e8ba
mov eax, dword [edi + 0xc]
cdq
add eax, ecx
adc edx, ebx
mov dword [esi], eax
mov dword [esi + 4], edx
jmp 0x61c46fea
mov edx, dword [ebp - 0x304]
imul ecx, dword [edx + 4], 0x28
add ecx, dword [ebp - 0x324]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov dword [ebp - 0x300], 0
mov ecx, edx
or ecx, eax
jmp 0x61c4cfb5
mov ebx, dword [ebp - 0x304]
imul ecx, dword [ebx + 4], 0x28
add ecx, dword [ebp - 0x324]
mov eax, dword [ecx]
mov edx, dword [ecx + 4]
mov ebx, eax
mov esi, edx
add ebx, 1
adc esi, 0
mov dword [ecx], ebx
mov dword [ecx + 4], esi
mov dword [ebp - 0x300], 0
mov esi, edx
or esi, eax
je 0x61c46fea
jmp 0x61c4e8ba
mov edi, dword [ebp - 0x304]
mov bl, byte [edi + 3]
movzx eax, bl
lea edx, [eax*4 + 0x1c]
xor ecx, ecx
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbMallocRaw
test eax, eax
je 0x61c4e9d8
mov dword [eax + 8], 0
mov edx, dword [edi + 0x10]
mov dword [eax + 4], edx
mov edx, edi
sub edx, dword [ebp - 0x338]
sar edx, 2
imul edx, edx, 0xcccccccd
mov dword [eax + 0x10], edx
mov edx, dword [ebp - 0x30c]
mov dword [eax + 0xc], edx
mov byte [eax + 0x1a], bl
mov byte [edi + 1], 0xec
mov dword [edi + 0x10], eax
mov byte [edi], 0x90
mov ecx, dword [ebp - 0x304]
mov ebx, dword [ecx + 0x10]
imul eax, dword [ecx + 0xc], 0x28
add eax, dword [ebp - 0x324]
cmp dword [ebx + 8], eax
je 0x61c4d05e
mov dword [ebx + 8], eax
movzx ecx, byte [ebx + 0x1a]
jmp 0x61c4d058
mov edx, ecx
mov esi, dword [ebp - 0x304]
add edx, dword [esi + 8]
imul edx, edx, 0x28
add edx, dword [ebp - 0x324]
mov dword [ebx + ecx*4 + 0x1c], edx
dec ecx
cmp ecx, 0xffffffff
jne 0x61c4d040
inc dword [eax + 0xc]
mov word [ebp - 0x110], 1
mov edi, dword [ebp - 0x308]
mov dword [ebp - 0xf8], edi
mov dword [ebp - 0x100], 0
lea esi, [ebp - 0x118]
mov dword [ebx], esi
mov byte [ebx + 0x19], 0
mov byte [ebx + 0x18], 0
mov edx, dword [ebx + 4]
lea eax, [ebx + 0x1c]
mov dword [esp + 8], eax
movzx eax, byte [ebx + 0x1a]
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [edx + 0x10]
mov dword [ebp - 0x300], 0
cmp byte [ebx + 0x19], 0
je 0x61c4d0f4
cmp dword [ebx + 0x14], 0
je 0x61c4d0e9
mov dword [esp], esi
call sym.sqlite3.dll_sqlite3_value_text
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61c77578
mov eax, dword [ebp - 0x30c]
mov dword [esp], eax
call sym._sqlite3VdbeError
mov edx, dword [ebx + 0x14]
mov dword [ebp - 0x300], edx
lea eax, [ebp - 0x118]
call sym._sqlite3VdbeMemRelease
cmp byte [ebx + 0x18], 0
je 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov eax, dword [ecx - 0x10]
test eax, eax
je 0x61c4e8ba
imul eax, eax, 0x28
add eax, dword [ebp - 0x324]
mov edx, 1
xor ecx, ecx
call sym._sqlite3VdbeMemSetInt64
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
imul ebx, dword [esi + 4], 0x28
add ebx, dword [ebp - 0x324]
mov edx, dword [esi + 0x10]
mov eax, ebx
call sym._sqlite3VdbeMemFinalize
mov dword [ebp - 0x300], eax
test eax, eax
je 0x61c4e17e
mov dword [esp], ebx
call sym.sqlite3.dll_sqlite3_value_text
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61c77578
mov edi, dword [ebp - 0x30c]
mov dword [esp], edi
call sym._sqlite3VdbeError
jmp 0x61c4e17e
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x5c], 0xffffffff
mov dword [ebp - 0x60], 0xffffffff
mov eax, dword [ebp - 0x304]
mov ecx, dword [eax + 8]
mov edx, dword [eax + 4]
lea eax, [ebp - 0x5c]
mov dword [esp + 4], eax
lea eax, [ebp - 0x60]
mov dword [esp], eax
mov eax, dword [ebp - 0x308]
call sym._sqlite3Checkpoint
mov dword [ebp - 0x300], eax
cmp eax, 5
jne 0x61c4d1cd
mov dword [ebp - 0x64], 1
mov dword [ebp - 0x300], 0
mov edx, dword [ebp - 0x304]
imul esi, dword [edx + 0xc], 0x28
add esi, dword [ebp - 0x324]
xor ebx, ebx
mov edx, dword [ebp + ebx*4 - 0x64]
mov ecx, edx
sar ecx, 0x1f
mov eax, esi
call sym._sqlite3VdbeMemSetInt64
inc ebx
add esi, 0x28
cmp ebx, 3
jne 0x61c4d1df
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 8]
mov ebx, dword [ebp - 0x30c]
mov eax, dword [ebx + 8]
call sym._out2Prerelease.clone.119
mov dword [ebp - 0x318], eax
mov edi, dword [ebp - 0x304]
mov esi, dword [edi + 0xc]
mov eax, dword [edi + 4]
shl eax, 4
mov edx, dword [ebp - 0x308]
add eax, dword [edx + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x320], eax
mov eax, dword [eax + 4]
mov ebx, dword [eax]
movzx edi, byte [ebx + 5]
cmp esi, 0xffffffff
jne 0x61c4d24b
mov esi, edi
cmp byte [ebx + 0x10], 2
ja 0x61c4d267
mov eax, dword [ebx + 0x40]
cmp dword [eax], 0
je 0x61c4d269
cmp dword [ebx + 0x4c], 0
jg 0x61c4d267
jl 0x61c4d269
cmp dword [ebx + 0x48], 0
jbe 0x61c4d269
mov esi, edi
mov eax, 0x61c77244
cmp byte [ebx + 0xf], 0
jne 0x61c4d27a
mov eax, dword [ebx + 0xa8]
cmp esi, 5
jne 0x61c4d29b
call sym._sqlite3Strlen30
test eax, eax
je 0x61c4eb3b
mov eax, ebx
call sym._sqlite3PagerWalSupported
test eax, eax
je 0x61c4eb3b
cmp esi, edi
je 0x61c4d428
cmp edi, 5
sete al
cmp esi, 5
sete byte [ebp - 0x330]
je 0x61c4d2bd
test al, al
je 0x61c4d428
mov edx, dword [ebp - 0x308]
cmp byte [edx + 0x3f], 0
je 0x61c4d2d2
cmp dword [edx + 0x98], 1
jle 0x61c4d30e
mov eax, str.out_of
cmp byte [ebp - 0x330], 0
je 0x61c4d2e5
mov eax, str.into
mov dword [esp + 8], eax
mov dword [esp + 4], str.cannot_change__s_wal_mode_from_within_a_transaction
mov ecx, dword [ebp - 0x30c]
mov dword [esp], ecx
call sym._sqlite3VdbeError
mov dword [ebp - 0x300], 1
jmp 0x61c4e8ba
test al, al
je 0x61c4d3f6
cmp dword [ebx + 0xd0], 0
jne 0x61c4d38a
mov dword [ebp - 0x40], 0
mov edx, 1
mov eax, ebx
call sym._pagerLockDb
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d434
mov eax, dword [ebx]
lea edx, [ebp - 0x40]
mov dword [esp + 0xc], edx
mov dword [esp + 8], 0
mov edx, dword [ebx + 0xd4]
mov dword [esp + 4], edx
mov dword [esp], eax
call dword [eax + 0x20]
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d434
cmp dword [ebp - 0x40], 0
je 0x61c4d38a
mov eax, ebx
call sym._pagerOpenWal
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d434
cmp dword [ebx + 0xd0], 0
je 0x61c4d3f2
mov eax, ebx
call sym._pagerExclusiveLock
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d434
mov ecx, dword [ebx + 0x98]
movzx edx, byte [ebx + 9]
mov eax, dword [ebx + 0xd0]
mov dword [ebp - 0x300], eax
mov eax, dword [ebx + 0xc8]
mov dword [esp], eax
mov eax, dword [ebp - 0x300]
call sym._sqlite3WalClose
mov dword [ebp - 0x300], eax
mov dword [ebx + 0xd0], 0
mov eax, ebx
call sym._pagerFixMaplimit
cmp dword [ebp - 0x300], 0
jne 0x61c4d434
mov edx, esi
jmp 0x61c4d400
cmp edi, 4
jne 0x61c4d407
mov edx, 2
mov eax, ebx
call sym._sqlite3PagerSetJournalMode
cmp byte [ebp - 0x330], 1
sbb edx, edx
add edx, 2
mov eax, dword [ebp - 0x320]
call sym._sqlite3BtreeSetVersion
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d434
mov dword [ebp - 0x300], 0
jmp 0x61c4d436
mov esi, edi
mov edx, esi
mov eax, ebx
call sym._sqlite3PagerSetJournalMode
mov edx, eax
mov ecx, dword [ebp - 0x318]
mov word [ecx + 8], 0xa02
xor eax, eax
cmp edx, 6
je 0x61c4d45b
mov eax, dword [edx*4 + 0x61c815e8]
mov ebx, dword [ebp - 0x318]
mov dword [ebx + 0x10], eax
call sym._sqlite3Strlen30
mov dword [ebx + 0xc], eax
mov byte [ebx + 0xa], 1
mov edx, dword [ebp - 0x34c]
mov eax, ebx
call sym._sqlite3VdbeChangeEncoding
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x30c]
add esi, 0x2c
mov edi, dword [ebp - 0x308]
cmp byte [edi + 0x3f], 0
jne 0x61c4d4b4
mov ecx, str.cannot_VACUUM_from_within_a_transaction
mov edx, edi
mov eax, esi
call sym._sqlite3SetString
mov dword [ebp - 0x300], 1
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x308]
cmp dword [eax + 0x94], 1
jle 0x61c4d4e0
mov ecx, str.cannot_VACUUM___SQL_statements_in_progress
mov edx, eax
mov eax, esi
call sym._sqlite3SetString
mov dword [ebp - 0x300], 1
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x308]
mov edx, dword [edx + 0x18]
mov dword [ebp - 0x334], edx
mov ecx, dword [ebp - 0x308]
mov ecx, dword [ecx + 0x50]
mov dword [ebp - 0x33c], ecx
mov ebx, dword [ebp - 0x308]
mov ebx, dword [ebx + 0x54]
mov dword [ebp - 0x348], ebx
mov edi, dword [ebp - 0x308]
mov edi, dword [edi + 0xb0]
mov dword [ebp - 0x350], edi
mov eax, edx
or eax, 0x202800
and eax, 0xfff5ffff
mov edx, dword [ebp - 0x308]
mov dword [edx + 0x18], eax
mov dword [edx + 0xb0], 0
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 4]
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov al, byte [eax + 0xf]
mov byte [ebp - 0x358], al
mov edi, dword [edx + 0x14]
mov ecx, str.ATTACH__AS_vacuum_db_
cmp byte [edx + 0x40], 2
jne 0x61c4d565
mov ecx, str.ATTACH_:memory:_AS_vacuum_db_
mov edx, esi
mov eax, dword [ebp - 0x308]
call sym._execSql
mov dword [ebp - 0x300], eax
mov ecx, dword [ebp - 0x308]
mov eax, dword [ecx + 0x14]
mov dword [ebp - 0x320], 0
cmp eax, edi
jle 0x61c4d5a0
lea edi, [eax - 1]
shl edi, 4
mov edx, dword [ecx + 0x10]
add edi, edx
mov dword [ebp - 0x320], edi
cmp dword [ebp - 0x300], 0
jne 0x61c4d9aa
dec eax
shl eax, 4
mov ecx, dword [ebp - 0x308]
add eax, dword [ecx + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x318], eax
call sym._sqlite3BtreeCommit
mov eax, ebx
call sym._sqlite3BtreeEnter
mov eax, dword [ebx + 4]
mov edi, dword [eax + 0x20]
mov dword [ebp - 0x330], edi
mov edi, dword [eax + 0x24]
mov eax, ebx
call sym._sqlite3BtreeLeave
mov ecx, str.PRAGMA_vacuum_db.synchronousOFF
mov edx, esi
mov eax, dword [ebp - 0x308]
call sym._execSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov ecx, str.BEGIN_
mov edx, esi
mov eax, dword [ebp - 0x308]
call sym._execSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov edx, 2
mov eax, ebx
call sym._sqlite3BtreeBeginTrans
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov edx, dword [ebx + 4]
mov eax, dword [edx]
cmp byte [eax + 5], 5
jne 0x61c4d657
mov eax, dword [ebp - 0x308]
mov dword [eax + 0x48], 0
mov ecx, dword [ebp - 0x330]
sub ecx, edi
mov dword [ebp - 0x330], ecx
mov edx, dword [edx + 0x20]
mov dword [esp], 0
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeSetPageSize
mov dword [ebp - 0x300], 7
test eax, eax
jne 0x61c4d9aa
cmp byte [ebp - 0x358], 0
jne 0x61c4d6be
mov edi, dword [ebp - 0x308]
mov edx, dword [edi + 0x48]
mov dword [esp], 0
mov ecx, dword [ebp - 0x330]
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeSetPageSize
test eax, eax
jne 0x61c4d9aa
mov dword [ebp - 0x300], 7
mov eax, dword [ebp - 0x308]
cmp byte [eax + 0x41], 0
jne 0x61c4d9aa
mov al, byte [eax + 0x43]
test al, al
js 0x61c4d6e4
movsx eax, al
jmp 0x61c4d6eb
mov eax, ebx
call sym._sqlite3BtreeGetAutoVacuum
mov edx, eax
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeSetAutoVacuum
mov ecx, str.SELECT_CREATE_TABLE_vacuum_db.__substr_sql_14____FROM_sqlite_master_WHERE_typetable_AND_name_sqlite_sequence___AND_coalesce_rootpage_1__0
mov edx, esi
mov eax, dword [ebp - 0x308]
call sym._execExecSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov ecx, str.SELECT_CREATE_INDEX_vacuum_db.__substr_sql_14___FROM_sqlite_master_WHERE_sql_LIKE_CREATE_INDEX__
mov edx, esi
mov eax, dword [ebp - 0x308]
call sym._execExecSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov ecx, str.SELECT_CREATE_UNIQUE_INDEX_vacuum_db.__substr_sql_21____FROM_sqlite_master_WHERE_sql_LIKE_CREATE_UNIQUE_INDEX__
mov edx, esi
mov eax, dword [ebp - 0x308]
call sym._execExecSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov ecx, dword [ebp - 0x308]
or dword [ecx + 0x18], 0x8000000
mov ecx, str.SELECT_INSERT_INTO_vacuum_db.__quote_name____SELECT__FROM_main.__quote_name____FROM_main.sqlite_master_WHERE_type__table_AND_name_sqlite_sequence___AND_coalesce_rootpage_1__0
mov edx, esi
mov eax, dword [ebp - 0x308]
call sym._execExecSql
mov dword [ebp - 0x300], eax
mov edi, dword [ebp - 0x308]
and dword [edi + 0x18], 0xf7ffffff
test eax, eax
jne 0x61c4d9aa
mov ecx, str.SELECT_DELETE_FROM_vacuum_db.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence
mov edx, esi
mov eax, edi
call sym._execExecSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov ecx, str.SELECT_INSERT_INTO_vacuum_db.__quote_name____SELECT__FROM_main.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence_
mov edx, esi
mov eax, edi
call sym._execExecSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov ecx, str.INSERT_INTO_vacuum_db.sqlite_master___SELECT_type__name__tbl_name__rootpage__sql____FROM_main.sqlite_master___WHERE_typeview_OR_typetrigger______OR__typetable_AND_rootpage0_
mov edx, esi
mov eax, edi
call sym._execSql
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
xor esi, esi
movzx edi, byte [esi + 0x61c82734]
lea ecx, [ebp - 0x40]
mov edx, edi
mov eax, ebx
call sym._sqlite3BtreeGetMeta
movzx ecx, byte [esi + 0x61c82735]
add ecx, dword [ebp - 0x40]
mov edx, edi
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeUpdateMeta
test eax, eax
jne 0x61c4d9a4
add esi, 2
cmp esi, 0xa
jne 0x61c4d7e8
mov eax, ebx
call sym._sqlite3BtreeEnter
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeEnter
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov ecx, dword [eax + 0x3c]
mov eax, dword [ecx]
mov dword [ebp - 0x390], eax
test eax, eax
je 0x61c4d8bc
mov esi, dword [ebp - 0x318]
mov edx, dword [esi + 4]
mov eax, dword [edx + 0x20]
mov dword [ebp - 0x358], eax
mov edi, eax
sar edi, 0x1f
mov dword [ebp - 0x354], edi
mov esi, dword [edx + 0x2c]
xor edi, edi
mov dword [ebp - 0x300], esi
mov dword [ebp - 0x2fc], edi
mov edi, dword [ebp - 0x354]
imul edi, esi
mul dword [ebp - 0x300]
lea edx, [edi + edx]
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], edx
lea eax, [ebp - 0x58]
mov dword [esp + 8], eax
mov dword [esp + 4], 0xb
mov dword [esp], ecx
mov edi, dword [ebp - 0x390]
call dword [edi + 0x28]
mov dword [ebp - 0x300], eax
cmp eax, 0xc
je 0x61c4d8bc
test eax, eax
jne 0x61c4d940
mov ecx, 0xc
xor eax, eax
mov edi, dword [ebp - 0x3cc]
rep stosd dword es:[edi], eax
mov edx, dword [ebp - 0x318]
mov eax, dword [edx]
mov dword [ebp - 0x2d4], eax
mov dword [ebp - 0x2d0], edx
mov dword [ebp - 0x2e4], ebx
mov dword [ebp - 0x2d8], 1
mov dword [esp + 4], 0x7fffffff
lea ecx, [ebp - 0x2e8]
mov dword [esp], ecx
call sym.sqlite3.dll_sqlite3_backup_step
lea esi, [ebp - 0x2e8]
mov dword [esp], esi
call sym.sqlite3.dll_sqlite3_backup_finish
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d927
mov eax, dword [ebx + 4]
and word [eax + 0x16], 0xfffd
jmp 0x61c4d940
mov eax, dword [ebp - 0x2e4]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test dword [eax + 0xc], 0xff0000ff
jne 0x61c4d940
call sym._pager_reset
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeLeave
mov eax, ebx
call sym._sqlite3BtreeLeave
cmp dword [ebp - 0x300], 0
jne 0x61c4d9aa
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeCommit
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4d9aa
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeGetAutoVacuum
mov edx, eax
mov eax, ebx
call sym._sqlite3BtreeSetAutoVacuum
mov edi, dword [ebp - 0x318]
mov eax, dword [edi + 4]
mov edx, dword [eax + 0x20]
mov dword [esp], 1
mov ecx, dword [ebp - 0x330]
mov eax, ebx
call sym._sqlite3BtreeSetPageSize
mov dword [ebp - 0x300], eax
mov edx, dword [ebp - 0x334]
mov eax, dword [ebp - 0x308]
mov dword [eax + 0x18], edx
mov ecx, dword [ebp - 0x33c]
mov dword [eax + 0x50], ecx
mov esi, dword [ebp - 0x348]
mov dword [eax + 0x54], esi
mov edi, dword [ebp - 0x350]
mov dword [eax + 0xb0], edi
mov dword [esp], 1
or ecx, 0xffffffff
or edx, 0xffffffff
mov eax, ebx
call sym._sqlite3BtreeSetPageSize
mov eax, dword [ebp - 0x308]
mov byte [eax + 0x3f], 1
cmp dword [ebp - 0x320], 0
je 0x61c4da20
mov edx, dword [ebp - 0x320]
mov eax, dword [edx + 4]
call sym._sqlite3BtreeClose
mov ecx, dword [ebp - 0x320]
mov dword [ecx + 4], 0
mov dword [ecx + 0xc], 0
mov eax, dword [ebp - 0x308]
call sym._sqlite3ResetAllSchemasOfConnection
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov eax, dword [ebx + 4]
shl eax, 4
mov esi, dword [ebp - 0x308]
add eax, dword [esi + 0x10]
mov eax, dword [eax + 4]
mov dword [ebp - 0x318], eax
mov ebx, dword [eax + 4]
call sym._sqlite3BtreeEnter
mov dword [ebp - 0x300], 0x65
cmp byte [ebx + 0x11], 0
je 0x61c4db26
mov edi, dword [ebx + 0x2c]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
add eax, 0x24
call sym._sqlite3Get4byte
mov esi, eax
mov ecx, eax
mov edx, edi
mov eax, ebx
call sym._finalDbSize
mov dword [ebp - 0x320], eax
cmp edi, eax
jae 0x61c4dac2
mov dword [esp + 0xc], 0x61c77104
mov dword [esp + 8], 0xe00b
mov dword [esp + 4], 0x61c77f56
mov dword [esp], 0xb
call sym.sqlite3.dll_sqlite3_log
mov dword [ebp - 0x300], 0xb
jmp 0x61c4db26
test esi, esi
je 0x61c4db26
mov eax, dword [ebx + 8]
xor ecx, ecx
xor edx, edx
call sym._saveAllCursors.clone.173
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4db26
mov eax, dword [ebx + 8]
call sym._invalidateAllOverflowCache.clone.39
mov dword [esp], 0
mov ecx, edi
mov edx, dword [ebp - 0x320]
mov eax, ebx
call sym._incrVacuumStep
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4db26
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x48]
call sym._sqlite3PagerWrite
mov dword [ebp - 0x300], eax
mov edx, dword [ebx + 0x2c]
mov eax, dword [ebx + 0xc]
mov eax, dword [eax + 0x38]
add eax, 0x1c
call sym._sqlite3Put4byte
mov eax, dword [ebp - 0x318]
call sym._sqlite3BtreeLeave
cmp dword [ebp - 0x300], 0x65
jne 0x61c4e8ba
jmp 0x61c46fe0
mov edi, dword [ebp - 0x304]
cmp dword [edi + 4], 0
jne 0x61c4db69
mov eax, dword [ebp - 0x308]
call sym._sqlite3ExpirePreparedStatements
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov eax, dword [ebp - 0x30c]
or byte [eax + 0x58], 8
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
mov al, byte [edx + 0xc]
test al, al
jne 0x61c4dba9
mov dword [ebp - 0x300], 0
mov ecx, dword [ebp - 0x308]
test byte [ecx + 0x19], 0x40
jne 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edi, dword [ebx + 8]
mov edx, dword [ebx + 4]
shl edx, 4
mov esi, dword [ebp - 0x308]
add edx, dword [esi + 0x10]
mov ebx, dword [edx + 4]
mov dword [ebp - 0x300], 0
cmp byte [ebx + 9], 0
je 0x61c4dc48
inc eax
mov byte [ebp - 0x318], al
mov eax, ebx
call sym._sqlite3BtreeEnter
movzx ecx, byte [ebp - 0x318]
mov edx, edi
mov eax, ebx
call sym._querySharedCacheTableLock
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4dc41
mov esi, dword [ebx + 4]
mov eax, dword [esi + 0x48]
jmp 0x61c4dc10
cmp dword [eax + 4], edi
jne 0x61c4dc0d
cmp dword [eax], ebx
je 0x61c4dc27
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x61c4dc04
jmp 0x61c4eb75
mov dword [eax + 4], edi
mov dword [eax], ebx
mov edx, dword [esi + 0x48]
mov dword [eax + 0xc], edx
mov dword [esi + 0x48], eax
mov dl, byte [ebp - 0x318]
cmp dl, byte [eax + 8]
jbe 0x61c4dc41
mov byte [eax + 8], dl
jmp 0x61c4dc41
mov dword [ebp - 0x300], 7
mov eax, ebx
call sym._sqlite3BtreeLeave
cmp byte [ebp - 0x300], 6
jne 0x61c4e8ba
mov ecx, dword [ebp - 0x304]
mov eax, dword [ecx + 0x10]
mov dword [esp + 8], eax
mov dword [esp + 4], str.database_table_is_locked:__s
mov ebx, dword [ebp - 0x30c]
mov dword [esp], ebx
call sym._sqlite3VdbeError
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x304]
mov ebx, dword [esi + 0x10]
mov edi, dword [ebp - 0x308]
mov ecx, dword [edi + 0x130]
test ecx, ecx
jle 0x61c4dca3
cmp dword [edi + 0x148], 0
je 0x61c4dd29
mov dword [ebp - 0x300], 0
test ebx, ebx
je 0x61c4e8ba
mov eax, dword [ebx + 8]
mov esi, dword [eax]
cmp dword [esi + 0x38], 0
je 0x61c4dd3b
xor eax, eax
mov edi, dword [ebp - 0x308]
jmp 0x61c4dcda
mov edx, dword [edi + 0x148]
cmp dword [edx + eax*4], ebx
je 0x61c4eb8e
inc eax
cmp eax, ecx
jl 0x61c4dcca
mov eax, dword [ebp - 0x308]
call sym._growVTrans
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4dd3b
mov eax, dword [ebx + 8]
mov dword [esp], eax
call dword [esi + 0x38]
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4dd3b
mov eax, dword [ebp - 0x308]
mov edx, dword [eax + 0x130]
mov ecx, eax
mov eax, dword [eax + 0x148]
mov dword [eax + edx*4], ebx
inc edx
mov dword [ecx + 0x130], edx
inc dword [ebx + 0xc]
jmp 0x61c4dd3b
mov dword [ebp - 0x300], 6
test ebx, ebx
je 0x61c4e8ba
mov edx, dword [ebx + 8]
add edx, 8
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
jmp 0x61c4e8ba
lea ebx, [ebp - 0x140]
mov ecx, 0xa
xor eax, eax
mov edi, ebx
rep stosd dword es:[edi], eax
mov esi, dword [ebp - 0x308]
mov dword [ebp - 0x120], esi
mov edi, dword [ebp - 0x304]
imul edx, dword [edi + 8], 0x28
add edx, dword [ebp - 0x324]
mov eax, ebx
call sym._sqlite3VdbeMemCopy
mov dword [ebp - 0x300], eax
mov dword [esp], ebx
call sym.sqlite3.dll_sqlite3_value_text
test eax, eax
je 0x61c4de80
mov edx, dword [edi + 4]
shl edx, 4
add edx, dword [esi + 0x10]
mov ecx, dword [edx]
mov edx, eax
mov eax, esi
call sym._sqlite3FindTable
mov ebx, eax
mov eax, dword [eax + 0x34]
mov esi, dword [eax]
mov eax, dword [ebp - 0x308]
add eax, 0x134
mov edx, esi
call sym._sqlite3HashFind
test eax, eax
jne 0x61c4ddfe
mov dword [esp + 8], esi
mov dword [esp + 4], str.no_such_module:__s
mov eax, dword [ebp - 0x308]
mov dword [esp], eax
call sym._sqlite3MPrintf
mov edx, dword [ebp - 0x30c]
mov dword [edx + 0x2c], eax
mov dword [ebp - 0x300], 1
jmp 0x61c4de80
mov edx, dword [ebp - 0x30c]
add edx, 0x2c
mov dword [esp + 4], edx
mov edx, dword [eax]
mov edx, dword [edx + 4]
mov dword [esp], edx
mov ecx, eax
mov edx, ebx
mov eax, dword [ebp - 0x308]
call sym._vtabCallConstructor
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4de80
mov edx, dword [ebx + 0x38]
mov eax, dword [ebp - 0x308]
call sym._sqlite3GetVTable.clone.81
test eax, eax
je 0x61c4de80
mov eax, dword [ebp - 0x308]
call sym._growVTrans
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4de80
mov edx, dword [ebx + 0x38]
mov eax, dword [ebp - 0x308]
call sym._sqlite3GetVTable.clone.81
mov ebx, dword [ebp - 0x308]
mov ecx, dword [ebx + 0x130]
mov edx, dword [ebx + 0x148]
mov dword [edx + ecx*4], eax
inc ecx
mov dword [ebx + 0x130], ecx
inc dword [eax + 0xc]
lea eax, [ebp - 0x140]
call sym._sqlite3VdbeMemRelease
jmp 0x61c4e8ba
mov esi, dword [ebp - 0x308]
inc dword [esi + 0xa4]
mov edi, dword [ebp - 0x304]
mov eax, dword [edi + 4]
shl eax, 4
add eax, dword [esi + 0x10]
mov edx, dword [edi + 0x10]
mov ecx, dword [eax]
mov eax, esi
call sym._sqlite3FindTable
mov esi, eax
mov dword [ebp - 0x300], 0
test eax, eax
je 0x61c4df5a
mov eax, dword [eax + 0x38]
test eax, eax
je 0x61c4df5a
mov ebx, eax
mov edx, dword [ebx + 8]
cmp dword [edx + 4], 0
jg 0x61c4df50
mov ebx, dword [ebx + 0x18]
test ebx, ebx
jne 0x61c4ded8
mov dword [esi + 0x38], 0
jmp 0x61c4def3
mov eax, ecx
mov edx, dword [eax]
mov ecx, dword [eax + 0x18]
cmp edx, dword [ebp - 0x308]
jne 0x61c4df0e
mov dword [esi + 0x38], eax
mov dword [eax + 0x18], 0
mov ebx, eax
jmp 0x61c4df1d
mov edi, dword [edx + 0x14c]
mov dword [eax + 0x18], edi
mov dword [edx + 0x14c], eax
test ecx, ecx
jne 0x61c4def1
mov eax, dword [ebx + 4]
mov eax, dword [eax]
mov edx, dword [ebx + 8]
mov dword [esp], edx
call dword [eax + 0x14]
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4df5a
mov dword [ebx + 8], 0
mov dword [esi + 0x38], 0
mov eax, ebx
call sym._sqlite3VtabUnlock
jmp 0x61c4df5a
mov dword [ebp - 0x300], 6
mov eax, dword [ebp - 0x308]
dec dword [eax + 0xa4]
jmp 0x61c4e8ba
mov dword [ebp - 0x1c], 0
mov edx, dword [ebp - 0x304]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
test ebx, ebx
je 0x61c4e898
mov edi, dword [ebx]
test edi, edi
je 0x61c4e8a4
lea eax, [ebp - 0x1c]
mov dword [esp + 4], eax
mov dword [esp], ebx
call dword [edi + 0x18]
mov dword [ebp - 0x300], eax
lea edx, [ebx + 8]
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
cmp dword [ebp - 0x300], 0
jne 0x61c4e8ba
mov eax, dword [ebp - 0x1c]
mov dword [eax], ebx
mov ecx, dword [ebp - 0x304]
mov edx, dword [ecx + 4]
mov dword [esp + 4], 0
mov dword [esp], 0xffffffff
xor ecx, ecx
mov eax, dword [ebp - 0x30c]
call sym._allocateCursor
test eax, eax
mov edx, dword [ebp - 0x1c]
je 0x61c4dffa
mov dword [eax + 0x20], edx
inc dword [ebx + 4]
jmp 0x61c4e8ba
mov dword [esp], edx
call dword [edi + 0x1c]
jmp 0x61c4e9d8
mov ebx, dword [ebp - 0x304]
imul ecx, dword [ebx + 0xc], 0x28
add ecx, dword [ebp - 0x324]
mov edx, dword [ebx + 4]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 0x38]
mov eax, dword [eax + edx*4]
mov dword [ebp - 0x318], eax
mov ebx, dword [eax + 0x20]
mov edi, dword [ebx]
mov eax, dword [edi]
mov dword [ebp - 0x320], eax
mov esi, dword [ecx + 0x28]
mov edx, dword [ecx]
mov dword [ebp - 0x300], edx
mov eax, dword [ebp - 0x30c]
mov edx, dword [eax + 0xc]
add ecx, 0x50
xor eax, eax
jmp 0x61c4e059
mov dword [edx + eax*4], ecx
inc eax
add ecx, 0x28
cmp eax, esi
jl 0x61c4e052
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], esi
mov edx, dword [ebp - 0x304]
mov eax, dword [edx + 0x10]
mov dword [esp + 8], eax
mov ecx, dword [ebp - 0x300]
mov dword [esp + 4], ecx
mov dword [esp], ebx
mov esi, dword [ebp - 0x320]
call dword [esi + 0x20]
mov dword [ebp - 0x300], eax
lea edx, [edi + 8]
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
xor eax, eax
cmp dword [ebp - 0x300], 0
jne 0x61c4e0ad
mov dword [esp], ebx
call dword [esi + 0x28]
mov edi, dword [ebp - 0x318]
mov byte [edi + 0x19], 0
test eax, eax
jmp 0x61c48598
mov eax, dword [ebp - 0x304]
mov edx, dword [eax + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov eax, dword [eax + edx*4]
mov esi, dword [ebp - 0x304]
imul ebx, dword [esi + 0xc], 0x28
add ebx, dword [ebp - 0x324]
cmp byte [eax + 0x19], 0
je 0x61c4e0ff
mov eax, ebx
call sym._sqlite3VdbeMemSetNull
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov esi, dword [eax + 0x20]
mov edi, dword [esi]
mov dword [ebp - 0x318], edi
mov eax, dword [edi]
mov dword [ebp - 0x300], eax
lea edx, [ebp - 0xc4]
mov ecx, 8
xor eax, eax
mov edi, edx
rep stosd dword es:[edi], eax
mov dword [ebp - 0xc4], ebx
mov eax, dword [ebx + 8]
and ax, 0xbe00
or eax, 1
mov word [ebx + 8], ax
mov ecx, dword [ebp - 0x304]
mov eax, dword [ecx + 8]
mov dword [esp + 8], eax
mov dword [esp + 4], edx
mov dword [esp], esi
mov esi, dword [ebp - 0x300]
call dword [esi + 0x2c]
mov dword [ebp - 0x300], eax
mov edx, dword [ebp - 0x318]
add edx, 8
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
mov eax, dword [ebp - 0xb0]
test eax, eax
je 0x61c4e17e
mov dword [ebp - 0x300], eax
mov edx, dword [ebp - 0x34c]
mov eax, ebx
call sym._sqlite3VdbeChangeEncoding
mov eax, ebx
call sym._sqlite3VdbeMemTooBig
test eax, eax
je 0x61c4e8ba
jmp 0x61c4e99b
mov edi, dword [ebp - 0x304]
mov edx, dword [edi + 4]
mov ecx, dword [ebp - 0x30c]
mov eax, dword [ecx + 0x38]
mov ebx, dword [eax + edx*4]
mov dword [ebp - 0x300], 0
cmp byte [ebx + 0x19], 0
jne 0x61c4e8ba
mov eax, dword [ebx + 0x20]
mov esi, dword [eax]
mov edi, dword [esi]
mov dword [esp], eax
call dword [edi + 0x24]
mov dword [ebp - 0x300], eax
lea edx, [esi + 8]
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
cmp dword [ebp - 0x300], 0
jne 0x61c46f26
mov eax, dword [ebx + 0x20]
mov dword [esp], eax
call dword [edi + 0x28]
test eax, eax
jne 0x61c46f3f
jmp 0x61c46f26
mov ebx, dword [ebp - 0x304]
mov eax, dword [ebx + 0x10]
mov ebx, dword [eax + 8]
mov edi, dword [ebp - 0x304]
imul esi, dword [edi + 4], 0x28
add esi, dword [ebp - 0x324]
mov edx, 1
mov eax, esi
call sym._sqlite3VdbeChangeEncoding
mov dword [ebp - 0x300], eax
test eax, eax
jne 0x61c4e8ba
mov eax, dword [ebx]
mov edx, dword [esi + 0x10]
mov dword [esp + 4], edx
mov dword [esp], ebx
call dword [eax + 0x4c]
mov dword [ebp - 0x300], eax
lea edx, [ebx + 8]
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
mov eax, dword [ebp - 0x30c]
and byte [eax + 0x58], 0xf7
jmp 0x61c4e8ba
mov edx, dword [ebp - 0x304]
mov eax, dword [edx + 0x10]
mov ebx, dword [eax + 8]
mov dword [ebp - 0x300], 6
test ebx, ebx
je 0x61c4e8ba
mov eax, dword [ebx]
test eax, eax
je 0x61c4e8ba
mov edi, dword [edx + 8]
mov dword [ebp - 0x300], 0
cmp dword [eax + 0x34], 0
je 0x61c4e8ba
mov ecx, dword [ebp - 0x308]
mov cl, byte [ecx + 0x45]
mov byte [ebp - 0x318], cl
mov esi, dword [ebp - 0x30c]
mov ecx, dword [esi + 0xc]
imul edx, dword [edx + 0xc], 0x28
mov esi, dword [ebp - 0x324]
add esi, edx
xor edx, edx
jmp 0x61c4e2e2
mov dword [ecx + edx*4], esi
add esi, 0x28
inc edx
cmp edx, edi
jl 0x61c4e2db
mov esi, dword [ebp - 0x304]
mov dl, byte [esi + 3]
mov esi, dword [ebp - 0x308]
mov byte [esi + 0x45], dl
lea edx, [ebp - 0x50]
mov dword [esp + 0xc], edx
mov dword [esp + 8], ecx
mov dword [esp + 4], edi
mov dword [esp], ebx
call dword [eax + 0x34]
mov dword [ebp - 0x300], eax
mov al, byte [ebp - 0x318]
mov byte [esi + 0x45], al
lea edx, [ebx + 8]
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VtabImportErrmsg.clone.124
cmp dword [ebp - 0x300], 0
jne 0x61c4e35d
mov edx, dword [ebp - 0x304]
cmp dword [edx + 4], 0
je 0x61c4e35d
mov ecx, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x368], ecx
mov dword [ebp - 0x364], ebx
mov esi, dword [ebp - 0x308]
mov dword [esi + 0x20], ecx
mov dword [esi + 0x24], ebx
cmp byte [ebp - 0x300], 0x13
jne 0x61c4e394
mov edi, dword [ebp - 0x304]
mov eax, dword [edi + 0x10]
cmp byte [eax + 0x10], 0
je 0x61c4e394
mov al, byte [edi + 3]
cmp al, 4
je 0x61c4e8b0
cmp al, 5
jne 0x61c4e386
mov al, 2
mov edx, dword [ebp - 0x30c]
mov byte [edx + 0x56], al
jmp 0x61c4e8ba
mov ecx, dword [ebp - 0x30c]
inc dword [ecx + 0x5c]
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 8]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 8]
call sym._out2Prerelease.clone.119
mov edx, dword [ebx + 4]
shl edx, 4
mov edi, dword [ebp - 0x308]
add edx, dword [edi + 0x10]
mov edx, dword [edx + 4]
mov edx, dword [edx + 4]
mov ecx, dword [edx + 0x2c]
mov dword [eax], ecx
mov dword [eax + 4], 0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x304]
mov edx, dword [ebx + 8]
mov esi, dword [ebp - 0x30c]
mov eax, dword [esi + 8]
call sym._out2Prerelease.clone.119
mov edi, eax
mov eax, dword [ebx + 4]
shl eax, 4
mov edx, dword [ebp - 0x308]
add eax, dword [edx + 0x10]
mov esi, dword [eax + 4]
mov eax, dword [ebx + 0xc]
xor ebx, ebx
test eax, eax
je 0x61c4e42b
mov edx, dword [esi + 4]
mov edx, dword [edx + 0x2c]
mov ebx, eax
cmp eax, edx
jae 0x61c4e42b
mov ebx, edx
mov eax, esi
call sym._sqlite3BtreeEnter
mov eax, dword [esi + 4]
mov eax, dword [eax]
test ebx, ebx
jle 0x61c4e441
mov dword [eax + 0x9c], ebx
mov ebx, dword [eax + 0x9c]
mov eax, esi
call sym._sqlite3BtreeLeave
mov dword [edi], ebx
mov ecx, ebx
sar ecx, 0x1f
mov dword [edi + 4], ecx
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov ebx, dword [ebp - 0x308]
cmp dword [ebx + 0xb0], 0
je 0x61c4e821
mov esi, dword [ebp - 0x30c]
test byte [esi + 0x59], 2
jne 0x61c4e821
mov edi, dword [ebp - 0x304]
mov ebx, dword [edi + 0x10]
test ebx, ebx
jne 0x61c4e4a5
mov ebx, dword [esi + 0xa8]
test ebx, ebx
je 0x61c4e821
mov dword [ebp - 0x40], 0
mov eax, dword [ebp - 0x30c]
mov eax, dword [eax]
mov dword [ebp - 0x300], eax
mov edx, eax
mov eax, dword [eax + 0x58]
lea ecx, [ebp - 0x2e8]
mov dword [ebp - 0xa0], ecx
mov dword [ebp - 0x9c], ecx
mov dword [ebp - 0xa4], edx
mov dword [ebp - 0x98], 0
mov dword [ebp - 0x94], 0x64
mov dword [ebp - 0x90], eax
mov byte [ebp - 0x8c], 0
cmp dword [edx + 0xa0], 1
jg 0x61c4e537
jmp 0x61c4e543
mov ebx, esi
mov al, byte [ebx]
inc ebx
cmp al, 0xa
je 0x61c4e511
cmp byte [ebx], 0
jne 0x61c4e505
mov ecx, 3
mov edx, 0x61c797a2
lea eax, [ebp - 0xa4]
call sym._sqlite3StrAccumAppend
mov ecx, ebx
sub ecx, esi
mov edx, esi
lea eax, [ebp - 0xa4]
call sym._sqlite3StrAccumAppend
mov esi, ebx
cmp byte [ebx], 0
jne 0x61c4e503
jmp 0x61c4e7ee
mov edi, dword [ebp - 0x30c]
cmp word [edi + 0x44], 0
je 0x61c4e571
mov dword [ebp - 0x318], ebx
mov dword [ebp - 0x330], 1
lea eax, [ebp - 0x1e0]
mov dword [ebp - 0x3d0], eax
jmp 0x61c4e7da
mov eax, ebx
call sym._sqlite3Strlen30
mov ecx, eax
mov edx, ebx
lea eax, [ebp - 0xa4]
call sym._sqlite3StrAccumAppend
jmp 0x61c4e7ee
lea edx, [ebp - 0x44]
mov eax, esi
call sym._sqlite3GetToken
mov ebx, eax
cmp dword [ebp - 0x44], 0x87
je 0x61c4e5ac
add edi, eax
add esi, eax
cmp byte [esi], 0
jne 0x61c4e58c
xor ebx, ebx
mov ecx, edi
mov edx, dword [ebp - 0x318]
lea eax, [ebp - 0xa4]
call sym._sqlite3StrAccumAppend
test ebx, ebx
je 0x61c4e7ee
mov esi, dword [ebp - 0x318]
add esi, edi
cmp byte [esi], 0x3f
jne 0x61c4e5f1
cmp ebx, 1
jle 0x61c4e5e6
lea eax, [esi + 1]
lea edx, [ebp - 0x40]
call sym._sqlite3GetInt32
jmp 0x61c4e603
mov edx, dword [ebp - 0x330]
mov dword [ebp - 0x40], edx
jmp 0x61c4e603
mov ecx, ebx
mov edx, esi
mov eax, dword [ebp - 0x30c]
call sym._sqlite3VdbeParameterIndex
mov dword [ebp - 0x40], eax
add esi, ebx
mov dword [ebp - 0x318], esi
mov ebx, dword [ebp - 0x40]
lea ecx, [ebx + 1]
mov dword [ebp - 0x330], ecx
dec ebx
imul ebx, ebx, 0x28
mov esi, dword [ebp - 0x30c]
add ebx, dword [esi + 0x3c]
movzx edx, word [ebx + 8]
test dl, 1
je 0x61c4e63c
mov ecx, 4
mov edx, str.NULL
jmp 0x61c4e7cf
test dl, 4
je 0x61c4e669
mov eax, dword [ebx]
mov edx, dword [ebx + 4]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edx
mov dword [esp + 8], str._lld
mov dword [esp + 4], 0
lea edi, [ebp - 0xa4]
mov dword [esp], edi
jmp 0x61c4e68f
mov eax, edx
and eax, 8
je 0x61c4e699
fld qword [ebx]
fstp qword [esp + 0xc]
mov dword [esp + 8], str.__.15g
mov dword [esp + 4], 0
lea eax, [ebp - 0xa4]
mov dword [esp], eax
call sym._sqlite3XPrintf
jmp 0x61c4e7da
test dl, 2
je 0x61c4e750
mov edx, dword [ebp - 0x300]
mov dl, byte [edx + 0x3e]
mov byte [ebp - 0x320], dl
dec dl
je 0x61c4e707
mov edi, dword [ebp - 0x3d0]
mov ecx, 0xa
rep stosd dword es:[edi], eax
mov ecx, dword [ebp - 0x300]
mov dword [ebp - 0x1c0], ecx
mov ecx, dword [ebx + 0xc]
mov edx, dword [ebx + 0x10]
mov dword [esp + 4], 0
movzx eax, byte [ebp - 0x320]
mov dword [esp], eax
lea eax, [ebp - 0x1e0]
call sym._sqlite3VdbeMemSetStr
mov edx, 1
lea eax, [ebp - 0x1e0]
call sym._sqlite3VdbeChangeEncoding
lea ebx, [ebp - 0x1e0]
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0xc]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._.q
mov dword [esp + 4], 0
lea ebx, [ebp - 0xa4]
mov dword [esp], ebx
call sym._sqlite3XPrintf
cmp byte [ebp - 0x320], 1
je 0x61c4e7da
lea eax, [ebp - 0x1e0]
call sym._sqlite3VdbeMemRelease
jmp 0x61c4e7da
and dh, 0x40
je 0x61c4e77b
mov eax, dword [ebx]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str.zeroblob__d_
mov dword [esp + 4], 0
lea esi, [ebp - 0xa4]
mov dword [esp], esi
call sym._sqlite3XPrintf
jmp 0x61c4e7da
mov ecx, 2
mov edx, 0x61c797ba
lea eax, [ebp - 0xa4]
call sym._sqlite3StrAccumAppend
mov edi, dword [ebx + 0xc]
xor esi, esi
jmp 0x61c4e7c1
mov eax, dword [ebx + 0x10]
movzx eax, byte [eax + esi]
mov dword [esp + 0xc], eax
mov dword [esp + 8], str._02x
mov dword [esp + 4], 0
lea eax, [ebp - 0xa4]
mov dword [esp], eax
call sym._sqlite3XPrintf
inc esi
cmp esi, edi
jl 0x61c4e797
mov ecx, 1
mov edx, 0x61c797c2
lea eax, [ebp - 0xa4]
call sym._sqlite3StrAccumAppend
mov edx, dword [ebp - 0x318]
cmp byte [edx], 0
je 0x61c4e7ee
mov esi, edx
xor edi, edi
jmp 0x61c4e5a5
lea eax, [ebp - 0xa4]
call sym._sqlite3StrAccumFinish
mov ebx, eax
mov dword [esp + 4], eax
mov ecx, dword [ebp - 0x308]
mov eax, dword [ecx + 0xb4]
mov dword [esp], eax
call dword [ecx + 0xb0]
mov edx, ebx
mov eax, dword [ebp - 0x308]
call sym._sqlite3DbFree
mov dword [ebp - 0x300], 0
mov ebx, dword [ebp - 0x304]
cmp dword [ebx + 8], 0
jmp 0x61c48598
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x360], 0
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 6
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 6
jmp 0x61c4e8ba
mov dword [ebp - 0x300], 0
add dword [ebp - 0x304], 0x14
cmp dword [ebp - 0x300], 0
je 0x61c46ee9
mov ebx, dword [ebp - 0x300]
jmp 0x61c4e8db
mov ebx, 9
mov esi, dword [ebp - 0x30c]
mov dword [esi + 0x50], ebx
mov eax, dword [esi + 0x2c]
mov dword [esp + 0x10], eax
mov eax, dword [esi + 0xa8]
mov dword [esp + 0xc], eax
mov eax, dword [ebp - 0x304]
sub eax, dword [ebp - 0x338]
sar eax, 2
imul eax, eax, 0xcccccccd
mov dword [esp + 8], eax
mov dword [esp + 4], str.statement_aborts_at__d:___s___s
mov dword [esp], ebx
call sym.sqlite3.dll_sqlite3_log
mov eax, esi
call sym._sqlite3VdbeHalt
cmp ebx, 0xc0a
jne 0x61c4e937
mov edi, dword [ebp - 0x308]
mov byte [edi + 0x41], 1
mov ebx, 1
cmp byte [ebp - 0x389], 0
je 0x61c4e960
movzx edx, byte [ebp - 0x389]
dec edx
mov eax, dword [ebp - 0x308]
call sym._sqlite3ResetOneSchema
jmp 0x61c4e960
mov ebx, dword [ebp - 0x300]
mov eax, dword [ebp - 0x368]
mov edx, dword [ebp - 0x364]
mov ecx, dword [ebp - 0x308]
mov dword [ecx + 0x20], eax
mov dword [ecx + 0x24], edx
mov edi, dword [ebp - 0x35c]
mov esi, dword [ebp - 0x30c]
add dword [esi + 0x7c], edi
mov eax, esi
call sym._sqlite3VdbeLeave
mov eax, ebx
add esp, 0x3ec
pop ebx
pop esi
pop edi
leave
ret
mov dword [esp + 4], 0x61c77454
mov eax, dword [ebp - 0x30c]
mov dword [esp], eax
call sym._sqlite3VdbeError
mov ebx, 0x12
jmp 0x61c4e8db
mov edx, dword [ebp - 0x338]
mov dword [ebp - 0x304], edx
mov dword [ebp - 0x35c], 0
mov byte [ebp - 0x389], 0
mov ecx, dword [ebp - 0x308]
mov byte [ecx + 0x41], 1
mov dword [esp + 4], 0x61c77c38
mov ebx, dword [ebp - 0x30c]
mov dword [esp], ebx
call sym._sqlite3VdbeError
mov ebx, 7
jmp 0x61c4e8db
mov ebx, 0x14
jmp 0x61c4ea21
mov ebx, 8
jmp 0x61c4ea21
mov ebx, 0xd
jmp 0x61c4ea21
mov ebx, eax
jmp 0x61c4ea21
mov ebx, dword [ebp - 0x300]
mov esi, dword [ebp - 0x308]
cmp byte [esi + 0x41], 0
jne 0x61c4ea3b
cmp ebx, 0xc0a
je 0x61c4e8db
jmp 0x61c4ea40
mov ebx, 7
mov eax, ebx
call sym._sqlite3ErrStr
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61c77578
mov edi, dword [ebp - 0x30c]
mov dword [esp], edi
call sym._sqlite3VdbeError
jmp 0x61c4e8db
mov eax, dword [ebp - 0x338]
mov dword [ebp - 0x304], eax
mov dword [ebp - 0x35c], 0
mov byte [ebp - 0x389], 0
mov edx, dword [ebp - 0x30c]
mov dword [edx + 0x50], 9
mov eax, 9
call sym._sqlite3ErrStr
mov dword [esp + 8], eax
mov dword [esp + 4], 0x61c77578
mov ecx, dword [ebp - 0x30c]
mov dword [esp], ecx
call sym._sqlite3VdbeError
jmp 0x61c4e8d6
lea ecx, [eax + 0x30]
mov edx, edi
mov eax, dword [ebp - 0x320]
call sym._vdbeIncrMergerNew
mov dword [ebp - 0x300], eax
test eax, eax
je 0x61c4b561
jmp 0x61c4b616
mov edx, 2
mov eax, esi
call sym._vdbePmaReaderIncrMergeInit
mov dword [ebp - 0x300], eax
jmp 0x61c4b60d
mov eax, ebx
call sym._vdbeSorterFlushPMA
mov dword [ebp - 0x300], eax
mov dword [ebx + 0x2c], 0
mov dword [ebx + 0x30], 0
jmp 0x61c4b8b8
mov edi, dword [ebp - 0x304]
imul eax, dword [edi + 0xc], 0x28
add eax, dword [ebp - 0x324]
mov edx, ebx
mov ecx, esi
call sym._sqlite3VdbeMemSetInt64
mov dword [ebp - 0x300], 0
jmp 0x61c46f3f
mov esi, edi
jmp 0x61c4d428
mov eax, dword [ebp - 0x308]
cmp dword [eax + 0x9c], 0
jle 0x61c4979b
jmp 0x61c49776
mov ecx, dword [eax + 0x14]
mov dword [edx + 0x14], ecx
jmp 0x61c4c323
cmp word [ebx + 0x18], 0
jne 0x61c4c9f3
jmp 0x61c4c9ce
mov eax, 0x10
xor edx, edx
call sym._sqlite3MallocZero
test eax, eax
jne 0x61c4dc19
jmp 0x61c4dc37
mov dword [ebp - 0x300], 0
jmp 0x61c4dd3b