Function at 0x467b60
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x70
mov esi, edx
mov ebx, ecx
cmp byte [edx + 0x55], 0
je 0x467bb9
cmp dword [esi + 0xb8], 2
jl 0x467c0b
mov ecx, esi
mov edx, 0x2b
push 0
call fcn.0043f5f0
add esp, 4
mov edi, eax
test eax, eax
je 0x467bf2
movups xmm0, xmmword [0x52d03e]
movups xmmword [edi + 0x1b], xmm0
movups xmm0, xmmword [0x52d033]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM___SQL_statements_in_progress]
jmp 0x467bef
mov ecx, esi
mov edx, 0x28
push 0
call fcn.0043f5f0
add esp, 4
mov edi, eax
test eax, eax
je 0x467bf2
movsd xmm0, qword [0x52d01b]
movsd qword [edi + 0x20], xmm0
movups xmm0, xmmword [0x52d00b]
movups xmmword [edi + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM_from_within_a_transaction]
movups xmmword [edi], xmm0
mov edx, dword [ebx]
test edx, edx
je 0x467bff
mov ecx, esi
call fcn.0043f4f0
mov dword [ebx], edi
mov edi, 1
jmp 0x4681db
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x3c]
test ecx, ecx
je 0x467c45
movzx edi, word [ecx + 0x10]
mov eax, edi
and eax, 0x3f
cmp byte [eax + 0x52a9ea], 3
jne 0x467c57
mov dword [esp + 8], edi
mov eax, edi
not eax
test eax, 0x202
mov dword [esp + 0xc], edx
jne 0x467c83
cmp byte [ecx + 0x12], 1
jne 0x467c83
mov eax, dword [ecx + 8]
jmp 0x467c99
mov dword [esp + 0xc], edx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x14], 0x52a82c
jmp 0x467caa
mov ecx, esi
mov edx, 0x12
push 0
call fcn.0043f5f0
add esp, 4
mov edi, eax
test eax, eax
je 0x467bf2
movups xmm0, xmmword [str.non_text_filename]
movups xmmword [edi], xmm0
mov word [edi + 0x10], 0x65
jmp 0x467bf2
xor eax, eax
test byte [esp + 8], 1
jne 0x467c99
mov edx, 1
call fcn.00456040
mov edx, dword [esi + 0x3c]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebx
and edx, 0xfffffff8
or edx, 6
mov dword [esi + 0x3c], edx
mov edi, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0x10]
mov edx, dword [esi + 0x18]
movups xmm0, xmmword [esi + 0x68]
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x44], edx
or edx, 6
movzx ecx, byte [esi + 0x5e]
mov byte [esp + 0x23], cl
mov dword [esi + 0x18], edx
mov dword [esp + 0x48], ebx
mov edx, ebx
and edx, 0xfffffffe
mov dword [esi + 0x24], edx
mov dword [esp + 0x4c], edi
mov edx, edi
and edx, 0xefffadfe
or edx, 0x201
mov dword [esi + 0x20], edx
mov byte [esi + 0x5e], 0
mov edi, dword [ebp + 8]
shl edi, 4
mov ecx, dword [eax + edi + 4]
mov dword [esp + 8], ecx
mov edx, dword [ecx + 4]
mov edx, dword [edx]
cmp byte [edx + 0xc], 0
mov ecx, 1
jne 0x467d1d
xor ecx, ecx
cmp byte [edx + 0x10], 0
setne cl
mov dword [esp + 0x40], ecx
mov eax, dword [eax + edi]
mov dword [esp + 0x24], eax
mov ebx, dword [esi + 0x14]
push dword [esp + 0x14]
push str.ATTACH__Q_AS_vacuum_db
mov eax, dword [esp + 0x20]
push eax
push esi
call fcn.004733a0
add esp, 0x10
mov ecx, edi
mov edi, eax
mov eax, dword [esp + 0xc]
mov dword [esi + 0x3c], eax
test edi, edi
je 0x467d5c
xor ebx, ebx
mov ecx, dword [esp + 8]
jmp 0x468178
mov dword [esp + 0x28], ecx
mov eax, dword [esi + 0x10]
mov ecx, ebx
shl ecx, 4
lea edx, [eax + ecx]
mov dword [esp + 0x14], edx
mov edx, dword [eax + ecx + 4]
cmp dword [ebp + 0xc], 0
mov dword [esp + 0xc], edx
je 0x467dc1
mov eax, dword [edx + 4]
mov eax, dword [eax]
mov eax, dword [eax + 0x40]
mov dword [esp + 0x34], 0
mov dword [esp + 0x30], 0
mov ecx, dword [eax]
test ecx, ecx
je 0x467dbd
lea edx, [esp + 0x30]
push edx
push eax
call dword [ecx + 0x18]
mov edx, dword [esp + 0x14]
add esp, 8
test eax, eax
jne 0x467e0a
mov eax, dword [esp + 0x30]
xor ecx, ecx
neg eax
sbb ecx, dword [esp + 0x34]
jl 0x467e0a
or byte [esi + 0x18], 8
mov ecx, dword [esp + 8]
cmp byte [ecx + 9], 0
mov dword [esp + 0x3c], ebx
je 0x467dfb
mov eax, dword [ecx + 0xc]
inc eax
mov dword [ecx + 0xc], eax
cmp byte [ecx + 0xa], 0
je 0x467e2b
mov ecx, dword [esp + 8]
mov ebx, dword [ecx + 4]
movzx ecx, byte [ebx + 0x16]
mov byte [esp + 0x13], cl
mov edi, dword [ebx + 0x24]
mov dword [esp + 0x1c], edi
mov edi, dword [ebx + 0x28]
mov ecx, dword [esp + 8]
jmp 0x467e5a
mov eax, dword [ecx + 4]
movzx ebx, byte [eax + 0x16]
mov ecx, dword [eax + 0x24]
mov edi, dword [eax + 0x28]
jmp 0x467e76
mov ecx, dword [esp + 0x18]
mov edx, esi
push str.output_file_already_exists
call fcn.00470620
add esp, 4
mov edi, 1
mov ecx, dword [esp + 8]
jmp 0x468174
mov ecx, dword [esp + 8]
call fcn.0044f0a0
mov ecx, dword [esp + 8]
cmp byte [ecx + 9], 0
mov eax, dword [ecx + 4]
movzx edx, byte [eax + 0x16]
mov byte [esp + 0x13], dl
mov edx, dword [eax + 0x24]
mov dword [esp + 0x1c], edx
mov edi, dword [eax + 0x28]
je 0x467e69
mov eax, dword [ecx + 0xc]
mov edx, dword [esp + 0xc]
dec eax
mov dword [ecx + 0xc], eax
jne 0x467e6d
mov ecx, dword [esp + 8]
call fcn.0044f130
mov edx, dword [esp + 0xc]
mov ecx, dword [esp + 0x1c]
movzx ebx, byte [esp + 0x13]
sub ecx, edi
movzx eax, bl
cmp ecx, eax
cmovle ecx, eax
mov dword [esp + 0x1c], ecx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + ecx + 0xc]
mov edi, dword [eax + 0x50]
mov ebx, dword [edx + 4]
cmp byte [edx + 9], 0
je 0x467eab
inc dword [edx + 0xc]
cmp byte [edx + 0xa], 0
jne 0x467eab
mov ecx, edx
call fcn.0044f0a0
mov eax, dword [ebx]
mov eax, dword [eax + 0xe4]
mov dword [eax + 0x10], edi
mov ecx, dword [0x53c280]
mov ebx, dword [eax + 0x2c]
test edi, edi
jns 0x467f0e
mov edx, edi
sar edx, 0x1f
shld edx, edi, 0xa
shl edi, 0xa
mov dword [esp + 0x28], ecx
xor ecx, ecx
neg edi
sbb ecx, edx
mov edx, dword [eax + 0x1c]
add edx, dword [eax + 0x18]
mov eax, edx
sar eax, 0x1f
push eax
push edx
push ecx
push edi
call fcn.0050f570
add esp, 0x10
cmp eax, 0x3b9aca00
mov edi, 0x3b9aca00
mov ecx, 0x3b9aca00
cmovb ecx, eax
test edx, edx
cmovs edi, eax
cmove edi, ecx
mov ecx, dword [esp + 0x28]
push edi
push ebx
call ecx
add esp, 8
mov ecx, dword [esp + 0xc]
cmp byte [ecx + 9], 0
je 0x467f2d
dec dword [ecx + 0xc]
jne 0x467f2d
call fcn.0044f130
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov edi, dword [edx + 4]
cmp byte [edx + 9], 0
je 0x467f54
inc dword [edx + 0xc]
cmp byte [edx + 0xa], 0
jne 0x467f54
mov ecx, dword [esp + 8]
call fcn.0044f0a0
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 8]
mov eax, dword [edi]
mov edi, dword [eax + 0xe4]
mov ebx, dword [edi + 0x10]
test ebx, ebx
jns 0x467fb0
mov ecx, ebx
sar ecx, 0x1f
shld ecx, ebx, 0xa
shl ebx, 0xa
xor eax, eax
neg ebx
sbb eax, ecx
mov ecx, dword [edi + 0x1c]
add ecx, dword [edi + 0x18]
mov edx, ecx
sar edx, 0x1f
push edx
push ecx
push eax
push ebx
call fcn.0050f570
add esp, 0x10
mov ecx, edx
cmp eax, 0x3b9aca00
mov ebx, 0x3b9aca00
mov edx, 0x3b9aca00
cmovb edx, eax
test ecx, ecx
mov ecx, dword [esp + 0xc]
cmovs ebx, eax
cmove ebx, edx
mov edx, dword [esp + 8]
mov edi, dword [edi + 0x14]
cmp byte [edx + 9], 0
je 0x467fcb
dec dword [edx + 0xc]
jne 0x467fcb
mov ecx, dword [esp + 8]
call fcn.0044f130
mov ecx, dword [esp + 0xc]
cmp ebx, edi
cmovg edi, ebx
mov edx, edi
call fcn.004733f0
mov ecx, dword [esp + 0xc]
mov edi, dword [ecx + 4]
cmp byte [ecx + 9], 0
je 0x467ff6
inc dword [ecx + 0xc]
cmp byte [ecx + 0xa], 0
jne 0x467ff6
call fcn.0044f0a0
mov ecx, dword [esp + 0xc]
mov eax, dword [edi]
mov byte [eax + 7], 1
mov dword [eax + 8], 0
and byte [eax + 0x15], 0xfe
cmp byte [ecx + 9], 0
mov edi, dword [esp + 0x18]
mov ebx, dword [esp + 0x14]
je 0x46801f
dec dword [ecx + 0xc]
jne 0x46801f
call fcn.0044f130
mov ecx, esi
mov edx, edi
push str.BEGIN
call fcn.004735a0
add esp, 4
test eax, eax
je 0x46803f
mov edi, eax
mov ecx, dword [esp + 8]
jmp 0x468178
xor edx, edx
mov eax, dword [ebp + 0xc]
test eax, eax
sete dl
add edx, edx
mov ebx, dword [esp + 8]
mov ecx, ebx
push 0
call fcn.0042e240
add esp, 4
test eax, eax
je 0x468068
mov edi, eax
mov ecx, ebx
jmp 0x468174
mov eax, dword [ebx + 4]
cmp dword [ebp + 0xc], 0
jne 0x46808d
mov ecx, dword [eax]
cmp byte [ecx + 5], 5
mov ebx, dword [esp + 0x18]
jne 0x468091
mov dword [esi + 0x64], 0
mov eax, dword [esp + 8]
mov eax, dword [eax + 4]
jmp 0x468091
mov ebx, dword [esp + 0x18]
mov edx, dword [eax + 0x24]
mov ecx, dword [esp + 0xc]
push 0
push dword [esp + 0x20]
call fcn.0043d960
add esp, 8
mov edi, 7
test eax, eax
je 0x4680b8
mov ecx, dword [esp + 8]
jmp 0x468174
cmp dword [esp + 0x40], 0
mov ecx, dword [esp + 8]
je 0x468153
cmp byte [esi + 0x57], 0
jne 0x468174
movzx edx, byte [esi + 0x5a]
test dl, dl
jns 0x4680e4
mov ecx, dword [esp + 8]
call fcn.00473750
mov edx, eax
mov ecx, dword [esp + 0xc]
call fcn.004736e0
mov eax, dword [esp + 0x3c]
mov byte [esi + 0xb0], al
push dword [esp + 0x24]
push str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typetableAND_name__sqlite_sequence_AND_coalesce_rootpage_1__0
push ebx
push esi
call fcn.004733a0
add esp, 0x10
test eax, eax
jne 0x46814b
push dword [esp + 0x24]
push str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
push ebx
push esi
call fcn.004733a0
add esp, 0x10
test eax, eax
jne 0x46814b
mov byte [esi + 0xb0], 0
push dword [esp + 0x24]
push str.SELECTINSERT_INTO_vacuum_db.quote_name__SELECTFROM__w_.quote_name_FROM_vacuum_db.sqlite_schema_WHERE_typetableAND_coalesce_rootpage_1__0
push ebx
push esi
call fcn.004733a0
add esp, 0x10
and byte [esi + 0x18], 0xfb
test eax, eax
je 0x4681e5
mov edi, eax
mov ecx, dword [esp + 8]
jmp 0x468174
mov edx, dword [esi + 0x64]
mov ecx, dword [esp + 0xc]
push 0
push dword [esp + 0x20]
call fcn.0043d960
mov ecx, dword [esp + 0x10]
add esp, 8
test eax, eax
je 0x4680c7
mov ebx, dword [esp + 0x14]
mov byte [esi + 0xb0], 0
mov eax, dword [esp + 0x44]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x4c]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x48]
mov dword [esi + 0x24], eax
movaps xmm0, xmmword [esp + 0x50]
movups xmmword [esi + 0x68], xmm0
movzx eax, byte [esp + 0x23]
mov byte [esi + 0x5e], al
mov edx, 0xffffffff
push 1
push 0
call fcn.0043d960
add esp, 8
mov byte [esi + 0x55], 1
test ebx, ebx
je 0x4681d4
mov ecx, dword [ebx + 4]
call fcn.00455340
mov dword [ebx + 4], 0
mov dword [ebx + 0xc], 0
mov ecx, esi
call fcn.0042ee00
mov eax, edi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
push dword [esp + 0x24]
push str.INSERT_INTO_vacuum_db.sqlite_schema_SELECTFROM___w_.sqlite_schema_WHERE_type_IN_view_trigger__OR_typetableAND_rootpage0_
push ebx
mov dword [esp + 0x24], esi
push esi
call fcn.004733a0
add esp, 0x10
test eax, eax
je 0x46820f
mov edi, eax
mov esi, dword [esp + 0x18]
mov ecx, dword [esp + 8]
jmp 0x468174
mov dword [esp + 0x2c], 0xffffffff
mov ebx, 0xfffffffe
lea esi, [esp + 0x2c]
mov ecx, dword [esp + 8]
movzx edi, byte [ebx + 0x52d255]
mov edx, edi
push esi
call fcn.00463570
add esp, 4
movzx eax, byte [ebx + 0x52d256]
add eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0xc]
mov edx, edi
push eax
call fcn.0042ed50
add esp, 4
test eax, eax
jne 0x468200
add ebx, 2
cmp ebx, 7
mov ecx, dword [esp + 8]
jbe 0x468224
cmp dword [ebp + 0xc], 0
je 0x4682db
mov ecx, dword [esp + 0xc]
call fcn.00470750
mov edi, eax
xor eax, eax
test edi, edi
setne al
add eax, eax
test edi, edi
jne 0x46829a
cmp dword [ebp + 0xc], 0
jne 0x46829a
mov ecx, dword [esp + 0xc]
call fcn.00473750
mov ecx, dword [esp + 8]
mov edx, eax
call fcn.004736e0
xor eax, eax
cmp dword [ebp + 0xc], 0
jne 0x468202
test eax, eax
jne 0x468202
mov esi, dword [esp + 0xc]
mov ecx, esi
call fcn.0043d8f0
mov ecx, dword [esi + 4]
mov edx, dword [ecx + 0x24]
mov esi, dword [esp + 8]
mov ecx, esi
push 1
push eax
call fcn.0043d960
mov ecx, esi
add esp, 8
mov edi, eax
mov esi, dword [esp + 0x18]
jmp 0x468174
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
call fcn.004737a0
mov edi, eax
test eax, eax
jne 0x468202
jmp 0x468266