Function at 0x1800c52e0
Capabilities:
Reference sql statements

Disassembly:
push rbx
push rbp
push rdi
push r12
push r14
sub rsp, 0x60
cmp byte [rdx + 0x65], 0
mov r12, r9
movsxd rbx, r8d
mov rdi, rdx
mov rbp, rcx
mov qword [rsp + 0x38], 0
mov r14d, 1
jne 0x1800c5328
lea r8, str.cannot_VACUUM_from_within_a_transaction
call fcn.180039430
mov eax, r14d
add rsp, 0x60
pop r14
pop r12
pop rdi
pop rbp
pop rbx
ret
cmp dword [rdx + 0xd8], r14d
jle 0x1800c534c
lea r8, str.cannot_VACUUM___SQL_statements_in_progress
call fcn.180039430
mov eax, r14d
add rsp, 0x60
pop r14
pop r12
pop rdi
pop rbp
pop rbx
ret
mov qword [rsp + 0xa0], r13
lea rcx, [0x180000000]
mov r13d, dword [rdx + 0x4c]
test r12, r12
je 0x1800c53a2
movzx eax, word [r9 + 0x14]
and eax, 0x3f
cmp byte [rax + rcx + 0x1a7d20], 3
je 0x1800c538d
lea r8, str.non_text_filename
mov rcx, rbp
call fcn.180039430
mov eax, r14d
jmp 0x1800c585e
mov rcx, r12
call fcn.180066980
and dword [rdi + 0x4c], 0xfffffffe
mov r9, rax
or dword [rdi + 0x4c], 6
jmp 0x1800c53a9
lea r9, [0x1801a91a0]
mov eax, dword [rdi + 0x2c]
mov rcx, qword [rdi + 0x30]
mov rdx, qword [rdi + 0x78]
mov dword [rsp + 0x30], eax
or eax, 6
mov dword [rdi + 0x2c], eax
mov rax, rcx
mov qword [rsp + 0x48], rcx
movabs rcx, 0xfffffffeefffafff
and rax, rcx
mov qword [rsp + 0x50], rdx
mov rdx, qword [rdi + 0x80]
or rax, 0x201
mov qword [rdi + 0x30], rax
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0xa8], r15
mov r15, rbx
shl r15, 5
mov qword [rsp + 0x58], rdx
movzx edx, byte [rdi + 0x6e]
mov byte [rdi + 0x6e], 0
mov rcx, qword [rax + r15]
mov rbx, qword [rax + r15 + 8]
mov qword [rsp + 0x40], rcx
mov byte [rsp + 0x98], dl
mov rax, qword [rbx + 8]
mov rcx, qword [rax]
cmp byte [rcx + 0x10], 0
jne 0x1800c5441
cmp byte [rcx + 0x14], 0
mov dword [rsp + 0x20], 0
je 0x1800c5446
mov dword [rsp + 0x20], r14d
mov eax, dword [rdi + 0x28]
lea r8, str.ATTACH__Q_AS_vacuum_db
mov rdx, rbp
mov dword [rsp + 0x24], eax
mov rcx, rdi
call fcn.1800c50d0
mov dword [rdi + 0x4c], r13d
mov esi, eax
test eax, eax
jne 0x1800c57d2
movsxd rax, dword [rsp + 0x24]
shl rax, 5
add rax, qword [rdi + 0x20]
mov qword [rsp + 0x38], rax
mov r13, qword [rax + 8]
test r12, r12
je 0x1800c54e9
mov rax, qword [r13 + 8]
mov rcx, qword [rax]
mov rcx, qword [rcx + 0x48]
mov qword [rsp + 0x28], 0
mov rax, qword [rcx]
test rax, rax
je 0x1800c54d2
lea rdx, [rsp + 0x28]
call qword [rax + 0x30]
test eax, eax
jne 0x1800c54b8
cmp qword [rsp + 0x28], 0
jle 0x1800c54d2
lea r8, str.output_file_already_exists
mov rdx, rdi
mov rcx, rbp
mov esi, r14d
call fcn.180039430
jmp 0x1800c57d2
mov rax, qword [rdi + 0x20]
or dword [rdi + 0x2c], 8
movzx r14d, byte [rax + r15 + 0x10]
mov eax, dword [rdi + 0x30]
and eax, 0x38
or r14d, eax
mov rcx, rbx
call fcn.180052dd0
mov rcx, qword [rdi + 0x20]
mov dword [rsp + 0x28], eax
mov rdx, qword [rcx + r15 + 0x18]
mov rcx, r13
mov edx, dword [rdx + 0x74]
call fcn.180052b10
xor edx, edx
mov rcx, rbx
call fcn.180052bb0
mov edx, eax
mov rcx, r13
call fcn.180052bb0
or r14d, 0x20
mov rcx, r13
mov edx, r14d
call fcn.180052c70
lea r8, str.BEGIN
mov rdx, rbp
mov rcx, rdi
call fcn.1800c4fc0
mov esi, eax
test eax, eax
jne 0x1800c57d2
xor edx, edx
mov eax, 2
test r12, r12
cmove edx, eax
cmp byte [rbx + 0x11], sil
jne 0x1800c5570
movzx eax, byte [rbx + 0x10]
test al, al
je 0x1800c5570
cmp al, 1
jne 0x1800c55f2
test r12, r12
jne 0x1800c5585
xor r8d, r8d
mov rcx, rbx
call fcn.180053390
mov esi, eax
test esi, esi
jne 0x1800c57d2
mov rax, qword [rbx + 8]
mov rcx, qword [rax]
cmp byte [rcx + 9], 5
jne 0x1800c559b
test r12, r12
jne 0x1800c559b
mov dword [rdi + 0x74], r12d
mov rax, qword [rbx + 8]
xor r9d, r9d
mov esi, dword [rsp + 0x28]
mov rcx, r13
mov r8d, esi
mov edx, dword [rax + 0x34]
call fcn.180052cd0
test eax, eax
jne 0x1800c57cd
cmp dword [rsp + 0x20], eax
jne 0x1800c55db
mov edx, dword [rdi + 0x74]
xor r9d, r9d
mov r8d, esi
mov rcx, r13
call fcn.180052cd0
test eax, eax
jne 0x1800c57cd
cmp byte [rdi + 0x67], 0
jne 0x1800c57cd
movzx eax, byte [rdi + 0x6a]
test al, al
js 0x1800c5626
movsx eax, al
jmp 0x1800c562e
test r12, r12
jne 0x1800c5585
mov rax, qword [rbx]
mov edx, dword [rax + 0x2f0]
mov rax, qword [rbx + 8]
mov rcx, qword [rax]
cmp edx, dword [rcx + 0x80]
jle 0x1800c561f
cmp byte [rcx + 0xa], r12b
je 0x1800c561f
call fcn.18004bfe0
jmp 0x1800c557b
xor esi, esi
jmp 0x1800c557d
mov rcx, rbx
call fcn.180052f50
mov edx, eax
mov rcx, r13
call fcn.180052ec0
mov eax, dword [rsp + 0x24]
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typetableAND_name__sqlite_sequence_AND_coalesce_rootpage_1__0
mov r14, qword [rsp + 0x40]
mov rdx, rbp
mov r9, r14
mov byte [rdi + 0xc4], al
mov rcx, rdi
call fcn.1800c50d0
mov esi, eax
test eax, eax
jne 0x1800c57d2
mov r9, r14
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
mov rdx, rbp
mov rcx, rdi
call fcn.1800c50d0
mov esi, eax
test eax, eax
jne 0x1800c57d2
mov r9, r14
mov byte [rdi + 0xc4], al
lea r8, str.SELECTINSERT_INTO_vacuum_db.quote_name__SELECTFROM__w_.quote_name_FROM_vacuum_db.sqlite_schema_WHERE_typetableAND_coalesce_rootpage_1__0
mov rdx, rbp
mov rcx, rdi
call fcn.1800c50d0
and dword [rdi + 0x2c], 0xfffffffb
mov esi, eax
test eax, eax
jne 0x1800c57d2
mov r9, r14
lea r8, str.INSERT_INTO_vacuum_db.sqlite_schema_SELECTFROM___w_.sqlite_schema_WHERE_type_IN_view_trigger__OR_typetableAND_rootpage0_
mov rdx, rbp
mov rcx, rdi
call fcn.1800c50d0
mov esi, eax
test eax, eax
jne 0x1800c57d2
xor r14d, r14d
lea rbp, [0x180000000]
nop word [rax + rax]
cmp byte [rbx + 0x11], 0
movzx esi, byte [r14 + rbp + 0x1a19e8]
mov r15, qword [rbx + 8]
je 0x1800c5704
inc dword [rbx + 0x14]
cmp byte [rbx + 0x12], 0
jne 0x1800c5704
mov rcx, rbx
call fcn.18004fec0
cmp esi, 0xf
jne 0x1800c5717
mov rax, qword [r15]
mov esi, dword [rbx + 0x1c]
add esi, dword [rax + 0x84]
jmp 0x1800c572b
mov rax, qword [r15 + 0x18]
lea edx, [rsi*4 + 0x24]
mov rcx, qword [rax + 0x50]
mov esi, dword [rdx + rcx]
bswap esi
cmp byte [rbx + 0x11], 0
je 0x1800c573f
sub dword [rbx + 0x14], 1
jne 0x1800c573f
mov rcx, rbx
call fcn.18004fe90
movzx r8d, byte [r14 + rbp + 0x1a19e9]
mov rcx, r13
movzx edx, byte [r14 + rbp + 0x1a19e8]
add r8d, esi
call fcn.18005c030
mov esi, eax
test eax, eax
jne 0x1800c57d2
add r14, 2
cmp r14, 0xa
jl 0x1800c56e0
test r12, r12
jne 0x1800c5786
mov rdx, r13
mov rcx, rbx
call fcn.18005e680
mov esi, eax
test eax, eax
jne 0x1800c57d2
mov rcx, r13
call fcn.180054530
mov esi, eax
test eax, eax
jne 0x1800c57d2
test r12, r12
jne 0x1800c57d2
mov rcx, r13
call fcn.180052f50
mov edx, eax
mov rcx, rbx
call fcn.180052ec0
mov rcx, r13
call fcn.180052dd0
mov rcx, qword [r13 + 8]
lea r9d, [rsi + 1]
mov r8d, eax
mov edx, dword [rcx + 0x34]
mov rcx, rbx
call fcn.180052cd0
mov esi, eax
jmp 0x1800c57d2
mov esi, 7
mov eax, dword [rsp + 0x30]
mov r9d, 1
mov dword [rdi + 0x2c], eax
xor r8d, r8d
mov rax, qword [rsp + 0x48]
or edx, 0xffffffff
mov qword [rdi + 0x30], rax
mov rcx, rbx
mov rax, qword [rsp + 0x50]
mov qword [rdi + 0x78], rax
mov rax, qword [rsp + 0x58]
mov qword [rdi + 0x80], rax
movzx eax, byte [rsp + 0x98]
mov byte [rdi + 0x6e], al
mov byte [rdi + 0xc4], 0
call fcn.180052cd0
mov rbx, qword [rsp + 0x38]
mov r15, qword [rsp + 0xa8]
mov byte [rdi + 0x65], 1
test rbx, rbx
je 0x1800c584c
mov rcx, qword [rbx + 8]
call fcn.180052a20
mov qword [rbx + 8], 0
mov qword [rbx + 0x18], 0
mov rcx, rdi
call fcn.18008e490
mov eax, esi
mov rsi, qword [rsp + 0x90]
mov r13, qword [rsp + 0xa0]
add rsp, 0x60
pop r14
pop r12
pop rdi
pop rbp
pop rbx
ret