Function at 0x51e919
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x20
push edi
mov edi, dword [ebp + 0xc]
xor eax, eax
mov dword [ebp - 0xc], eax
cmp byte [edi + 0x3e], al
jne 0x51e946
push str.cannot_VACUUM_from_within_a_transaction
push edi
push dword [ebp + 8]
call fcn.00520370
xor eax, eax
add esp, 0xc
inc eax
jmp 0x51ec4b
cmp dword [edi + 0x94], 1
jle 0x51e956
push str.cannot_VACUUM___SQL_statements_in_progress
jmp 0x51e932
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x14], eax
and eax, 0xfff5ffff
or eax, 0x202800
mov dword [ebp - 0x18], ecx
mov ecx, dword [edi + 0x54]
mov dword [edi + 0x18], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x1c], ecx
mov ecx, dword [edi + 0xac]
and dword [edi + 0xac], 0
mov eax, dword [eax + 4]
cmp byte [edi + 0x3f], 2
mov dword [ebp + 0xc], eax
push ebx
mov eax, dword [eax + 4]
mov dword [ebp - 0x20], ecx
mov ecx, str.ATTACH_:memory:_AS_vacuum_db_
push esi
mov esi, dword [edi + 0x14]
mov eax, dword [eax]
movzx eax, byte [eax + 0xf]
mov dword [ebp - 0x10], eax
mov eax, str.ATTACH__AS_vacuum_db_
cmove eax, ecx
push eax
push dword [ebp + 8]
push edi
call fcn.004eee29
mov ecx, dword [edi + 0x14]
add esp, 0xc
mov ebx, eax
cmp ecx, esi
jle 0x51e9d6
mov eax, dword [edi + 0x10]
mov edx, ecx
shl edx, 4
add eax, 0xfffffff0
add eax, edx
mov dword [ebp - 0xc], eax
test ebx, ebx
jne 0x51ebf8
mov eax, dword [edi + 0x10]
add ecx, ecx
mov eax, dword [eax + ecx*8 - 0xc]
push eax
mov dword [ebp - 4], eax
call fcn.005099c2
push dword [ebp + 0xc]
call fcn.00509fee
mov esi, dword [ebp + 8]
push str.PRAGMA_vacuum_db.synchronousOFF
push esi
push edi
mov dword [ebp - 8], eax
call fcn.004eee29
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x51ebf8
push str.BEGIN_
push esi
push edi
call fcn.004eee29
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x51ebf8
push 2
push dword [ebp + 0xc]
call fcn.00509633
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x51ebf8
mov ebx, dword [ebp + 0xc]
mov eax, dword [ebx + 4]
mov eax, dword [eax]
cmp byte [eax + 5], 5
jne 0x51ea58
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.0050b340
add esp, 0x10
test eax, eax
jne 0x51ebf5
cmp dword [ebp - 0x10], eax
jne 0x51ea95
push eax
push dword [ebp - 8]
push dword [edi + 0x48]
push dword [ebp - 4]
call fcn.0050b340
add esp, 0x10
test eax, eax
jne 0x51ebf5
cmp byte [edi + 0x40], 0
jne 0x51ebf5
mov al, byte [edi + 0x42]
test al, al
js 0x51eaab
movsx eax, al
jmp 0x51eab2
push ebx
call fcn.00509f69
pop ecx
push eax
push dword [ebp - 4]
call fcn.0050b2c5
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.004eedaf
mov ebx, eax
add esp, 0x14
test ebx, ebx
jne 0x51ebf8
push str.SELECT_CREATE_INDEX_vacuum_db.__substr_sql_14___FROM_sqlite_master_WHERE_sql_LIKE_CREATE_INDEX__
push esi
push edi
call fcn.004eedaf
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x51ebf8
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.004eedaf
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x51ebf8
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.004eedaf
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x51ebf8
push str.SELECT_DELETE_FROM_vacuum_db.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence
push esi
push edi
call fcn.004eedaf
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x51ebf8
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.004eedaf
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x51ebf8
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.004eee29
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x51ebf8
xor esi, esi
lea eax, [ebp - 0x10]
push eax
movzx eax, byte [esi + 0x55d464]
push eax
push dword [ebp + 0xc]
call fcn.00509fb6
movzx eax, byte [esi + 0x55d465]
add eax, dword [ebp - 0x10]
push eax
movzx eax, byte [esi + 0x55d464]
push eax
push dword [ebp - 4]
call fcn.0050b51f
mov ebx, eax
add esp, 0x18
test ebx, ebx
jne 0x51ebf8
add esi, 2
cmp esi, 0xa
jl 0x51eb6c
mov esi, dword [ebp - 4]
push esi
push dword [ebp + 0xc]
call fcn.00509abf
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
jne 0x51ebf8
push esi
call fcn.005099c2
mov ebx, eax
pop ecx
test ebx, ebx
jne 0x51ebf8
push esi
call fcn.00509f69
mov ebx, dword [ebp + 0xc]
push eax
push ebx
call fcn.0050b2c5
mov eax, dword [esi + 4]
push 1
push dword [ebp - 8]
push dword [eax + 0x20]
push ebx
call fcn.0050b340
add esp, 0x1c
mov ebx, eax
jmp 0x51ebf8
push 7
pop ebx
mov eax, dword [ebp - 0x14]
push 1
mov dword [edi + 0x18], eax
mov eax, dword [ebp - 0x18]
push 0xffffffffffffffff
mov dword [edi + 0x50], eax
mov eax, dword [ebp - 0x1c]
push 0xffffffffffffffff
push dword [ebp + 0xc]
mov dword [edi + 0x54], eax
mov eax, dword [ebp - 0x20]
mov dword [edi + 0xac], eax
call fcn.0050b340
mov esi, dword [ebp - 0xc]
add esp, 0x10
mov byte [edi + 0x3e], 1
test esi, esi
je 0x51ec40
push dword [esi + 4]
call fcn.00509888
and dword [esi + 4], 0
and dword [esi + 0xc], 0
pop ecx
push edi
call fcn.0051df0c
pop ecx
pop esi
mov eax, ebx
pop ebx
pop edi
mov esp, ebp
pop ebp
ret