Function at 0x18009e66c
Capabilities:
Reference sql statements

Disassembly:
mov qword [rsp + 0x18], rbx
mov qword [rsp + 0x10], rdx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
mov rbp, qword [rcx]
xor eax, eax
mov rbx, rcx
cmp dword [rcx + 0x30], eax
jne 0x18009ea01
mov rsi, qword [rcx + 0x158]
mov r13d, 0xffff8000
mov rcx, qword [rsi + 0x60]
test rcx, rcx
je 0x18009e6c5
mov r13d, eax
mov rax, qword [rbp + 0x20]
add rax, 0x18
jmp 0x18009e6c0
inc r13d
add rax, 0x20
cmp qword [rax], rcx
jne 0x18009e6b9
mov rax, qword [rbp + 0x20]
mov r12, qword [rsi]
movsxd rcx, r13d
shl rcx, 5
add r12, 0x10
mov r14, qword [rcx + rax]
movsx eax, word [rsi + 0x36]
dec eax
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [rsi + 8]
lea r15, [rax + rcx*8]
mov rcx, rsi
mov rdx, r15
call fcn.1800a4690
mov r8, r14
mov rdx, r12
mov rcx, rbp
mov rdi, rax
call fcn.1800a3e64
xor ecx, ecx
mov r8, r14
mov r9, qword [rax]
lea edx, [rcx + 0x1a]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
call fcn.1800a3820
xor edx, edx
test eax, eax
jne 0x18009ea01
test byte [r15 + 0x12], 1
je 0x18009e748
lea rdx, str.Cannot_add_a_PRIMARY_KEY_column
mov rcx, rbx
call fcn.180069390
jmp 0x18009ea01
cmp qword [rsi + 0x10], rdx
je 0x18009e757
lea rdx, str.Cannot_add_a_UNIQUE_column
jmp 0x18009e73b
test byte [r15 + 0x12], 0x60
jne 0x18009e855
test rdi, rdi
je 0x18009e772
mov rax, qword [rdi + 0x10]
cmp byte [rax], 0x79
cmove rdi, rdx
mov eax, dword [rbp + 0x30]
bt rax, 0xe
jae 0x18009e7a7
cmp qword [rsi + 0x48], rdx
je 0x18009e7a7
test rdi, rdi
je 0x18009e7a7
lea r8, str.Cannot_add_a_REFERENCES_column_with_non_NULL_default_value
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov r9, r14
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.1800a3d8c
xor edx, edx
test byte [r15 + 8], 0xf
je 0x18009e7d3
test rdi, rdi
jne 0x18009e7dc
lea r8, str.Cannot_add_a_NOT_NULL_column_with_default_value_NULL
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov r9, r14
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.1800a3d8c
xor edx, edx
test rdi, rdi
je 0x18009e87a
mov rcx, rdx
mov qword [rsp + 0x80], rdx
test rdi, rdi
je 0x18009e819
mov qword [rsp + 0x28], rdx
lea rax, [rsp + 0x80]
mov r9b, 0x41
mov r8b, 1
mov rdx, rdi
mov rcx, rbp
mov qword [rsp + 0x20], rax
call fcn.180084940
mov rcx, qword [rsp + 0x80]
jmp 0x18009e81b
mov eax, edx
test eax, eax
jne 0x18009ea01
test rcx, rcx
jne 0x18009e84e
lea r8, str.Cannot_add_a_column_with_non_constant_default
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov r9, r14
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.1800a3d8c
mov rcx, qword [rsp + 0x80]
call fcn.180084d54
jmp 0x18009e87a
test byte [r15 + 0x12], 0x40
je 0x18009e87a
lea r8, str.cannot_add_a_STORED_column
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov r9, r14
mov rcx, rbx
mov qword [rsp + 0x20], r12
call fcn.1800a3d8c
mov rax, qword [rsp + 0x88]
mov rcx, rbp
mov r8d, dword [rax + 8]
mov rdx, qword [rax]
call fcn.18006829c
xor r8d, r8d
mov rdi, rax
test rax, rax
je 0x18009e901
mov rdx, qword [rsp + 0x88]
mov edx, dword [rdx + 8]
dec edx
add rdx, rax
cmp rdx, rax
jbe 0x18009e8d1
cmp byte [rdx], 0x3b
je 0x18009e8c6
movzx eax, byte [rdx]
lea rcx, [0x1801032e0]
test byte [rax + rcx], 1
je 0x18009e8d1
mov byte [rdx], r8b
dec rdx
cmp rdx, rdi
ja 0x18009e8b1
mov r9d, dword [rsi + 0x40]
mov qword [rsp + 0x30], r12
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 dword [rsp + 0x28], r9d
mov r8, r14
mov rcx, rbx
mov qword [rsp + 0x20], rdi
call fcn.1800a3d8c
mov rdx, rdi
mov rcx, rbp
call fcn.180067d04
mov rcx, rbx
call fcn.1800be088
mov rbp, rax
test rax, rax
je 0x18009ea01
mov cl, byte [rbx + 0x1f]
test cl, cl
jne 0x18009e924
inc dword [rbx + 0x38]
mov edi, dword [rbx + 0x38]
jmp 0x18009e933
dec cl
movzx eax, cl
mov byte [rbx + 0x1f], al
mov edi, dword [rbx + rax*4 + 0xe0]
mov r9d, edi
mov r8d, r13d
mov edx, 0x63
mov rcx, rbp
mov dword [rsp + 0x20], 2
call fcn.180085048
mov edx, r13d
mov rcx, rbp
call fcn.180085fb4
xor ecx, ecx
mov r8d, edi
lea r9d, [rcx - 2]
lea edx, [rcx + 0x56]
mov dword [rsp + 0x20], ecx
mov rcx, rbp
call fcn.180085048
mov r9d, dword [rbp + 0x90]
xor eax, eax
lea edx, [rax + 0x3b]
mov r8d, edi
mov rcx, rbp
add r9d, 2
mov dword [rsp + 0x20], eax
call fcn.180085048
mov r9d, 2
mov r8d, r13d
lea edx, [r9 + 0x62]
mov rcx, rbp
mov dword [rsp + 0x20], 3
call fcn.180085048
xor ebp, ebp
test edi, edi
je 0x18009e9c7
cmp byte [rbx + 0x1f], 8
jae 0x18009e9c7
movzx eax, byte [rbx + 0x1f]
mov dword [rbx + rax*4 + 0xe0], edi
inc byte [rbx + 0x1f]
mov r8d, 3
mov edx, r13d
mov rcx, rbx
call fcn.18009e28c
cmp qword [rsi + 0x20], rbp
jne 0x18009e9ec
test byte [r15 + 8], 0xf
je 0x18009ea01
test byte [r15 + 0x12], 0x60
je 0x18009ea01
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 r9, r14
mov r8, r12
mov rcx, rbx
call fcn.1800a3d8c
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret