Function at 0x1015ea30
Capabilities:
Reference sql statements

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x48
mov esi, edx
mov edi, ecx
mov eax, dword [0x101db014]
xor eax, ebp
mov dword [esp + 0x40], eax
cmp byte [edx + 0x51], 0
je 0x1015ea9f
cmp dword [esi + 0xb4], 2
jl 0x1015eafd
mov edx, dword [edi]
test edx, edx
je 0x1015ea6b
mov ecx, esi
call fcn.10139000
mov ecx, esi
mov edx, 0x2b
push 0
call fcn.1014e1f0
add esp, 4
test eax, eax
je 0x1015eae3
movups xmm0, xmmword [0x101b63e2]
movups xmmword [eax + 0x1b], xmm0
movups xmm0, xmmword [0x101b63d7]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM___SQL_statements_in_progress]
jmp 0x1015eae0
mov edx, dword [edi]
test edx, edx
je 0x1015eaac
mov ecx, esi
call fcn.10139000
mov ecx, esi
mov edx, 0x28
push 0
call fcn.1014e1f0
add esp, 4
test eax, eax
je 0x1015eae3
movsd xmm0, qword [0x101b8a9c]
movsd qword [eax + 0x20], xmm0
movups xmm0, xmmword [0x101b8a8c]
movups xmmword [eax + 0x10], xmm0
movups xmm0, xmmword [str.cannot_VACUUM_from_within_a_transaction]
movups xmmword [eax], xmm0
mov dword [edi], eax
xor ebx, ebx
inc ebx
mov ecx, dword [esp + 0x40]
xor ecx, ebp
call fcn.1014dc80
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ecx, dword [ebp + 0xc]
mov edx, dword [esi + 0x3c]
test ecx, ecx
je 0x1015eb51
movzx ebx, word [ecx + 8]
mov eax, ebx
and eax, 0x3f
cmp byte [eax + 0x1019c83a], 3
je 0x1015f019
mov edx, dword [edi]
test edx, edx
je 0x1015eb2a
mov ecx, esi
call fcn.10139000
mov ecx, esi
mov edx, 0x12
push 0
call fcn.1014e1f0
add esp, 4
test eax, eax
je 0x1015eae3
movups xmm0, xmmword [str.non_text_filename]
movups xmmword [eax], xmm0
mov word [eax + 0x10], 0x65
jmp 0x1015eae3
mov dword [esp + 4], edx
mov dword [esp + 0xc], 0x101cc833
mov edx, dword [esi + 0x20]
mov ebx, dword [esi + 0x24]
mov eax, dword [esi + 0x18]
mov ecx, dword [esi + 0x68]
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], eax
mov ecx, eax
or ecx, 6
mov al, byte [esi + 0x5a]
mov byte [esp + 0x13], al
mov eax, dword [esi + 0x6c]
mov dword [esp + 0x24], eax
mov dword [esi + 0x18], ecx
mov dword [esp + 0x30], ebx
mov ecx, ebx
and ecx, 0xfffffffe
mov dword [esi + 0x24], ecx
mov dword [esp + 0x34], edx
mov ecx, edx
and ecx, 0xefffadfe
or ecx, 0x201
mov dword [esi + 0x20], ecx
mov byte [esi + 0x5a], 0
mov ebx, dword [ebp + 8]
shl ebx, 4
mov ecx, dword [esi + 0x10]
mov eax, dword [ecx + ebx + 4]
mov dword [esp + 8], eax
mov edx, dword [eax + 4]
mov edx, dword [edx]
mov al, byte [edx + 0xc]
mov byte [esp + 0x12], al
mov dword [esp + 0x20], ebx
mov eax, dword [ecx + ebx]
mov dword [esp + 0x18], eax
mov eax, dword [esi + 0x14]
mov dword [esp + 0x1c], eax
push dword [esp + 0xc]
push str.ATTACH__Q_AS_vacuum_db
push edi
push esi
call fcn.1015f6a0
add esp, 0x10
mov ebx, eax
mov eax, dword [esp + 4]
mov dword [esi + 0x3c], eax
test ebx, ebx
jne 0x1015efaf
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x1c]
shl ecx, 4
lea edx, [eax + ecx]
mov dword [esp + 0xc], edx
mov eax, dword [eax + ecx + 4]
cmp dword [ebp + 0xc], 0
mov dword [esp + 4], eax
jne 0x1015f061
mov ebx, dword [esp + 8]
cmp byte [ebx + 9], 0
jne 0x1015f082
xor eax, eax
mov ecx, dword [ebx + 4]
movzx ebx, byte [ecx + 0x16]
mov edx, dword [ecx + 0x24]
sub edx, dword [ecx + 0x28]
test al, al
je 0x1015ec5d
mov eax, dword [esp + 8]
dec dword [eax + 0xc]
jne 0x1015ec5d
mov ecx, dword [esp + 8]
mov dword [esp + 0x14], edx
call fcn.1000a430
mov edx, dword [esp + 0x14]
cmp edx, ebx
cmovl edx, ebx
mov dword [esp + 0x14], edx
mov eax, dword [esi + 0x10]
mov ecx, dword [esp + 0x20]
mov eax, dword [eax + ecx + 0xc]
mov edx, dword [eax + 0x50]
mov ebx, dword [esp + 4]
mov ecx, ebx
call fcn.101598a0
mov ecx, dword [esp + 8]
xor edx, edx
call fcn.1015f710
mov ecx, ebx
mov edx, eax
call fcn.1015f710
mov ecx, ebx
mov edx, 0x21
call fcn.1002ea20
mov ecx, esi
mov edx, edi
push str.BEGIN
call fcn.1015f7c0
add esp, 4
test eax, eax
jne 0x1015efa7
xor edx, edx
cmp dword [ebp + 0xc], 0
sete dl
add edx, edx
mov ecx, dword [esp + 8]
push 0
call fcn.100121d0
add esp, 4
test eax, eax
jne 0x1015efa7
mov edx, dword [esp + 8]
mov eax, dword [edx + 4]
mov ecx, dword [eax]
cmp byte [ecx + 5], 5
jne 0x1015ecf4
mov ecx, edx
mov dword [esi + 0x60], 0
mov eax, dword [edx + 4]
mov edx, dword [eax + 0x24]
mov ecx, dword [esp + 4]
push 0
push dword [esp + 0x18]
call fcn.1002eb20
add esp, 8
mov ebx, 7
test eax, eax
jne 0x1015efa9
cmp byte [esp + 0x12], 0
jne 0x1015ed3a
mov edx, dword [esi + 0x60]
mov ecx, dword [esp + 4]
push 0
push dword [esp + 0x18]
call fcn.1002eb20
add esp, 8
test eax, eax
jne 0x1015efa9
cmp byte [esi + 0x53], 0
jne 0x1015efa9
movzx ebx, byte [esi + 0x56]
test bl, bl
js 0x1015f107
mov ecx, dword [esp + 4]
mov edx, ebx
call fcn.1015f920
mov eax, dword [esp + 0x1c]
mov byte [esi + 0xa8], al
push dword [esp + 0x18]
push str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typetableAND_name__sqlite_sequence_AND_coalesce_rootpage_1__0
push edi
push esi
call fcn.1015f6a0
add esp, 0x10
test eax, eax
jne 0x1015efa7
push dword [esp + 0x18]
push str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
push edi
push esi
call fcn.1015f6a0
add esp, 0x10
test eax, eax
jne 0x1015efa7
mov byte [esi + 0xa8], 0
push dword [esp + 0x18]
push str.SELECTINSERT_INTO_vacuum_db.quote_name__SELECTFROM__w_.quote_name_FROM_vacuum_db.sqlite_schema_WHERE_typetableAND_coalesce_rootpage_1__0
push edi
push esi
call fcn.1015f6a0
add esp, 0x10
and byte [esi + 0x18], 0xfb
test eax, eax
jne 0x1015efa7
push dword [esp + 0x18]
push str.INSERT_INTO_vacuum_db.sqlite_schema_SELECTFROM___w_.sqlite_schema_WHERE_type_IN_view_trigger__OR_typetableAND_rootpage0_
push edi
push esi
call fcn.1015f6a0
add esp, 0x10
test eax, eax
jne 0x1015efa7
lea ebx, [esp + 0x38]
xor edi, edi
inc edi
mov ecx, dword [esp + 8]
mov edx, edi
push ebx
call fcn.1015f3f0
add esp, 4
mov eax, dword [ebx]
inc eax
mov ecx, dword [esp + 4]
mov edx, edi
push eax
call fcn.10012f10
add esp, 4
mov ebx, eax
test eax, eax
jne 0x1015efa9
mov ecx, dword [esp + 8]
mov edx, 3
lea eax, [esp + 0x38]
push eax
call fcn.1015f3f0
add esp, 4
mov ecx, dword [esp + 4]
mov edx, 3
push dword [esp + 0x38]
call fcn.10012f10
add esp, 4
mov ebx, eax
test eax, eax
jne 0x1015efa9
mov ecx, dword [esp + 8]
mov edx, 5
lea eax, [esp + 0x38]
push eax
call fcn.1015f3f0
add esp, 4
mov ecx, dword [esp + 4]
mov edx, 5
push dword [esp + 0x38]
call fcn.10012f10
add esp, 4
mov ebx, eax
test eax, eax
jne 0x1015efa9
mov ecx, dword [esp + 8]
mov edx, 6
lea eax, [esp + 0x38]
push eax
call fcn.1015f3f0
add esp, 4
mov ecx, dword [esp + 4]
mov edx, 6
push dword [esp + 0x38]
call fcn.10012f10
add esp, 4
mov ebx, eax
test eax, eax
jne 0x1015efa9
mov ecx, dword [esp + 8]
mov edx, 8
lea eax, [esp + 0x38]
push eax
call fcn.1015f3f0
add esp, 4
mov ecx, dword [esp + 4]
mov edx, 8
push dword [esp + 0x38]
call fcn.10012f10
add esp, 4
mov ebx, eax
test eax, eax
jne 0x1015efa9
cmp dword [ebp + 0xc], 0
jne 0x1015eeff
mov ecx, dword [esp + 8]
mov edx, dword [esp + 4]
call fcn.1015f990
mov ebx, eax
test eax, eax
jne 0x1015efa9
mov ecx, dword [esp + 4]
call fcn.1015fb10
mov ebx, eax
xor eax, eax
test ebx, ebx
setne al
add eax, eax
test ebx, ebx
jne 0x1015ef81
cmp dword [ebp + 0xc], 0
jne 0x1015ef81
mov eax, dword [esp + 4]
cmp byte [eax + 9], 0
je 0x1015ef3d
mov eax, dword [esp + 4]
inc dword [eax + 0xc]
cmp byte [eax + 0xa], 0
jne 0x1015ef3d
mov ecx, dword [esp + 4]
call fcn.1000a330
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
xor edi, edi
cmp byte [eax + 0x11], 0
je 0x1015ef58
cmp byte [eax + 0x12], 1
mov edi, 2
sbb edi, 0
mov eax, dword [esp + 4]
cmp byte [eax + 9], 0
je 0x1015ef74
mov eax, dword [esp + 4]
dec dword [eax + 0xc]
jne 0x1015ef74
mov ecx, dword [esp + 4]
call fcn.1000a430
mov ecx, dword [esp + 8]
mov edx, edi
call fcn.1015f920
xor eax, eax
cmp dword [ebp + 0xc], 0
jne 0x1015efa9
test eax, eax
jne 0x1015efa9
mov eax, dword [esp + 4]
mov eax, dword [eax + 4]
mov edx, dword [eax + 0x24]
mov ecx, dword [esp + 8]
push 1
push dword [esp + 0x18]
call fcn.1002eb20
add esp, 8
mov ebx, eax
mov edi, dword [esp + 0xc]
jmp 0x1015efb1
xor edi, edi
mov byte [esi + 0xa8], 0
mov eax, dword [esp + 0x28]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x34]
mov dword [esi + 0x20], eax
mov eax, dword [esp + 0x30]
mov dword [esi + 0x24], eax
mov eax, dword [esp + 0x2c]
mov dword [esi + 0x68], eax
mov eax, dword [esp + 0x24]
mov dword [esi + 0x6c], eax
mov al, byte [esp + 0x13]
mov byte [esi + 0x5a], al
xor edx, edx
dec edx
mov ecx, dword [esp + 8]
push 1
push 0
call fcn.1002eb20
add esp, 8
mov byte [esi + 0x51], 1
test edi, edi
je 0x1015f00d
mov ecx, dword [edi + 4]
call fcn.1001ed00
xor eax, eax
mov dword [edi + 4], eax
mov dword [edi + 0xc], eax
mov ecx, esi
call fcn.10151d90
jmp 0x1015eae8
mov dword [esp + 4], edx
mov eax, 0x202
mov edx, ebx
and edx, eax
cmp edx, eax
jne 0x1015f039
cmp byte [ecx + 0xa], 1
jne 0x1015f039
mov eax, dword [ecx + 0x10]
mov edx, dword [esp + 4]
jmp 0x1015f04f
xor eax, eax
mov edx, dword [esp + 4]
test bl, 1
jne 0x1015f04f
xor edx, edx
inc edx
call fcn.100023b0
mov edx, dword [esi + 0x3c]
mov dword [esp + 0xc], eax
and edx, 0xfffffff8
or edx, 6
mov dword [esi + 0x3c], edx
jmp 0x1015eb5d
mov eax, dword [eax + 4]
mov eax, dword [eax]
mov ebx, dword [eax + 0x3c]
xor eax, eax
mov dword [esp + 0x3c], eax
mov dword [esp + 0x38], eax
mov eax, dword [ebx]
test eax, eax
jne 0x1015f0a0
or byte [esi + 0x18], 8
jmp 0x1015ec22
inc dword [ebx + 0xc]
mov al, 1
cmp byte [ebx + 0xa], 0
jne 0x1015ec32
mov ecx, ebx
call fcn.1000a330
mov al, byte [ebx + 9]
jmp 0x1015ec32
mov ecx, dword [eax + 0x18]
call dword [section..00cfg]
lea eax, [esp + 0x38]
push eax
push ebx
call ecx
add esp, 8
test eax, eax
jne 0x1015f0c6
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x38], 1
sbb eax, 0
jl 0x1015f079
mov edx, dword [edi]
test edx, edx
je 0x1015f0d3
mov ecx, esi
call fcn.10139000
mov ecx, esi
mov edx, 0x1b
push 0
call fcn.1014e1f0
add esp, 4
test eax, eax
je 0x1015f0fd
movups xmm0, xmmword [0x101b6080]
movups xmmword [eax + 0xb], xmm0
movups xmm0, xmmword [str.output_file_already_exists]
movups xmmword [eax], xmm0
mov dword [edi], eax
xor ebx, ebx
inc ebx
jmp 0x1015efa9
mov ebx, dword [esp + 8]
cmp byte [ebx + 9], 0
je 0x1015f121
inc dword [ebx + 0xc]
cmp byte [ebx + 0xa], 0
jne 0x1015f121
mov ecx, ebx
call fcn.1000a330
mov eax, dword [ebx + 4]
xor ebx, ebx
cmp byte [eax + 0x11], 0
je 0x1015f138
cmp byte [eax + 0x12], 1
mov ebx, 2
sbb ebx, 0
mov eax, dword [esp + 8]
cmp byte [eax + 9], 0
je 0x1015ed50
dec dword [eax + 0xc]
jne 0x1015ed50
mov ecx, dword [esp + 8]
call fcn.1000a430
jmp 0x1015ed50