Function at 0x4b1b63
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x28
push edi
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0xc], eax
cmp byte [edi + 0x3f], al
jne 0x4b1b90
push str.cannot_VACUUM_from_within_a_transaction
push edi
push dword [ebp + 8]
call fcn.004b368a
xor eax, eax
add esp, 0xc
inc eax
jmp 0x4b1eb6
cmp dword [edi + 0x94], 1
jle 0x4b1ba0
push str.cannot_VACUUM___SQL_statements_in_progress
jmp 0x4b1b7c
mov eax, dword [edi + 0x1c]
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x18], eax
and eax, 0xfff5ffff
or eax, 0x202800
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edi + 0x54]
mov dword [edi + 0x1c], eax
mov eax, dword [edi + 0x14]
mov dword [ebp - 0x20], ecx
mov ecx, dword [edi + 0xac]
and dword [edi + 0xac], 0
mov eax, dword [eax + 4]
cmp byte [edi + 0x40], 2
mov dword [ebp + 0xc], eax
push ebx
mov eax, dword [eax + 4]
mov dword [ebp - 0x24], ecx
mov ecx, str.ATTACH_:memory:_AS_vacuum_db_
push esi
mov esi, dword [edi + 0x18]
mov eax, dword [eax]
movzx eax, byte [eax + 0xf]
mov dword [ebp - 0x14], eax
mov eax, str.ATTACH__AS_vacuum_db_
cmove eax, ecx
push eax
push dword [ebp + 8]
push edi
call fcn.0048e7fd
mov ecx, dword [edi + 0x18]
add esp, 0xc
mov ebx, eax
cmp ecx, esi
jle 0x4b1c20
mov eax, dword [edi + 0x14]
mov edx, ecx
shl edx, 4
add eax, 0xfffffff0
add eax, edx
mov dword [ebp - 0xc], eax
test ebx, ebx
jne 0x4b1e63
mov eax, dword [edi + 0x14]
add ecx, ecx
mov eax, dword [eax + ecx*8 - 0xc]
push eax
mov dword [ebp - 4], eax
call fcn.0049f154
push dword [ebp + 0xc]
call fcn.0049f79b
pop ecx
pop ecx
mov dword [ebp - 8], eax
cmp dword [edi + 0x48], ebx
je 0x4b1c66
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x28]
push eax
push ebx
push edi
call fcn.004a185d
add esp, 0x10
cmp dword [ebp - 0x10], ebx
je 0x4b1c66
mov dword [edi + 0x48], ebx
mov esi, dword [ebp + 8]
push str.PRAGMA_vacuum_db.synchronousOFF
push esi
push edi
call fcn.0048e7fd
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
push str.BEGIN_
push esi
push edi
call fcn.0048e7fd
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
push 2
push dword [ebp + 0xc]
call fcn.0049edc7
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x4b1e63
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 4]
mov eax, dword [eax]
cmp byte [eax + 5], 5
jne 0x4b1cc3
and dword [edi + 0x48], 0
mov eax, dword [ebx + 4]
push 0
push dword [ebp - 8]
push dword [eax + 0x20]
push dword [ebp - 4]
call fcn.004a0ac5
add esp, 0x10
test eax, eax
jne 0x4b1e60
cmp dword [ebp - 0x14], eax
jne 0x4b1d00
push eax
push dword [ebp - 8]
push dword [edi + 0x48]
push dword [ebp - 4]
call fcn.004a0ac5
add esp, 0x10
test eax, eax
jne 0x4b1e60
cmp byte [edi + 0x41], 0
jne 0x4b1e60
mov al, byte [edi + 0x43]
test al, al
js 0x4b1d16
movsx eax, al
jmp 0x4b1d1d
push ebx
call fcn.0049f702
pop ecx
push eax
push dword [ebp - 4]
call fcn.004a0a4a
push str.SELECT_CREATE_TABLE_vacuum_db.__substr_sql_14____FROM_sqlite_master_WHERE_typetable_AND_name_sqlite_sequence___AND_coalesce_rootpage_1__0
push esi
push edi
call fcn.0048e783
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x4b1e63
push str.SELECT_CREATE_INDEX_vacuum_db.__substr_sql_14___FROM_sqlite_master_WHERE_sql_LIKE_CREATE_INDEX__
push esi
push edi
call fcn.0048e783
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
push str.SELECT_CREATE_UNIQUE_INDEX_vacuum_db.__substr_sql_21____FROM_sqlite_master_WHERE_sql_LIKE_CREATE_UNIQUE_INDEX__
push esi
push edi
call fcn.0048e783
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
push 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
push esi
push edi
call fcn.0048e783
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
push str.SELECT_DELETE_FROM_vacuum_db.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence
push esi
push edi
call fcn.0048e783
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
push str.SELECT_INSERT_INTO_vacuum_db.__quote_name____SELECT__FROM_main.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence_
push esi
push edi
call fcn.0048e783
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
push 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_
push esi
push edi
call fcn.0048e7fd
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x4b1e63
xor esi, esi
lea eax, [ebp - 0x14]
push eax
movzx eax, byte [esi + 0x6f63fc]
push eax
push dword [ebp + 0xc]
call fcn.0049f74f
movzx eax, byte [esi + 0x6f63fd]
add eax, dword [ebp - 0x14]
push eax
movzx eax, byte [esi + 0x6f63fc]
push eax
push dword [ebp - 4]
call fcn.004a0cdc
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x4b1e63
add esi, 2
cmp esi, 0xa
jl 0x4b1dd7
mov esi, dword [ebp - 4]
push esi
push dword [ebp + 0xc]
call fcn.0049f254
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x4b1e63
push esi
call fcn.0049f154
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x4b1e63
push esi
call fcn.0049f702
mov ebx, dword [ebp + 0xc]
push eax
push ebx
call fcn.004a0a4a
mov eax, dword [esi + 4]
push 1
push dword [ebp - 8]
push dword [eax + 0x20]
push ebx
call fcn.004a0ac5
add esp, 0x1c
mov ebx, eax
jmp 0x4b1e63
push 7
pop ebx
mov eax, dword [ebp - 0x18]
push 1
mov dword [edi + 0x1c], eax
mov eax, dword [ebp - 0x1c]
push 0xffffffffffffffff
mov dword [edi + 0x50], eax
mov eax, dword [ebp - 0x20]
push 0xffffffffffffffff
push dword [ebp + 0xc]
mov dword [edi + 0x54], eax
mov eax, dword [ebp - 0x24]
mov dword [edi + 0xac], eax
call fcn.004a0ac5
mov esi, dword [ebp - 0xc]
add esp, 0x10
mov byte [edi + 0x3f], 1
test esi, esi
je 0x4b1eab
push dword [esi + 4]
call fcn.0049f01c
and dword [esi + 4], 0
and dword [esi + 0xc], 0
pop ecx
push edi
call fcn.004b1154
pop ecx
pop esi
mov eax, ebx
pop ebx
pop edi
mov esp, ebp
pop ebp
ret