Function at 0x4ab320
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
push ebx
push esi
push edi
mov edi, edx
xor eax, eax
mov edx, ecx
mov dword [ebp - 0xc], edi
mov dword [ebp - 4], edx
mov dword [ebp - 0x18], eax
cmp byte [edi + 0x3e], al
jne 0x4ab358
push str.cannot_VACUUM_from_within_a_transaction
push edi
push edx
call fcn.0044d820
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x8c], 1
jle 0x4ab37c
push str.cannot_VACUUM___SQL_statements_in_progress
push edi
push edx
call fcn.0044d820
add esp, 0xc
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x50]
mov dword [ebp - 0x20], eax
and eax, 0xfff5ffff
or eax, 0x202800
cmp byte [edi + 0x3f], 2
mov esi, dword [edi + 0x14]
mov dword [ebp - 0x24], ecx
mov ecx, dword [edi + 0x54]
mov dword [edi + 0x18], eax
mov eax, dword [edi + 0x10]
mov dword [ebp - 0x28], ecx
mov ecx, dword [edi + 0xa4]
mov dword [edi + 0xa4], 0
mov dword [ebp - 0x2c], ecx
mov ecx, dword [eax + 4]
mov dword [ebp - 8], ecx
mov eax, dword [ecx + 4]
mov ecx, str.ATTACH__AS_vacuum_db_
mov eax, dword [eax]
movzx eax, byte [eax + 0xf]
mov dword [ebp - 0x1c], eax
mov eax, str.ATTACH_:memory:_AS_vacuum_db_
cmovne eax, ecx
push eax
mov ecx, edi
call fcn.004ab000
mov edi, dword [edi + 0x14]
add esp, 4
cmp edi, esi
mov esi, dword [ebp - 0xc]
mov ebx, eax
jle 0x4ab3fe
mov eax, dword [esi + 0x10]
mov edx, edi
shl edx, 4
add eax, 0xfffffff0
add eax, edx
mov dword [ebp - 0x18], eax
test ebx, ebx
jne 0x4ab87f
mov eax, dword [esi + 0x10]
add edi, edi
mov eax, dword [eax + edi*8 - 0xc]
mov ecx, eax
mov dword [ebp - 0x10], eax
call fcn.004619e0
mov edi, dword [ebp - 8]
mov ecx, edi
call fcn.00460610
mov edx, dword [ebp - 4]
push str.PRAGMA_vacuum_db.synchronousOFF
mov ecx, esi
mov dword [ebp - 0x14], eax
call fcn.004ab000
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov edx, dword [ebp - 4]
push str.BEGIN_
mov ecx, esi
call fcn.004ab000
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov esi, dword [edi + 4]
mov ecx, edi
call fcn.0045e1c0
cmp byte [edi + 8], 2
je 0x4ab673
movzx ecx, word [esi + 0x16]
test cl, 1
je 0x4ab485
mov ebx, 8
jmp 0x4ab689
cmp byte [esi + 0x14], 2
je 0x4ab4c4
test cl, 0x40
jne 0x4ab4c4
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4ab4a2
cmp dword [eax], edi
jne 0x4ab4c0
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4ab497
cmp byte [edi + 9], 0
mov eax, dword [edi + 4]
je 0x4ab4f7
cmp dword [eax + 0x4c], edi
je 0x4ab4d7
test byte [eax + 0x16], 0x20
je 0x4ab4d7
mov ebx, 0x106
jmp 0x4ab689
mov eax, dword [eax]
jmp 0x4ab4c7
mov eax, dword [esi + 0x4c]
mov eax, dword [eax]
test eax, eax
je 0x4ab4a2
mov ebx, 0x106
jmp 0x4ab689
mov eax, dword [eax + 0x48]
test eax, eax
je 0x4ab4f7
mov edi, edi
cmp dword [eax], edi
je 0x4ab4f0
cmp dword [eax + 4], 1
jne 0x4ab4f0
cmp byte [eax + 8], 1
jne 0x4ab4cd
mov eax, dword [eax + 0xc]
test eax, eax
jne 0x4ab4e0
xor ebx, ebx
and ecx, 0xfff7
mov word [esi + 0x16], cx
cmp dword [esi + 0x2c], ebx
jne 0x4ab510
or ecx, 8
mov word [esi + 0x16], cx
nop
cmp dword [esi + 0xc], 0
jne 0x4ab525
mov ecx, esi
call fcn.004607d0
mov ebx, eax
test ebx, ebx
je 0x4ab510
jmp 0x4ab564
test ebx, ebx
jne 0x4ab564
test byte [esi + 0x16], 1
je 0x4ab536
mov ebx, 8
jmp 0x4ab564
mov eax, dword [edi]
xor ecx, ecx
cmp byte [eax + 0x3f], 2
mov edx, 1
sete cl
push ecx
mov ecx, dword [esi]
call fcn.0045a650
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab564
mov ecx, esi
call fcn.00460a40
mov ebx, eax
test ebx, ebx
je 0x4ab597
cmp byte [esi + 0x14], 0
jne 0x4ab597
mov ecx, dword [esi + 0xc]
test ecx, ecx
je 0x4ab597
mov ecx, dword [ecx + 0x44]
test byte [ecx + 0x18], 0x40
mov edi, dword [ecx + 0x10]
je 0x4ab584
call fcn.00459060
jmp 0x4ab589
call fcn.00454fe0
mov ecx, edi
call fcn.0045a190
mov dword [esi + 0xc], 0
cmp bl, 5
jne 0x4ab5d9
cmp byte [esi + 0x14], 0
jne 0x4ab5d9
mov edi, dword [esi + 4]
add edi, 0x1b4
je 0x4ab5d9
mov eax, dword [edi]
test eax, eax
je 0x4ab5d9
mov ecx, dword [edi + 8]
test ecx, ecx
js 0x4ab5d9
push ecx
push dword [edi + 4]
call eax
add esp, 8
test eax, eax
je 0x4ab5d2
inc dword [edi + 8]
mov edi, dword [ebp - 8]
jmp 0x4ab510
mov dword [edi + 8], 0xffffffff
test ebx, ebx
jne 0x4ab686
mov ecx, dword [ebp - 8]
cmp byte [ecx + 8], bl
jne 0x4ab601
inc dword [esi + 0x28]
cmp byte [ecx + 9], bl
je 0x4ab601
mov byte [ecx + 0x24], 1
mov eax, dword [esi + 0x48]
mov dword [ecx + 0x28], eax
lea eax, [ecx + 0x1c]
mov dword [esi + 0x48], eax
mov byte [ecx + 8], 2
cmp byte [esi + 0x14], 2
jae 0x4ab60f
mov byte [esi + 0x14], 2
or word [esi + 0x16], 0x20
mov edi, dword [esi + 0xc]
mov dword [esi + 0x4c], ecx
mov edx, dword [edi + 0x38]
movzx ecx, byte [edx + 0x1c]
movzx eax, byte [edx + 0x1d]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1e]
shl ecx, 8
or ecx, eax
movzx eax, byte [edx + 0x1f]
shl ecx, 8
or ecx, eax
cmp dword [esi + 0x2c], ecx
je 0x4ab670
mov ecx, dword [edi + 0x44]
call fcn.0045a910
mov ebx, eax
test ebx, ebx
jne 0x4ab686
mov ecx, dword [esi + 0x2c]
mov edx, dword [edi + 0x38]
mov eax, ecx
shr eax, 0x18
mov byte [edx + 0x1c], al
mov eax, ecx
shr eax, 0x10
mov byte [edx + 0x1d], al
mov eax, ecx
shr eax, 8
mov byte [edx + 0x1e], al
mov byte [edx + 0x1f], cl
mov edi, dword [ebp - 8]
mov edx, dword [edi]
mov ecx, dword [esi]
mov edx, dword [edx + 0x1e8]
call fcn.0045aed0
mov ebx, eax
jmp 0x4ab689
mov edi, dword [ebp - 8]
cmp byte [edi + 9], 0
je 0x4ab6ac
dec dword [edi + 0xc]
jne 0x4ab6ac
mov eax, dword [edi + 4]
mov eax, dword [eax + 0x38]
test eax, eax
je 0x4ab6a8
push eax
call dword [0x62bc3c]
add esp, 4
mov byte [edi + 0xa], 0
test ebx, ebx
jne 0x4ab882
mov eax, dword [edi + 4]
mov esi, dword [ebp - 0xc]
mov eax, dword [eax]
cmp byte [eax + 5], 5
jne 0x4ab6c5
mov dword [esi + 0x48], ebx
mov eax, dword [edi + 4]
mov ebx, dword [ebp - 0x10]
mov edx, dword [eax + 0x20]
push 0
push dword [ebp - 0x14]
mov ecx, ebx
call fcn.00460530
add esp, 8
test eax, eax
jne 0x4ab878
cmp dword [ebp - 0x1c], eax
jne 0x4ab703
mov edx, dword [esi + 0x48]
push eax
push dword [ebp - 0x14]
mov ecx, ebx
call fcn.00460530
add esp, 8
test eax, eax
jne 0x4ab878
cmp byte [esi + 0x40], 0
jne 0x4ab878
mov al, byte [esi + 0x42]
test al, al
js 0x4ab719
movsx eax, al
jmp 0x4ab720
mov ecx, edi
call fcn.00460790
mov edx, eax
mov ecx, ebx
call fcn.00460710
mov edx, dword [ebp - 4]
push 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.004ab090
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov edx, dword [ebp - 4]
push str.SELECT_CREATE_INDEX_vacuum_db.__substr_sql_14___FROM_sqlite_master_WHERE_sql_LIKE_CREATE_INDEX__
mov ecx, esi
call fcn.004ab090
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov edx, dword [ebp - 4]
push str.SELECT_CREATE_UNIQUE_INDEX_vacuum_db.__substr_sql_21____FROM_sqlite_master_WHERE_sql_LIKE_CREATE_UNIQUE_INDEX__
mov ecx, esi
call fcn.004ab090
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov edx, dword [ebp - 4]
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
mov ecx, esi
call fcn.004ab090
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov edx, dword [ebp - 4]
push str.SELECT_DELETE_FROM_vacuum_db.__quote_name_____FROM_vacuum_db.sqlite_master_WHERE_namesqlite_sequence
mov ecx, esi
call fcn.004ab090
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov edx, dword [ebp - 4]
push 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.004ab090
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
mov edx, dword [ebp - 4]
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_
mov ecx, esi
call fcn.004ab000
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
xor esi, esi
nop
movzx edx, byte [esi + 0x5dd830]
lea eax, [ebp - 0x1c]
push eax
mov ecx, edi
call fcn.004664e0
movzx eax, byte [esi + 0x5dd831]
add eax, dword [ebp - 0x1c]
movzx edx, byte [esi + 0x5dd830]
mov ecx, dword [ebp - 0x10]
add esp, 4
push eax
call fcn.00466550
mov ebx, eax
add esp, 4
test ebx, ebx
jne 0x4ab882
add esi, 2
cmp esi, 0xa
jl 0x4ab7f0
mov esi, dword [ebp - 0x10]
mov edx, esi
mov ecx, edi
call fcn.00468f70
mov ebx, eax
test ebx, ebx
jne 0x4ab882
mov ecx, esi
call fcn.004619e0
mov ebx, eax
test ebx, ebx
jne 0x4ab882
mov ecx, esi
call fcn.00460790
mov edx, eax
mov ecx, edi
call fcn.00460710
mov eax, dword [esi + 4]
push 1
push dword [ebp - 0x14]
mov edx, dword [eax + 0x20]
mov ecx, edi
call fcn.00460530
add esp, 8
mov ebx, eax
jmp 0x4ab882
mov ebx, 7
jmp 0x4ab882
mov edi, dword [ebp - 8]
mov esi, dword [ebp - 0xc]
mov eax, dword [ebp - 0x20]
mov dword [esi + 0x18], eax
mov eax, dword [ebp - 0x24]
mov dword [esi + 0x50], eax
mov eax, dword [ebp - 0x28]
mov dword [esi + 0x54], eax
mov eax, dword [ebp - 0x2c]
push 1
push 0xffffffffffffffff
or edx, 0xffffffff
mov ecx, edi
mov dword [esi + 0xa4], eax
call fcn.00460530
mov edi, dword [ebp - 0x18]
add esp, 8
mov byte [esi + 0x3e], 1
test edi, edi
je 0x4ab8d2
mov ecx, dword [edi + 4]
call fcn.004602a0
mov dword [edi + 4], 0
mov dword [edi + 0xc], 0
mov ecx, esi
call fcn.00484c30
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret