Function at 0x4df9d0
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc8
mov r12, rdx
mov r13, rcx
movsxd rbx, r8d
mov rsi, r9
cmp byte [r12 + 0x65], 0
lea rdx, str.cannot_VACUUM_from_within_a_transaction
je 0x4dfa3a
cmp dword [r12 + 0xd8], 1
lea rdx, str.cannot_VACUUM___SQL_statements_in_progress
jg 0x4dfa3a
mov ebp, dword [r12 + 0x4c]
test r9, r9
je 0x4dfc08
movzx eax, word [r9 + 0x14]
lea rdx, [0x0061f9c0]
and eax, 0x3f
cmp byte [rdx + rax], 3
je 0x4dfa78
lea rdx, str.non_text_filename
mov rcx, r12
call fcn.0042dfb0
mov rdx, qword [r13]
mov rbx, rax
test rdx, rdx
je 0x4dfa56
mov rcx, r12
call fcn.004235b0
mov qword [r13], rbx
mov edi, 1
mov eax, edi
add rsp, 0xc8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r9
call fcn.0042a6c0
mov r9, rax
mov eax, dword [r12 + 0x4c]
and eax, 0xfffffffe
or eax, 6
mov dword [r12 + 0x4c], eax
mov eax, dword [r12 + 0x2c]
mov rcx, qword [r12 + 0x78]
shl rbx, 5
movabs rdx, 0xfffffffeefffafff
mov rdi, qword [r12 + 0x30]
mov r14d, dword [r12 + 0x28]
lea r8, str.ATTACH__Q_AS_vacuum_db
mov dword [rsp + 0x38], eax
or eax, 6
mov dword [r12 + 0x2c], eax
mov rax, qword [r12 + 0x20]
and rdx, rdi
mov qword [rsp + 0x28], rcx
mov rcx, qword [r12 + 0x80]
or rdx, 0x201
add rax, rbx
mov qword [rsp + 0x20], rdi
mov qword [rsp + 0x30], rcx
movzx ecx, byte [r12 + 0x6e]
mov byte [r12 + 0x6e], 0
mov r15, qword [rax + 8]
mov rdi, qword [rax]
mov qword [r12 + 0x30], rdx
mov rdx, r13
mov rax, qword [r15 + 8]
mov byte [rsp + 0x3f], cl
mov rcx, r12
mov qword [rsp + 0x48], rdi
mov rax, qword [rax]
mov dword [rsp + 0x50], r14d
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x40], rax
call fcn.004df850
mov dword [r12 + 0x4c], ebp
mov edi, eax
test eax, eax
jne 0x4dffb8
movsxd rbp, r14d
mov rax, qword [r12 + 0x20]
shl rbp, 5
add rbp, rax
mov r14, qword [rbp + 8]
test rsi, rsi
je 0x4e0090
mov rdx, qword [r14 + 8]
mov rdx, qword [rdx]
mov rcx, qword [rdx + 0x48]
mov qword [rsp + 0x70], 0
mov r9, qword [rcx]
test r9, r9
je 0x4dfb9e
lea r8, [rsp + 0x70]
mov rdx, r8
call qword [r9 + 0x30]
test eax, eax
jne 0x4e0010
cmp qword [rsp + 0x70], 0
jg 0x4e0010
mov rax, qword [r12 + 0x20]
mov edx, dword [r12 + 0x30]
or dword [r12 + 0x2c], 8
movzx edi, byte [rax + rbx + 0x10]
and edx, 0x38
or edi, edx
or edi, 0x20
cmp byte [r15 + 0x11], 0
je 0x4e0070
mov eax, dword [r15 + 0x14]
cmp byte [r15 + 0x12], 0
lea edx, [rax + 1]
mov dword [r15 + 0x14], edx
jne 0x4dfc18
mov rcx, r15
call fcn.0040d4e0
mov rcx, qword [r15 + 8]
movzx eax, byte [rcx + 0x26]
mov r8d, dword [rcx + 0x34]
sub r8d, dword [rcx + 0x38]
cmp byte [r15 + 0x11], 0
mov dword [rsp + 0x58], eax
mov dword [rsp + 0x54], r8d
je 0x4dfc42
mov eax, dword [r15 + 0x14]
sub eax, 1
jmp 0x4dfc31
lea r9, [0x00617534]
jmp 0x4dfa93
mov rcx, qword [r15 + 8]
movzx edx, byte [rcx + 0x26]
mov r8d, dword [rcx + 0x34]
sub r8d, dword [rcx + 0x38]
mov dword [rsp + 0x58], edx
mov dword [rsp + 0x54], r8d
mov dword [r15 + 0x14], eax
test eax, eax
jne 0x4dfc42
lea rdx, [r15 + 0x12]
call fcn.0040d4c0
mov rax, qword [r12 + 0x20]
mov rax, qword [rax + rbx + 0x18]
mov rcx, r14
mov edx, dword [rax + 0x74]
call fcn.00412e60
movzx ecx, byte [r15 + 0x11]
mov rbx, qword [r15 + 8]
test cl, cl
je 0x4e0048
mov edx, dword [r15 + 0x14]
cmp byte [r15 + 0x12], 0
lea eax, [rdx + 1]
mov dword [r15 + 0x14], eax
jne 0x4dff70
mov rcx, r15
call fcn.0040d4e0
mov rax, qword [rbx]
movzx ecx, byte [r15 + 0x11]
mov r9, qword [rax + 0x120]
movsxd rax, dword [r9 + 0x1c]
mov r8d, dword [r9 + 0x20]
test eax, eax
js 0x4dff8a
cmp eax, r8d
cmovge r8d, eax
test cl, cl
je 0x4dfce0
mov eax, dword [r15 + 0x14]
lea edx, [rax - 1]
mov dword [r15 + 0x14], edx
test edx, edx
jne 0x4dfce0
mov rcx, qword [r15 + 8]
lea rdx, [r15 + 0x12]
mov dword [rsp + 0x5c], r8d
call fcn.0040d4c0
mov r8d, dword [rsp + 0x5c]
nop word cs:[rax + rax]
mov edx, r8d
mov rcx, r14
call fcn.00413220
mov edx, edi
mov rcx, r14
call fcn.00412650
lea r8, str.BEGIN
mov rdx, r13
mov rcx, r12
call fcn.004df600
mov edi, eax
test eax, eax
jne 0x4dfef0
xor r8d, r8d
test rsi, rsi
je 0x4e00e0
xor edx, edx
mov rcx, r15
call fcn.0047fc50
mov edi, eax
test eax, eax
jne 0x4dfef0
mov byte [rsp + 0x5c], 0
mov rax, qword [r15 + 8]
mov esi, dword [rsp + 0x58]
mov ebx, dword [rsp + 0x54]
mov rcx, r14
mov edx, dword [rax + 0x34]
cmp esi, ebx
cmovge ebx, esi
xor r9d, r9d
mov r8d, ebx
call fcn.00420160
test eax, eax
jne 0x4e00d0
movabs rax, 0xff000000ff
test qword [rsp + 0x40], rax
je 0x4e00b0
cmp byte [r12 + 0x67], 0
jne 0x4e00d0
movzx ebx, byte [r12 + 0x6a]
test bl, bl
js 0x4e011b
setne dil
movzx eax, byte [r14 + 0x11]
mov rsi, qword [r14 + 8]
test al, al
je 0x4dfdb9
add dword [r14 + 0x14], 1
cmp byte [r14 + 0x12], 0
jne 0x4dfdb9
mov rcx, r14
call fcn.0040d4e0
movzx eax, byte [r14 + 0x11]
test byte [rsi + 0x28], 2
je 0x4dfdc5
cmp byte [rsi + 0x21], dil
jne 0x4dfdd0
mov byte [rsi + 0x21], dil
cmp bl, 2
sete byte [rsi + 0x22]
test al, al
je 0x4dfddf
sub dword [r14 + 0x14], 1
je 0x4e018a
movzx eax, byte [rsp + 0x50]
mov rsi, qword [rsp + 0x48]
mov rdx, r13
mov rcx, r12
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typetableAND_name__sqlite_sequence_AND_coalesce_rootpage_1__0
mov byte [r12 + 0xc4], al
mov r9, rsi
call fcn.004df850
mov edi, eax
test eax, eax
jne 0x4dfef0
mov r9, rsi
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
mov rdx, r13
mov rcx, r12
call fcn.004df850
mov edi, eax
test eax, eax
jne 0x4dfef0
mov r9, rsi
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, r13
mov rcx, r12
mov byte [r12 + 0xc4], 0
call fcn.004df850
and dword [r12 + 0x2c], 0xfffffffb
mov edi, eax
test eax, eax
jne 0x4dfef0
mov r9, rsi
lea r8, str.INSERT_INTO_vacuum_db.sqlite_schema_SELECTFROM___w_.sqlite_schema_WHERE_type_IN_view_trigger__OR_typetableAND_rootpage0_
mov rdx, r13
mov rcx, r12
call fcn.004df850
mov edi, eax
test eax, eax
jne 0x4dfef0
lea rbx, [rsp + 0x6c]
lea r13, [0x0061e298]
mov qword [rsp + 0x40], rbp
lea rsi, [r13 + 0xa]
mov rbp, rbx
mov rbx, r14
movzx r14d, byte [r13]
mov r8, rbp
mov rcx, r15
mov edx, r14d
call fcn.00412dc0
movzx r8d, byte [r13 + 1]
mov edx, r14d
mov rcx, rbx
add r8d, dword [rsp + 0x6c]
call fcn.0047f910
mov edi, eax
test eax, eax
jne 0x4e01df
add r13, 2
cmp r13, rsi
jne 0x4dfe93
cmp byte [rsp + 0x5c], 0
mov rbp, qword [rsp + 0x40]
mov r14, rbx
jne 0x4e01e9
mov rcx, rbx
call fcn.00488d40
mov edi, eax
nop dword [rax + rax]
mov eax, dword [rsp + 0x38]
mov r9d, 1
xor r8d, r8d
mov rcx, r15
movq xmm0, qword [rsp + 0x28]
mov edx, 0xffffffff
mov byte [r12 + 0xc4], 0
mov dword [r12 + 0x2c], eax
mov rax, qword [rsp + 0x20]
movhps xmm0, qword [rsp + 0x30]
mov qword [r12 + 0x30], rax
movzx eax, byte [rsp + 0x3f]
movups xmmword [r12 + 0x78], xmm0
mov byte [r12 + 0x6e], al
call fcn.00420160
mov byte [r12 + 0x65], 1
mov rcx, qword [rbp + 8]
call fcn.0048c8b0
mov qword [rbp + 8], 0
mov qword [rbp + 0x18], 0
mov rcx, r12
call fcn.00427660
jmp 0x4dfa5f
mov rax, qword [rbx]
mov r9, qword [rax + 0x120]
movsxd rax, dword [r9 + 0x1c]
mov r8d, dword [r9 + 0x20]
test eax, eax
jns 0x4e00a0
neg rax
mov edx, dword [r9 + 0x28]
add edx, dword [r9 + 0x24]
shl rax, 0xa
movsxd r9, edx
cqo
idiv r9
mov edx, 0x3b9aca00
cmp rax, 0x3b9aca00
cmovg rax, rdx
jmp 0x4dfca5
mov eax, dword [rsp + 0x38]
mov r9d, 1
xor r8d, r8d
mov rcx, r15
movq xmm0, qword [rsp + 0x28]
mov edx, 0xffffffff
mov byte [r12 + 0xc4], 0
mov dword [r12 + 0x2c], eax
mov rax, qword [rsp + 0x20]
movhps xmm0, qword [rsp + 0x30]
mov qword [r12 + 0x30], rax
movzx eax, byte [rsp + 0x3f]
movups xmmword [r12 + 0x78], xmm0
mov byte [r12 + 0x6e], al
call fcn.00420160
mov byte [r12 + 0x65], 1
jmp 0x4dff5c
lea rdx, str.output_file_already_exists
mov rcx, r12
call fcn.0042dfb0
mov rdx, qword [r13]
mov rbx, rax
test rdx, rdx
je 0x4e0033
mov rcx, r12
call fcn.004235b0
mov qword [r13], rbx
mov edi, 1
jmp 0x4dfef0
mov rax, qword [rbx]
mov r9, qword [rax + 0x120]
movsxd rax, dword [r9 + 0x1c]
mov r8d, dword [r9 + 0x20]
test eax, eax
js 0x4dff8a
cmp eax, r8d
cmovge r8d, eax
jmp 0x4dfce0
mov rdx, qword [r15 + 8]
movzx ecx, byte [rdx + 0x26]
mov r8d, dword [rdx + 0x34]
sub r8d, dword [rdx + 0x38]
mov dword [rsp + 0x58], ecx
mov dword [rsp + 0x54], r8d
jmp 0x4dfc47
mov edi, 0x21
jmp 0x4dfbb6
cmp eax, r8d
cmovge r8d, eax
jmp 0x4dfcb7
mov edx, dword [r12 + 0x74]
xor r9d, r9d
mov r8d, ebx
mov rcx, r14
call fcn.00420160
test eax, eax
je 0x4dfd75
nop dword [rax + rax]
mov edi, 7
jmp 0x4dfef0
mov edx, 2
mov rcx, r15
call fcn.0047fc50
mov edi, eax
test eax, eax
jne 0x4dfef0
mov rax, qword [r15 + 8]
mov byte [rsp + 0x5c], 1
mov rdx, qword [rax]
cmp byte [rdx + 9], 5
jne 0x4dfd3a
mov dword [r12 + 0x74], 0
jmp 0x4dfd3a
cmp byte [r15 + 0x11], 0
je 0x4e01ba
mov eax, dword [r15 + 0x14]
cmp byte [r15 + 0x12], 0
lea edx, [rax + 1]
mov dword [r15 + 0x14], edx
jne 0x4e019c
mov rcx, r15
xor edi, edi
call fcn.0040d4e0
mov rcx, qword [r15 + 8]
movzx eax, byte [r15 + 0x11]
movzx ebx, byte [rcx + 0x21]
test bl, bl
je 0x4e0161
cmp byte [rcx + 0x22], 1
mov edi, 1
sbb ebx, ebx
add ebx, 2
test al, al
je 0x4dfd93
mov eax, dword [r15 + 0x14]
sub eax, 1
mov dword [r15 + 0x14], eax
test eax, eax
jne 0x4dfd93
lea rdx, [r15 + 0x12]
call fcn.0040d4c0
jmp 0x4dfd93
mov rcx, qword [r14 + 8]
lea rdx, [r14 + 0x12]
call fcn.0040d4c0
jmp 0x4dfddf
mov rcx, qword [r15 + 8]
xor edi, edi
movzx ebx, byte [rcx + 0x21]
test bl, bl
je 0x4e0170
cmp byte [rcx + 0x22], 1
mov edi, 1
sbb ebx, ebx
add ebx, 2
jmp 0x4e0169
mov rax, qword [r15 + 8]
xor edi, edi
movzx ebx, byte [rax + 0x21]
test bl, bl
je 0x4dfd93
cmp byte [rax + 0x22], 1
mov edi, 1
sbb ebx, ebx
add ebx, 2
jmp 0x4dfd93
mov rbp, qword [rsp + 0x40]
jmp 0x4dfef0
cmp byte [r15 + 0x11], 0
je 0x4e01f8
mov rcx, r15
call fcn.0040d5e0
cmp byte [r14 + 0x11], 0
je 0x4e0207
mov rcx, r14
call fcn.0040d5e0
mov rax, qword [r15 + 8]
lea r8, [rsp + 0x70]
mov rax, qword [rax]
mov rcx, qword [rax + 0x48]
mov r9, qword [rcx]
test r9, r9
je 0x4e0256
mov rdx, qword [r14 + 8]
lea r8, [rsp + 0x70]
mov qword [rsp + 0x40], r8
movsxd rax, dword [rdx + 0x34]
mov edx, dword [rdx + 0x40]
imul rax, rdx
mov edx, 0xb
mov qword [rsp + 0x70], rax
call qword [r9 + 0x50]
mov r8, qword [rsp + 0x40]
test eax, eax
mov edi, eax
je 0x4e0256
cmp eax, 0xc
jne 0x4e02b7
mov rdi, r8
xor eax, eax
mov ecx, 0x12
mov edx, 0x7fffffff
rep stosd dword [rdi], eax
mov rcx, r8
mov qword [rsp + 0x40], r8
mov rax, qword [r14]
mov qword [rsp + 0x98], r14
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x90], rax
mov dword [rsp + 0x88], 1
call fcn.00488dd0
mov r8, qword [rsp + 0x40]
mov rcx, r8
call fcn.0048d610
mov edi, eax
test eax, eax
jne 0x4e036a
mov rax, qword [r15 + 8]
and word [rax + 0x28], 0xfffd
cmp byte [r14 + 0x11], 0
je 0x4e02c9
sub dword [r14 + 0x14], 1
je 0x4e038a
cmp byte [r15 + 0x11], 0
je 0x4e02db
sub dword [r15 + 0x14], 1
je 0x4e03bc
test edi, edi
jne 0x4dfef0
mov rcx, r14
call fcn.00488d40
mov edi, eax
test eax, eax
jne 0x4dfef0
mov rcx, r14
call fcn.00412780
mov rcx, r15
mov edx, eax
call fcn.00412d20
cmp byte [r14 + 0x11], 0
je 0x4e03ac
add dword [r14 + 0x14], 1
cmp byte [r14 + 0x12], 0
jne 0x4e039c
mov rcx, r14
call fcn.0040d4e0
mov rcx, qword [r14 + 8]
mov ebx, dword [rcx + 0x34]
sub ebx, dword [rcx + 0x38]
cmp byte [r14 + 0x11], 0
movzx esi, byte [rcx + 0x26]
je 0x4e0346
sub dword [r14 + 0x14], 1
je 0x4e03ce
mov rax, qword [r14 + 8]
cmp esi, ebx
mov r9d, 1
mov rcx, r15
cmovge ebx, esi
mov edx, dword [rax + 0x34]
mov r8d, ebx
call fcn.00420160
mov edi, eax
jmp 0x4dfef0
mov rax, qword [rsp + 0x78]
mov rax, qword [rax + 8]
mov rcx, qword [rax]
cmp byte [rcx + 0x10], 0
jne 0x4e02b7
call fcn.004124a0
jmp 0x4e02b7
mov rcx, qword [r14 + 8]
lea rdx, [r14 + 0x12]
call fcn.0040d4c0
jmp 0x4e02c9
mov rcx, qword [r14 + 8]
mov ebx, dword [rcx + 0x34]
movzx esi, byte [rcx + 0x26]
sub ebx, dword [rcx + 0x38]
jmp 0x4e033b
mov rax, qword [r14 + 8]
mov ebx, dword [rax + 0x34]
movzx esi, byte [rax + 0x26]
sub ebx, dword [rax + 0x38]
jmp 0x4e0346
mov rcx, qword [r15 + 8]
lea rdx, [r15 + 0x12]
call fcn.0040d4c0
jmp 0x4e02db
lea rdx, [r14 + 0x12]
call fcn.0040d4c0
jmp 0x4e0346