Function at 0x18008f690
Capabilities:
Reference sql statements

Disassembly:
mov qword [rsp + 0x10], rdx
push rbx
push rsi
sub rsp, 0x78
cmp dword [rcx + 0x30], 0
mov rbx, rcx
mov rsi, qword [rcx]
jne 0x18008fc26
mov qword [rsp + 0x70], rbp
xor edx, edx
mov qword [rsp + 0x60], r12
mov ebp, 0xffff8000
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x50], r14
mov r14, qword [rcx + 0x160]
mov qword [rsp + 0x48], r15
mov rcx, qword [r14 + 0x60]
test rcx, rcx
je 0x18008f6fb
mov rax, qword [rsi + 0x20]
mov ebp, edx
add rax, 0x18
cmp qword [rax], rcx
je 0x18008f6fb
nop word [rax + rax]
inc ebp
lea rax, [rax + 0x20]
cmp qword [rax], rcx
jne 0x18008f6f0
mov rax, qword [rsi + 0x20]
mov r15, qword [r14]
movsxd rcx, ebp
add r15, 0x10
shl rcx, 5
mov qword [rsp + 0x68], rdi
mov r12, qword [rcx + rax]
movsx rax, word [r14 + 0x36]
mov qword [rsp + 0xa0], r12
lea r13, [rax + rax*2]
mov rax, qword [r14 + 8]
lea r13, [r13 - 3]
lea r13, [rax + r13*8]
movzx eax, word [r13 + 0x10]
mov qword [rsp + 0xa8], r13
test ax, ax
jne 0x18008f74a
mov rdi, rdx
jmp 0x18008f775
cmp byte [r14 + 0x3f], dl
je 0x18008f755
mov rdi, rdx
jmp 0x18008f775
mov rdi, qword [r14 + 0x50]
test rdi, rdi
jne 0x18008f763
mov rdi, rdx
jmp 0x18008f775
cmp dword [rdi], eax
jge 0x18008f76c
mov rdi, rdx
jmp 0x18008f775
shl rax, 5
mov rdi, qword [rax + rdi - 0x18]
mov r8, r12
mov rdx, r15
mov rcx, rsi
call fcn.1800335c0
mov r8, r12
mov qword [rsp + 0x20], 0
mov edx, 0x1a
mov rcx, rbx
mov r9, qword [rax]
call fcn.18009f8d0
test eax, eax
jne 0x18008fc08
movzx eax, word [r13 + 0x12]
test al, 1
je 0x18008f7c4
lea rdx, str.Cannot_add_a_PRIMARY_KEY_column
mov rcx, rbx
call fcn.180030740
jmp 0x18008fc08
cmp qword [r14 + 0x10], 0
je 0x18008f7df
lea rdx, str.Cannot_add_a_UNIQUE_column
mov rcx, rbx
call fcn.180030740
jmp 0x18008fc08
test al, 0x60
jne 0x18008f9bd
test rdi, rdi
je 0x18008f7fc
mov rax, qword [rdi + 0x10]
cmp byte [rax], 0x79
mov eax, 0
cmove rdi, rax
mov eax, dword [rsi + 0x30]
bt rax, 0xe
jae 0x18008f830
cmp qword [r14 + 0x48], 0
je 0x18008f830
test rdi, rdi
je 0x18008f830
mov r9, r12
mov qword [rsp + 0x20], r15
lea r8, str.Cannot_add_a_REFERENCES_column_with_non_NULL_default_value
mov rcx, rbx
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
call fcn.1800333a0
test byte [r13 + 8], 0xf
je 0x18008f848
test rdi, rdi
jne 0x18008f851
lea r8, str.Cannot_add_a_NOT_NULL_column_with_default_value_NULL
jmp 0x18008f9c8
test rdi, rdi
je 0x18008f9df
xor eax, eax
mov r9b, 0x41
mov qword [rsp + 0x90], rax
mov r8b, 1
lea rax, [rsp + 0x90]
mov rdx, rdi
mov rcx, rsi
mov qword [rsp + 0x20], rax
call fcn.180057b80
test eax, eax
jne 0x18008fc08
mov rdi, qword [rsp + 0x90]
test rdi, rdi
jne 0x18008f8bd
mov r9, r12
mov qword [rsp + 0x20], r15
lea r8, str.Cannot_add_a_column_with_non_constant_default
mov rcx, rbx
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
call fcn.1800333a0
mov rdi, qword [rsp + 0x90]
test rdi, rdi
je 0x18008f9df
mov eax, 0x9000
test word [rdi + 0x14], ax
jne 0x18008f8ce
cmp dword [rdi + 0x20], 0
je 0x18008f8d6
mov rcx, rdi
call fcn.180056ba0
mov rcx, qword [rdi + 0x18]
test rcx, rcx
je 0x18008f93d
cmp rdi, qword [rcx + 0x1e0]
jae 0x18008f926
cmp rdi, qword [rcx + 0x1d0]
jb 0x18008f907
mov rax, qword [rcx + 0x1c8]
mov qword [rdi], rax
mov qword [rcx + 0x1c8], rdi
jmp 0x18008f9df
cmp rdi, qword [rcx + 0x1d8]
jb 0x18008f926
mov rax, qword [rcx + 0x1b8]
mov qword [rdi], rax
mov qword [rcx + 0x1b8], rdi
jmp 0x18008f9df
cmp qword [rcx + 0x2f8], 0
je 0x18008f93d
mov rdx, rdi
call fcn.180008610
jmp 0x18008f9df
cmp dword [0x1800fdbd0], 0
je 0x18008f9ab
mov rcx, qword [0x1800ffa60]
test rcx, rcx
je 0x18008f95f
mov rax, qword [0x1800fdc50]
call qword [case.0x180005c07.0]
mov rax, qword [0x1800fdc08]
mov rcx, rdi
call qword [case.0x180005c07.0]
dec qword [0x1800ffac8]
movsxd rcx, eax
sub qword [0x1800ffa80], rcx
mov rcx, rdi
mov rax, qword [0x1800fdbf8]
call qword [case.0x180005c07.0]
mov rcx, qword [0x1800ffa60]
test rcx, rcx
je 0x18008f9df
mov rax, qword [0x1800fdc60]
call qword [case.0x180005c07.0]
jmp 0x18008f9df
mov rax, qword [0x1800fdbf8]
mov rcx, rdi
call qword [case.0x180005c07.0]
jmp 0x18008f9df
test al, 0x40
je 0x18008f9df
lea r8, str.cannot_add_a_STORED_column
mov r9, r12
mov qword [rsp + 0x20], r15
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov rcx, rbx
call fcn.1800333a0
mov rax, qword [rsp + 0x98]
mov r12, qword [rax]
mov r13d, dword [rax + 8]
test r12, r12
je 0x18008fae7
lea rdx, [r13 + 1]
mov rcx, rsi
call fcn.180008a30
mov rdi, rax
test rax, rax
je 0x18008fae7
mov r8d, r13d
mov rdx, r12
mov rcx, rax
call fcn.1800d6a70
mov rdx, qword [rsp + 0x98]
mov byte [rdi + r13], 0
mov ecx, dword [rdx + 8]
dec ecx
add rcx, rdi
cmp rcx, rdi
jbe 0x18008fa58
lea rdx, [0x1800e5910]
nop
movzx eax, byte [rcx]
cmp al, 0x3b
je 0x18008fa4d
test byte [rax + rdx], 1
je 0x18008fa58
mov byte [rcx], 0
dec rcx
cmp rcx, rdi
ja 0x18008fa40
mov r9d, dword [r14 + 0x40]
lea rdx, str.UPDATE___w_.sqlite_master_SET_sql__printf___._ds___sql____Q__substr_sql_1length_printf___._ds_sql____WHERE_type__table_AND_name___Q
mov r12, qword [rsp + 0xa0]
mov rcx, rbx
mov qword [rsp + 0x30], r15
mov r8, r12
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x20], rdi
call fcn.1800333a0
cmp rdi, qword [rsi + 0x1e0]
jae 0x18008fac6
cmp rdi, qword [rsi + 0x1d0]
jb 0x18008faaa
mov rax, qword [rsi + 0x1c8]
mov qword [rdi], rax
mov qword [rsi + 0x1c8], rdi
jmp 0x18008faef
cmp rdi, qword [rsi + 0x1d8]
jb 0x18008fac6
mov rax, qword [rsi + 0x1b8]
mov qword [rdi], rax
mov qword [rsi + 0x1b8], rdi
jmp 0x18008faef
cmp qword [rsi + 0x2f8], 0
je 0x18008fadd
mov rdx, rdi
mov rcx, rsi
call fcn.180008610
jmp 0x18008faef
mov rcx, rdi
call fcn.180008570
jmp 0x18008faef
mov r12, qword [rsp + 0xa0]
mov rdi, qword [rbx + 0x10]
test rdi, rdi
jne 0x18008fb22
cmp qword [rbx + 0xa8], rdi
jne 0x18008fb0e
mov rax, qword [rbx]
test byte [rax + 0x60], 8
jne 0x18008fb0e
mov byte [rbx + 0x23], 1
mov rcx, rbx
call fcn.180029860
mov rdi, rax
test rax, rax
je 0x18008fc08
movzx eax, byte [rbx + 0x1f]
test al, al
jne 0x18008fb32
inc dword [rbx + 0x38]
mov esi, dword [rbx + 0x38]
jmp 0x18008fb41
dec al
movzx eax, al
mov byte [rbx + 0x1f], al
mov esi, dword [rbx + rax*4 + 0xe4]
mov r9d, esi
mov dword [rsp + 0x20], 2
mov r8d, ebp
mov edx, 0x63
mov rcx, rdi
call fcn.180029c20
mov edx, ebp
mov rcx, rdi
call fcn.18002ba00
mov r9d, 0xfffffffe
mov r8d, esi
mov edx, 0x56
call fcn.180029d60
mov r9d, dword [rdi + 0x90]
mov r8d, esi
add r9d, 2
mov edx, 0x3b
mov rcx, rdi
call fcn.180029d60
mov r9d, 2
mov dword [rsp + 0x20], 3
mov r8d, ebp
mov edx, 0x64
mov rcx, rdi
call fcn.180029c20
test esi, esi
je 0x18008fbc8
movzx eax, byte [rbx + 0x1f]
cmp al, 8
jae 0x18008fbc8
mov dword [rbx + rax*4 + 0xe4], esi
inc byte [rbx + 0x1f]
mov r8d, 3
mov edx, ebp
mov rcx, rbx
call fcn.18008f120
cmp qword [r14 + 0x20], 0
jne 0x18008fbf3
mov rax, qword [rsp + 0xa8]
test byte [rax + 8], 0xf
je 0x18008fc08
test byte [rax + 0x12], 0x60
je 0x18008fc08
mov r9, r12
lea rdx, str.SELECT_CASE_WHEN_quick_check_GLOB_CHECK_THEN_raise_ABORT_CHECK_constraint_failed__ELSE_raise_ABORT_NOT_NULL_constraint_failed__END__FROM_pragma_quick_check__Q__Q__WHERE_quick_check_GLOB_CHECK_OR_quick_check_GLOB_NULL
mov r8, r15
mov rcx, rbx
call fcn.1800333a0
mov rdi, qword [rsp + 0x68]
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
mov r14, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x70]
mov r15, qword [rsp + 0x48]
add rsp, 0x78
pop rsi
pop rbx
ret