Function at 0x1400d97f0
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
movaps xmmword [rsp + 0xa0], xmm6
mov rbx, rdx
mov rdi, rcx
movsxd rsi, r8d
mov rbp, r9
cmp byte [rbx + 0x65], 0
lea rdx, str.cannot_VACUUM_from_within_a_transaction
je 0x1400d985a
cmp dword [rbx + 0xd0], 1
jg 0x1400d9a08
mov r13d, dword [rbx + 0x4c]
test r9, r9
je 0x1400d9a18
movzx eax, word [r9 + 0x14]
lea rdx, [0x1401b9960]
and eax, 0x3f
cmp byte [rdx + rax], 3
je 0x1400d98a0
lea rdx, str.non_text_filename
mov rcx, rbx
call fcn.140029e80
mov rdx, qword [rdi]
mov rsi, rax
test rdx, rdx
je 0x1400d9875
mov rcx, rbx
call fcn.140016330
mov qword [rdi], rsi
mov r12d, 1
movaps xmm6, xmmword [rsp + 0xa0]
mov eax, r12d
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, r9
call fcn.14003a710
mov r9, rax
mov eax, dword [rbx + 0x4c]
and eax, 0xfffffffe
or eax, 6
mov dword [rbx + 0x4c], eax
mov eax, dword [rbx + 0x2c]
mov rcx, qword [rbx + 0x30]
shl rsi, 5
lea r8, str.ATTACH__Q_AS_vacuum_db
movzx edx, byte [rbx + 0x6e]
mov r14d, dword [rbx + 0x28]
mov byte [rbx + 0x6e], 0
mov dword [rsp + 0x28], eax
or eax, 6
movdqu xmm6, xmmword [rbx + 0x78]
mov dword [rbx + 0x2c], eax
movabs rax, 0xfffffffeefffafff
and rax, rcx
mov qword [rsp + 0x20], rcx
or rax, 0x201
mov byte [rsp + 0x2f], dl
mov rdx, rdi
mov qword [rbx + 0x30], rax
mov rax, qword [rbx + 0x20]
mov dword [rsp + 0x40], r14d
add rax, rsi
mov r15, qword [rax + 8]
mov rcx, qword [rax]
mov rax, qword [r15 + 8]
mov qword [rsp + 0x38], rcx
mov rcx, rbx
mov rax, qword [rax]
mov rax, qword [rax + 0x10]
mov qword [rsp + 0x30], rax
call fcn.1400d9630
mov dword [rbx + 0x4c], r13d
mov r12d, eax
test eax, eax
jne 0x1400d9e70
movsxd r13, r14d
mov rax, qword [rbx + 0x20]
shl r13, 5
add r13, rax
mov r14, qword [r13 + 8]
test rbp, rbp
je 0x1400d9f38
mov rdx, qword [r14 + 8]
mov rdx, qword [rdx]
mov rcx, qword [rdx + 0x48]
mov qword [rsp + 0x50], 0
mov r9, qword [rcx]
test r9, r9
je 0x1400d99a1
lea r8, [rsp + 0x50]
mov rdx, r8
call qword [r9 + 0x30]
test eax, eax
jne 0x1400d9eb8
cmp qword [rsp + 0x50], 0
jg 0x1400d9eb8
mov rax, qword [rbx + 0x20]
mov ecx, dword [rbx + 0x30]
or dword [rbx + 0x2c], 8
movzx edx, byte [rax + rsi + 0x10]
and ecx, 0x38
or edx, ecx
or edx, 0x20
mov r12d, edx
cmp byte [r15 + 0x11], 0
je 0x1400d9ef0
mov eax, dword [r15 + 0x14]
cmp byte [r15 + 0x12], 0
lea edx, [rax + 1]
mov dword [r15 + 0x14], edx
jne 0x1400d9a28
mov rcx, r15
call fcn.140007690
mov rax, qword [r15 + 8]
movzx ecx, byte [rax + 0x26]
mov edx, dword [rax + 0x34]
sub edx, dword [rax + 0x38]
cmp byte [r15 + 0x11], 0
mov dword [rsp + 0x44], ecx
mov dword [rsp + 0x48], edx
je 0x1400d9a4a
mov eax, dword [r15 + 0x14]
sub eax, 1
jmp 0x1400d9a3e
lea rdx, str.cannot_VACUUM___SQL_statements_in_progress
jmp 0x1400d985a
lea r9, [0x1401b1370]
jmp 0x1400d98b7
mov rdx, qword [r15 + 8]
movzx ecx, byte [rdx + 0x26]
mov dword [rsp + 0x44], ecx
mov ecx, dword [rdx + 0x34]
sub ecx, dword [rdx + 0x38]
mov dword [rsp + 0x48], ecx
mov dword [r15 + 0x14], eax
test eax, eax
je 0x1400d9f48
mov rax, qword [rbx + 0x20]
mov rax, qword [rax + rsi + 0x18]
mov rcx, r14
mov edx, dword [rax + 0x74]
call fcn.14000d5e0
movzx r8d, byte [r15 + 0x11]
mov rsi, qword [r15 + 8]
test r8b, r8b
je 0x1400d9e28
mov r9d, dword [r15 + 0x14]
cmp byte [r15 + 0x12], 0
lea eax, [r9 + 1]
mov dword [r15 + 0x14], eax
jne 0x1400d9f10
mov rcx, r15
call fcn.140007690
mov rax, qword [rsi]
movzx r8d, byte [r15 + 0x11]
mov rcx, qword [rax + 0x120]
movsxd rax, dword [rcx + 0x1c]
test eax, eax
js 0x1400d9e46
mov edx, dword [rcx + 0x20]
cmp eax, edx
cmovge edx, eax
test r8b, r8b
je 0x1400d9acc
mov eax, dword [r15 + 0x14]
lea r9d, [rax - 1]
mov dword [r15 + 0x14], r9d
test r9d, r9d
je 0x1400d9f58
mov rcx, r14
call fcn.14000d750
mov edx, r12d
mov rcx, r14
call fcn.14000dc70
lea r8, str.BEGIN
mov rdx, rdi
mov rcx, rbx
call fcn.1400d9410
mov r12d, eax
test eax, eax
jne 0x1400d9dc0
test rbp, rbp
mov rcx, r15
sete dl
sete sil
xor r8d, r8d
movzx edx, dl
add edx, edx
call fcn.140086870
mov r12d, eax
test eax, eax
jne 0x1400d9dc0
mov rax, qword [r15 + 8]
mov rdx, qword [rax]
cmp byte [rdx + 9], 5
jne 0x1400d9b40
test sil, sil
je 0x1400d9b40
mov dword [rbx + 0x74], 0
mov rax, qword [r15 + 8]
nop
mov ecx, dword [rsp + 0x44]
mov esi, dword [rsp + 0x48]
mov edx, dword [rax + 0x34]
cmp ecx, esi
cmovge esi, ecx
xor r9d, r9d
mov rcx, r14
mov r8d, esi
call fcn.14001c670
test eax, eax
jne 0x1400d9f90
movabs rax, 0xff000000ff
test qword [rsp + 0x30], rax
je 0x1400d9f70
cmp byte [rbx + 0x67], 0
jne 0x1400d9f90
movzx esi, byte [rbx + 0x6a]
test sil, sil
js 0x1400d9f9b
setne al
cmp byte [r14 + 0x11], 0
mov r12, qword [r14 + 8]
je 0x1400d9bbd
add dword [r14 + 0x14], 1
cmp byte [r14 + 0x12], 0
jne 0x1400d9bbd
mov rcx, r14
mov byte [rsp + 0x30], al
call fcn.140007690
movzx eax, byte [rsp + 0x30]
test byte [r12 + 0x28], 2
je 0x1400d9bcc
cmp byte [r12 + 0x21], al
jne 0x1400d9bdb
mov byte [r12 + 0x21], al
cmp sil, 2
sete byte [r12 + 0x22]
cmp byte [r14 + 0x11], 0
je 0x1400d9bed
sub dword [r14 + 0x14], 1
je 0x1400da017
movzx eax, byte [rsp + 0x40]
mov rsi, qword [rsp + 0x38]
mov rdx, rdi
mov rcx, rbx
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typetableAND_name__sqlite_sequence_AND_coalesce_rootpage_1__0
mov byte [rbx + 0xc4], al
mov r9, rsi
call fcn.1400d9630
mov r12d, eax
test eax, eax
jne 0x1400d9dc0
mov r9, rsi
lea r8, str.SELECT_sql_FROM___w_.sqlite_schema_WHERE_typeindex
mov rdx, rdi
mov rcx, rbx
call fcn.1400d9630
mov r12d, eax
test eax, eax
jne 0x1400d9dc0
mov byte [rbx + 0xc4], 0
mov r9, rsi
mov rdx, rdi
mov rcx, rbx
lea r8, str.SELECTINSERT_INTO_vacuum_db.quote_name__SELECTFROM__w_.quote_name_FROM_vacuum_db.sqlite_schema_WHERE_typetableAND_coalesce_rootpage_1__0
call fcn.1400d9630
and dword [rbx + 0x2c], 0xfffffffb
mov r12d, eax
test eax, eax
jne 0x1400d9dc0
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, rdi
mov rcx, rbx
call fcn.1400d9630
mov r12d, eax
test eax, eax
jne 0x1400d9dc0
lea rdi, [0x1401b8238]
lea rsi, [rdi + 0xa]
movzx eax, byte [r15 + 0x11]
movzx edx, byte [rdi]
mov r12, qword [r15 + 8]
test al, al
je 0x1400da024
add dword [r15 + 0x14], 1
cmp byte [r15 + 0x12], 0
jne 0x1400d9cc8
mov rcx, r15
mov dword [rsp + 0x30], edx
call fcn.140007690
movzx eax, byte [r15 + 0x11]
mov edx, dword [rsp + 0x30]
cmp edx, 0xf
je 0x1400da086
mov r8, qword [r12 + 0x18]
lea ecx, [rdx*4 + 0x24]
movsxd rcx, ecx
mov r8, qword [r8 + 0x50]
mov r12d, dword [r8 + rcx]
bswap r12d
test al, al
je 0x1400d9cfa
sub dword [r15 + 0x14], 1
je 0x1400da09a
movzx r8d, byte [rdi + 1]
mov rcx, r14
add r8d, r12d
call fcn.140086630
mov r12d, eax
test eax, eax
jne 0x1400d9dc0
add rdi, 2
cmp rdi, rsi
jne 0x1400d9c93
test rbp, rbp
je 0x1400da167
cmp byte [r14 + 0x11], 0
je 0x1400d9d46
add dword [r14 + 0x14], 1
cmp byte [r14 + 0x12], 0
jne 0x1400d9d46
mov rcx, r14
call fcn.140007690
cmp byte [r14 + 0x10], 2
je 0x1400da143
cmp byte [r14 + 0x10], 0
movzx eax, byte [r14 + 0x11]
je 0x1400da0b7
test al, al
je 0x1400d9d79
add dword [r14 + 0x14], 1
cmp byte [r14 + 0x12], 0
jne 0x1400d9d79
mov rcx, r14
call fcn.140007690
cmp byte [r14 + 0x10], 2
je 0x1400da2c4
mov rcx, r14
call fcn.1400852c0
cmp byte [r14 + 0x11], 0
je 0x1400da0c4
sub dword [r14 + 0x14], 1
mov esi, 0
je 0x1400da0af
sub dword [r14 + 0x14], 1
je 0x1400da371
test esi, esi
je 0x1400da0c4
mov r12d, esi
nop dword [rax]
mov eax, dword [rsp + 0x28]
mov r9d, 1
xor r8d, r8d
mov rcx, r15
mov byte [rbx + 0xc4], 0
mov edx, 0xffffffff
mov dword [rbx + 0x2c], eax
mov rax, qword [rsp + 0x20]
movups xmmword [rbx + 0x78], xmm6
mov qword [rbx + 0x30], rax
movzx eax, byte [rsp + 0x2f]
mov byte [rbx + 0x6e], al
call fcn.14001c670
mov byte [rbx + 0x65], 1
mov rcx, qword [r13 + 8]
call fcn.140089230
mov qword [r13 + 8], 0
mov qword [r13 + 0x18], 0
mov rcx, rbx
call fcn.14001b520
jmp 0x1400d987e
mov rax, qword [rsi]
mov rcx, qword [rax + 0x120]
movsxd rax, dword [rcx + 0x1c]
mov edx, dword [rcx + 0x20]
cmp eax, edx
cmovge edx, eax
test eax, eax
jns 0x1400d9acc
neg rax
mov r9d, dword [rcx + 0x28]
add r9d, dword [rcx + 0x24]
shl rax, 0xa
movsxd r9, r9d
cqo
idiv r9
mov edx, 0x3b9aca00
cmp rax, rdx
cmovg rax, rdx
jmp 0x1400d9aaa
mov eax, dword [rsp + 0x28]
movups xmmword [rbx + 0x78], xmm6
xor r8d, r8d
mov edx, 0xffffffff
mov byte [rbx + 0xc4], 0
mov r9d, 1
mov rcx, r15
mov dword [rbx + 0x2c], eax
mov rax, qword [rsp + 0x20]
mov qword [rbx + 0x30], rax
movzx eax, byte [rsp + 0x2f]
mov byte [rbx + 0x6e], al
call fcn.14001c670
mov byte [rbx + 0x65], 1
jmp 0x1400d9e16
lea rdx, str.output_file_already_exists
mov rcx, rbx
call fcn.140029e80
mov rdx, qword [rdi]
mov rsi, rax
test rdx, rdx
je 0x1400d9eda
mov rcx, rbx
call fcn.140016330
mov qword [rdi], rsi
mov r12d, 1
jmp 0x1400d9dc0
mov rdx, qword [r15 + 8]
movzx ecx, byte [rdx + 0x26]
mov dword [rsp + 0x44], ecx
mov ecx, dword [rdx + 0x34]
sub ecx, dword [rdx + 0x38]
mov dword [rsp + 0x48], ecx
jmp 0x1400d9a4e
mov rax, qword [rsi]
mov rcx, qword [rax + 0x120]
movsxd rax, dword [rcx + 0x1c]
mov edx, dword [rcx + 0x20]
cmp eax, edx
cmovge edx, eax
test eax, eax
jns 0x1400d9abf
jmp 0x1400d9e46
mov r12d, 0x21
jmp 0x1400d99b8
mov rcx, r15
call fcn.140003320
jmp 0x1400d9a4a
mov rcx, r15
mov dword [rsp + 0x4c], edx
call fcn.140003320
mov edx, dword [rsp + 0x4c]
jmp 0x1400d9acc
mov edx, dword [rbx + 0x74]
xor r9d, r9d
mov r8d, esi
mov rcx, r14
call fcn.14001c670
test eax, eax
je 0x1400d9b7b
nop dword [rax]
mov r12d, 7
jmp 0x1400d9dc0
cmp byte [r15 + 0x11], 0
je 0x1400da060
mov edx, dword [r15 + 0x14]
cmp byte [r15 + 0x12], 0
lea eax, [rdx + 1]
mov dword [r15 + 0x14], eax
jne 0x1400da041
mov rcx, r15
call fcn.140007690
mov rdx, qword [r15 + 8]
movzx ecx, byte [r15 + 0x11]
xor eax, eax
movzx esi, byte [rdx + 0x21]
test sil, sil
je 0x1400d9fe6
cmp byte [rdx + 0x22], 1
mov eax, 1
sbb esi, esi
add esi, 2
test cl, cl
je 0x1400d9b95
mov ecx, dword [r15 + 0x14]
lea edx, [rcx - 1]
mov dword [r15 + 0x14], edx
test edx, edx
jne 0x1400d9b95
mov rcx, r15
mov byte [rsp + 0x30], al
call fcn.140003320
movzx eax, byte [rsp + 0x30]
jmp 0x1400d9b95
mov rcx, r14
call fcn.140003320
jmp 0x1400d9bed
cmp edx, 0xf
jne 0x1400d9cd1
mov rax, qword [r12]
mov r12d, dword [r15 + 0x1c]
add r12d, dword [rax + 0x84]
jmp 0x1400d9cfa
mov rcx, qword [r15 + 8]
xor eax, eax
movzx esi, byte [rcx + 0x21]
test sil, sil
je 0x1400d9ff5
cmp byte [rcx + 0x22], 1
mov eax, 1
sbb esi, esi
add esi, 2
jmp 0x1400d9fee
mov rdx, qword [r15 + 8]
xor eax, eax
movzx esi, byte [rdx + 0x21]
test sil, sil
je 0x1400d9b95
cmp byte [rdx + 0x22], 1
mov eax, 1
sbb esi, esi
add esi, 2
jmp 0x1400d9b95
mov rcx, qword [r12]
mov r12d, dword [r15 + 0x1c]
add r12d, dword [rcx + 0x84]
jmp 0x1400d9ceb
mov rcx, r15
mov dword [rsp + 0x30], edx
call fcn.140003320
mov edx, dword [rsp + 0x30]
jmp 0x1400d9cfa
mov rcx, r14
call fcn.140003320
xor esi, esi
cmp byte [r14 + 0x11], 0
jne 0x1400d9da7
test rbp, rbp
jne 0x1400d9dc0
mov rcx, r14
call fcn.14000cfb0
mov rcx, r15
mov edx, eax
call fcn.14000d2e0
cmp byte [r14 + 0x11], 0
je 0x1400da38e
add dword [r14 + 0x14], 1
cmp byte [r14 + 0x12], 0
jne 0x1400da3b2
mov rcx, r14
call fcn.140007690
mov rax, qword [r14 + 8]
mov esi, dword [rax + 0x34]
sub esi, dword [rax + 0x38]
cmp byte [r14 + 0x11], 0
movzx edi, byte [rax + 0x26]
je 0x1400da122
sub dword [r14 + 0x14], 1
je 0x1400da3a1
cmp edi, esi
mov edx, dword [rax + 0x34]
mov r9d, 1
mov rcx, r15
cmovge esi, edi
mov r8d, esi
call fcn.14001c670
mov r12d, eax
jmp 0x1400d9dc0
xor edx, edx
mov rcx, r14
call fcn.140090420
mov esi, eax
test eax, eax
je 0x1400d9d51
cmp byte [r14 + 0x11], 0
jne 0x1400d9da7
jmp 0x1400d9dba
cmp byte [r15 + 0x11], 0
je 0x1400da176
mov rcx, r15
call fcn.1400080e0
cmp byte [r14 + 0x11], 0
je 0x1400da185
mov rcx, r14
call fcn.1400080e0
mov rax, qword [r15 + 8]
lea r8, [rsp + 0x50]
mov rax, qword [rax]
mov rcx, qword [rax + 0x48]
cmp qword [rcx], 0
je 0x1400da1dd
mov rdx, qword [r14 + 8]
lea r8, [rsp + 0x50]
movsxd rax, dword [rdx + 0x34]
mov edx, dword [rdx + 0x40]
imul rax, rdx
mov qword [rsp + 0x50], rax
mov rax, qword [rcx]
test rax, rax
je 0x1400da1dd
mov qword [rsp + 0x30], r8
mov edx, 0xb
call qword [rax + 0x50]
mov r8, qword [rsp + 0x30]
test eax, eax
mov esi, eax
je 0x1400da1dd
cmp eax, 0xc
jne 0x1400da29a
mov rdi, r8
xor eax, eax
mov ecx, 0x12
mov edx, 0x7fffffff
rep stosd dword [rdi], eax
movq xmm1, r14
mov rcx, r8
mov qword [rsp + 0x30], r8
movq xmm0, qword [r14]
mov qword [rsp + 0x58], r15
mov dword [rsp + 0x68], 1
punpcklqdq xmm0, xmm1
movaps xmmword [rsp + 0x70], xmm0
call fcn.1400907f0
mov rcx, qword [rsp + 0x30]
call fcn.14008a170
mov esi, eax
test eax, eax
jne 0x1400da25f
mov rax, qword [r15 + 8]
and word [rax + 0x28], 0xfffd
cmp byte [r14 + 0x11], 0
je 0x1400da37e
mov rcx, r14
call fcn.140008100
cmp byte [r15 + 0x11], 0
je 0x1400d9d2b
mov rcx, r15
call fcn.140008100
jmp 0x1400d9d2b
mov rax, qword [rsp + 0x58]
mov rax, qword [rax + 8]
mov rax, qword [rax]
cmp byte [rax + 0x10], 0
jne 0x1400da29a
add dword [rax + 0x84], 1
mov rdx, qword [rax + 0x70]
jmp 0x1400da289
mov dword [rdx + 0x18], 1
mov rdx, qword [rdx + 0x40]
test rdx, rdx
jne 0x1400da27e
mov rcx, qword [rax + 0x120]
call fcn.14000d820
cmp byte [r14 + 0x11], 0
je 0x1400da2a9
mov rcx, r14
call fcn.140008100
cmp byte [r15 + 0x11], 0
je 0x1400d9dba
mov rcx, r15
mov r12d, esi
call fcn.140008100
jmp 0x1400d9dc0
mov rdi, qword [r14 + 8]
mov rcx, qword [rdi]
mov esi, dword [rcx + 0x30]
test esi, esi
jne 0x1400da34e
add dword [rcx + 0x84], 1
cmp byte [rcx + 0x15], 2
jne 0x1400da2ef
cmp byte [rcx + 8], 0
je 0x1400da2ef
cmp byte [rcx + 9], 1
je 0x1400da3c5
movzx edx, byte [rcx + 0x18]
mov r8d, 1
mov qword [rsp + 0x30], rcx
call fcn.140014000
mov rcx, qword [rsp + 0x30]
mov esi, eax
movzx eax, al
cmp sil, 0xd
je 0x1400da339
cmp eax, 0xa
je 0x1400da339
test esi, esi
jne 0x1400da34e
sub dword [r14 + 0x1c], 1
mov rcx, qword [rdi + 0x60]
mov byte [rdi + 0x24], 1
call fcn.14000fe70
xor eax, eax
mov qword [rdi + 0x60], rax
jmp 0x1400d9d84
lea rax, [0x140003240]
mov dword [rcx + 0x30], esi
mov byte [rcx + 0x15], 6
mov qword [rcx + 0x110], rax
cmp byte [r14 + 0x11], 0
je 0x1400d9dba
sub dword [r14 + 0x14], 1
jne 0x1400d9da7
mov rcx, r14
call fcn.140003320
jmp 0x1400da157
mov rcx, r14
call fcn.140003320
jmp 0x1400d9db2
cmp byte [r15 + 0x11], 0
je 0x1400d9d2b
jmp 0x1400da252
mov rax, qword [r14 + 8]
mov esi, dword [rax + 0x34]
movzx edi, byte [rax + 0x26]
sub esi, dword [rax + 0x38]
jmp 0x1400da122
mov rcx, r14
call fcn.140003320
mov rax, qword [r14 + 8]
jmp 0x1400da122
mov rax, qword [r14 + 8]
mov esi, dword [rax + 0x34]
movzx edi, byte [rax + 0x26]
sub esi, dword [rax + 0x38]
jmp 0x1400da117
mov byte [rcx + 0x15], 1
jmp 0x1400da31c