Function at 0x180063d84
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 0x180064119
mov rsi, qword [rcx + 0x158]
mov r13d, 0xffff8000
mov rcx, qword [rsi + 0x60]
test rcx, rcx
je 0x180063ddd
mov r13d, eax
mov rax, qword [rbp + 0x20]
add rax, 0x18
jmp 0x180063dd8
inc r13d
add rax, 0x20
cmp qword [rax], rcx
jne 0x180063dd1
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.180069e20
mov r8, r14
mov rdx, r12
mov rcx, rbp
mov rdi, rax
call fcn.1800695f4
xor ecx, ecx
mov r8, r14
mov r9, qword [rax]
lea edx, [rcx + 0x1a]
mov qword [rsp + 0x20], rcx
mov rcx, rbx
call fcn.180068fb0
xor edx, edx
test eax, eax
jne 0x180064119
test byte [r15 + 0x12], 1
je 0x180063e60
lea rdx, str.Cannot_add_a_PRIMARY_KEY_column
mov rcx, rbx
call fcn.18002bda4
jmp 0x180064119
cmp qword [rsi + 0x10], rdx
je 0x180063e6f
lea rdx, str.Cannot_add_a_UNIQUE_column
jmp 0x180063e53
test byte [r15 + 0x12], 0x60
jne 0x180063f6d
test rdi, rdi
je 0x180063e8a
mov rax, qword [rdi + 0x10]
cmp byte [rax], 0x79
cmove rdi, rdx
mov eax, dword [rbp + 0x30]
bt rax, 0xe
jae 0x180063ebf
cmp qword [rsi + 0x48], rdx
je 0x180063ebf
test rdi, rdi
je 0x180063ebf
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.18006951c
xor edx, edx
test byte [r15 + 8], 0xf
je 0x180063eeb
test rdi, rdi
jne 0x180063ef4
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.18006951c
xor edx, edx
test rdi, rdi
je 0x180063f92
mov rcx, rdx
mov qword [rsp + 0x80], rdx
test rdi, rdi
je 0x180063f31
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.18004838c
mov rcx, qword [rsp + 0x80]
jmp 0x180063f33
mov eax, edx
test eax, eax
jne 0x180064119
test rcx, rcx
jne 0x180063f66
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.18006951c
mov rcx, qword [rsp + 0x80]
call fcn.1800487a0
jmp 0x180063f92
test byte [r15 + 0x12], 0x40
je 0x180063f92
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.18006951c
mov rax, qword [rsp + 0x88]
mov rcx, rbp
mov r8d, dword [rax + 8]
mov rdx, qword [rax]
call fcn.180029480
xor r8d, r8d
mov rdi, rax
test rax, rax
je 0x180064019
mov rdx, qword [rsp + 0x88]
mov edx, dword [rdx + 8]
dec edx
add rdx, rax
cmp rdx, rax
jbe 0x180063fe9
cmp byte [rdx], 0x3b
je 0x180063fde
movzx eax, byte [rdx]
lea rcx, [0x1800f3ea0]
test byte [rax + rcx], 1
je 0x180063fe9
mov byte [rdx], r8b
dec rdx
cmp rdx, rdi
ja 0x180063fc9
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.18006951c
mov rdx, rdi
mov rcx, rbp
call fcn.180028e78
mov rcx, rbx
call fcn.180083ee8
mov rbp, rax
test rax, rax
je 0x180064119
mov cl, byte [rbx + 0x1f]
test cl, cl
jne 0x18006403c
inc dword [rbx + 0x38]
mov edi, dword [rbx + 0x38]
jmp 0x18006404b
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.180048a94
mov edx, r13d
mov rcx, rbp
call fcn.180049a00
xor ecx, ecx
mov r8d, edi
lea r9d, [rcx - 2]
lea edx, [rcx + 0x56]
mov dword [rsp + 0x20], ecx
mov rcx, rbp
call fcn.180048a94
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.180048a94
mov r9d, 2
mov r8d, r13d
lea edx, [r9 + 0x62]
mov rcx, rbp
mov dword [rsp + 0x20], 3
call fcn.180048a94
xor ebp, ebp
test edi, edi
je 0x1800640df
cmp byte [rbx + 0x1f], 8
jae 0x1800640df
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.1800639a4
cmp qword [rsi + 0x20], rbp
jne 0x180064104
test byte [r15 + 8], 0xf
je 0x180064119
test byte [r15 + 0x12], 0x60
je 0x180064119
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.18006951c
mov rbx, qword [rsp + 0x90]
add rsp, 0x40
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret