Function at 0x10092cb0
Capabilities:
Reference sql statements

Disassembly:
sub esp, 0x30
push ebx
xor ecx, ecx
push ebp
push edi
mov edi, eax
mov dword [esp + 0x1c], ecx
cmp byte [esi + 0x3f], cl
jne 0x10092cde
push str.cannot_VACUUM_from_within_a_transaction
mov eax, esi
call fcn.100302e0
add esp, 4
mov eax, 1
pop edi
pop ebp
pop ebx
add esp, 0x30
ret
cmp dword [esi + 0x94], 1
jle 0x10092d02
push str.cannot_VACUUM___SQL_statements_in_progress
mov eax, esi
call fcn.100302e0
add esp, 4
mov eax, 1
pop edi
pop ebp
pop ebx
add esp, 0x30
ret
mov eax, dword [esi + 0x18]
mov edx, dword [esi + 0x50]
mov dword [esp + 0x28], eax
and eax, 0xfff5ffff
or eax, 0x202800
cmp byte [esi + 0x40], 2
mov dword [esp + 0x2c], edx
mov edx, dword [esi + 0x54]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x30], edx
mov edx, dword [esi + 0xac]
mov dword [esi + 0xac], ecx
mov ebx, dword [eax + 4]
mov ecx, dword [ebx + 4]
mov dword [esp + 0x34], edx
mov edx, dword [ecx]
movzx eax, byte [edx + 0xf]
mov ecx, dword [esi + 0x14]
mov dword [esp + 0x24], eax
mov dword [esp + 0x10], ebx
mov dword [esp + 0x18], ecx
mov eax, str.ATTACH_:memory:_AS_vacuum_db_
je 0x10092d62
mov eax, str.ATTACH__AS_vacuum_db_
mov ecx, edi
mov edx, esi
call fcn.10092770
mov ebp, eax
mov eax, dword [esi + 0x14]
cmp eax, dword [esp + 0x18]
jle 0x10092d86
mov ecx, dword [esi + 0x10]
mov edx, eax
shl edx, 4
lea edx, [edx + ecx - 0x10]
mov dword [esp + 0x1c], edx
test ebp, ebp
jne 0x10092fd9
mov ecx, dword [esi + 0x10]
shl eax, 4
mov eax, dword [eax + ecx - 0xc]
mov dword [esp + 0x14], eax
call fcn.10080ce0
mov eax, ebx
call fcn.100254a0
mov dword [esp + 0x18], eax
cmp dword [esi + 0x48], ebp
je 0x10092dc9
lea edx, [esp + 0x20]
lea ecx, [esp + 0x38]
mov eax, esi
call fcn.10017f90
cmp dword [esp + 0x20], ebp
je 0x10092dc9
mov dword [esi + 0x48], ebp
mov eax, str.PRAGMA_vacuum_db.synchronousOFF
mov ecx, edi
mov edx, esi
call fcn.10092770
mov ebp, eax
test ebp, ebp
jne 0x10092fd9
mov eax, str.BEGIN_
mov ecx, edi
mov edx, esi
call fcn.10092770
mov ebp, eax
test ebp, ebp
jne 0x10092fd9
push 2
push ebx
call fcn.100700b0
mov ebp, eax
add esp, 8
test ebp, ebp
jne 0x10092fd9
mov edx, dword [ebx + 4]
mov eax, dword [edx]
cmp byte [eax + 5], 5
jne 0x10092e1c
mov dword [esi + 0x48], ebp
mov ecx, dword [ebx + 4]
mov edx, dword [esp + 0x18]
mov eax, dword [ecx + 0x20]
mov ebx, dword [esp + 0x14]
push 0
push edx
call fcn.10031b40
add esp, 8
test eax, eax
jne 0x10092fd0
cmp dword [esp + 0x24], eax
jne 0x10092e5c
push eax
mov eax, dword [esp + 0x1c]
push eax
mov eax, dword [esi + 0x48]
call fcn.10031b40
add esp, 8
test eax, eax
jne 0x10092fd0
cmp byte [esi + 0x41], 0
jne 0x10092fd0
mov al, byte [esi + 0x43]
test al, al
jl 0x10092e72
movsx eax, al
jmp 0x10092e7b
mov eax, dword [esp + 0x10]
call fcn.10025320
push eax
mov eax, ebx
call fcn.10025370
add esp, 4
push edi
mov eax, str.SELECT_CREATE_TABLE_vacuum_db.__substr_sql_14____FROM_sqlite_master_WHERE_typetable_AND_name_sqlite_sequence___AND_coalesce_rootpage_1__0
mov ecx, esi
call fcn.10092ab0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x10092fd5
push edi
mov eax, str.SELECT_CREATE_INDEX_vacuum_db.__substr_sql_14___FROM_sqlite_master_WHERE_sql_LIKE_CREATE_INDEX__
mov ecx, esi
call fcn.10092ab0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x10092fd5
push edi
mov eax, str.SELECT_CREATE_UNIQUE_INDEX_vacuum_db.__substr_sql_21____FROM_sqlite_master_WHERE_sql_LIKE_CREATE_UNIQUE_INDEX__
mov ecx, esi
call fcn.10092ab0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x10092fd5
push edi
mov eax, 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 ecx, esi
call fcn.10092ab0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x10092fd5
push edi
mov eax, str.SELECT_DELETE_FROM_vacuum_db.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence
mov ecx, esi
call fcn.10092ab0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x10092fd5
push edi
mov eax, str.SELECT_INSERT_INTO_vacuum_db.__quote_name____SELECT__FROM_main.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence_
mov ecx, esi
call fcn.10092ab0
mov ebp, eax
add esp, 4
test ebp, ebp
jne 0x10092fd5
mov eax, 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 ecx, edi
mov edx, esi
call fcn.10092770
mov ebp, eax
test ebp, ebp
jne 0x10092fd5
xor edi, edi
lea esp, [esp]
movzx edx, byte [edi + 0x100b16b8]
mov eax, dword [esp + 0x10]
lea ecx, [esp + 0x24]
push ecx
push edx
call fcn.100252a0
movzx eax, byte [edi + 0x100b16b8]
movzx ebx, byte [edi + 0x100b16b9]
add ebx, dword [esp + 0x2c]
push eax
mov eax, dword [esp + 0x20]
call fcn.10049300
mov ebp, eax
add esp, 0xc
test ebp, ebp
jne 0x10092fd5
add edi, 2
cmp edi, 0xa
jl 0x10092f40
mov edi, dword [esp + 0x14]
mov ebx, dword [esp + 0x10]
mov eax, edi
call fcn.100857b0
mov ebp, eax
test ebp, ebp
jne 0x10092fd5
mov eax, edi
call fcn.10080ce0
mov ebp, eax
test ebp, ebp
jne 0x10092fd5
mov eax, edi
call fcn.10025320
push eax
mov eax, ebx
call fcn.10025370
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x1c]
mov eax, dword [ecx + 0x20]
add esp, 4
push 1
push edx
call fcn.10031b40
add esp, 8
mov ebp, eax
jmp 0x10092fd9
mov ebp, 7
mov ebx, dword [esp + 0x10]
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x30]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0xac], eax
push 1
push 0xffffffffffffffff
or eax, 0xffffffff
mov dword [esi + 0x50], ecx
mov dword [esi + 0x54], edx
call fcn.10031b40
mov edi, dword [esp + 0x24]
xor ebx, ebx
add esp, 8
mov byte [esi + 0x3f], 1
cmp edi, ebx
je 0x10093023
mov eax, dword [edi + 4]
call fcn.1007b090
mov dword [edi + 4], ebx
mov dword [edi + 0xc], ebx
mov eax, esi
call fcn.10043520
pop edi
mov eax, ebp
pop ebp
pop ebx
add esp, 0x30
ret