Function at 0x1401e6ac0
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov ebp, dword [rcx + 0x30]
mov r13, qword [rcx]
test ebp, ebp
mov rbx, rcx
mov rdi, rdx
jne 0x1401e6de3
mov r12, qword [rcx + 0x160]
mov rax, qword [r13 + 0x20]
mov r8, qword [r12 + 0x60]
test r8, r8
je 0x1401e6fce
cmp r8, qword [rax + 0x18]
je 0x1401e6ee0
lea rcx, [rax + 0x20]
mov edx, 1
mov rax, rcx
mov rsi, rdx
add rdx, 1
cmp r8, qword [rax + 0x18]
lea rcx, [rcx + 0x20]
jne 0x1401e6b10
mov ebp, esi
shl rsi, 5
mov qword [rsp + 0x50], rsi
mov r14, qword [rax]
mov rax, qword [r12]
add rax, 0x10
mov qword [rsp + 0x48], rax
movsx rax, word [r12 + 0x36]
lea rdx, [rax + rax*2]
mov rax, qword [r12 + 8]
lea r15, [rax + rdx*8 - 0x18]
movzx eax, word [r15 + 0x10]
test ax, ax
je 0x1401e6df8
cmp byte [r12 + 0x3f], 0
jne 0x1401e6df8
mov rsi, qword [r12 + 0x50]
test rsi, rsi
je 0x1401e6b8d
cmp dword [rsi], eax
jl 0x1401e6df8
sub eax, 1
cdqe
shl rax, 5
mov rsi, qword [rsi + rax + 8]
mov rdx, qword [rsp + 0x48]
mov r8, r14
mov rcx, r13
call dbg.sqlite3FindTable
mov r8, r14
mov edx, 0x1a
mov rcx, rbx
mov r9, qword [rax]
mov qword [rsp + 0x20], 0
call dbg.sqlite3AuthCheck
test eax, eax
jne 0x1401e6de3
movzx eax, word [r15 + 0x12]
lea rdx, str.Cannot_add_a_PRIMARY_KEY_column
test al, 1
jne 0x1401e6e07
cmp qword [r12 + 0x10], 0
jne 0x1401e6e00
test al, 0x60
je 0x1401e6e20
test al, 0x40
jne 0x1401e6f90
mov r9, qword [rdi]
mov eax, dword [rdi + 8]
test r9, r9
mov qword [rsp + 0x58], r9
je 0x1401e6ca8
mov esi, eax
mov rcx, r13
lea rdx, [rsi + 1]
call sym.sqlite3DbMallocRawNN
test rax, rax
je 0x1401e6ca8
mov rdx, qword [rsp + 0x58]
mov rcx, rax
mov r8, rsi
call sym.memcpy
lea rcx, [0x1403488c0]
mov r11, rax
mov byte [rax + rsi], 0
mov eax, dword [rdi + 8]
sub eax, 1
add rax, r11
cmp r11, rax
jae 0x1401e6c6b
nop dword [rax + rax]
movzx edx, byte [rax]
cmp dl, 0x3b
je 0x1401e6c5e
test byte [rcx + rdx], 1
je 0x1401e6c6b
sub rax, 1
mov byte [rax + 1], 0
cmp rax, r11
jne 0x1401e6c50
mov r9d, dword [r12 + 0x40]
mov rcx, rbx
mov qword [rsp + 0x20], r11
mov r8, r14
mov rax, qword [rsp + 0x48]
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 qword [rsp + 0x58], r11
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x30], rax
call dbg.sqlite3NestedParse
mov rdx, qword [rsp + 0x58]
mov rcx, r13
call sym.sqlite3DbFreeNN
mov r13, qword [rbx + 0x10]
test r13, r13
je 0x1401e6eb8
movzx eax, byte [rbx + 0x1f]
test al, al
je 0x1401e6f21
sub eax, 1
mov byte [rbx + 0x1f], al
movzx eax, al
mov edi, dword [rbx + rax*4 + 0xe4]
mov rcx, r13
mov dword [rsp + 0x20], 2
mov r9d, edi
mov r8d, ebp
mov edx, 0x63
call sym.sqlite3VdbeAddOp3
mov eax, 1
mov ecx, ebp
shl eax, cl
or dword [r13 + 0xcc], eax
cmp ebp, 1
je 0x1401e6d20
mov rdx, qword [r13]
mov rsi, qword [rsp + 0x50]
mov rdx, qword [rdx + 0x20]
mov rdx, qword [rdx + rsi + 8]
cmp byte [rdx + 0x11], 0
je 0x1401e6d20
or dword [r13 + 0xd0], eax
mov r8d, edi
mov edx, 0x56
mov dword [rsp + 0x20], 0
mov r9d, 0xfffffffe
mov rcx, r13
call sym.sqlite3VdbeAddOp3
mov r8d, edi
mov edx, 0x3b
mov rcx, r13
mov eax, dword [r13 + 0x90]
mov dword [rsp + 0x20], 0
lea r9d, [rax + 2]
call sym.sqlite3VdbeAddOp3
mov r8d, ebp
mov edx, 0x64
mov rcx, r13
mov dword [rsp + 0x20], 3
mov r9d, 2
call sym.sqlite3VdbeAddOp3
test edi, edi
je 0x1401e6d8f
movzx eax, byte [rbx + 0x1f]
cmp al, 7
jbe 0x1401e6f2f
cmp qword [rbx + 0x10], 0
je 0x1401e6da6
mov r8d, 3
mov edx, ebp
mov rcx, rbx
call sym.renameReloadSchema.part.0
cmp qword [r12 + 0x20], 0
je 0x1401e6dd8
mov r8, qword [rsp + 0x48]
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 rcx, rbx
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp dbg.sqlite3NestedParse
test byte [r15 + 8], 0xf
jne 0x1401e6f41
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor esi, esi
jmp 0x1401e6b8d
lea rdx, str.Cannot_add_a_UNIQUE_column
mov rcx, rbx
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp dbg.sqlite3ErrorMsg
test rsi, rsi
je 0x1401e6eee
mov rax, qword [rsi + 0x10]
cmp byte [rax], 0x79
je 0x1401e6eee
test byte [r13 + 0x31], 0x40
je 0x1401e6e68
cmp qword [r12 + 0x48], 0
je 0x1401e6e68
mov rax, qword [rsp + 0x48]
mov r9, r14
mov rcx, rbx
lea r8, str.Cannot_add_a_REFERENCES_column_with_non_NULL_default_value
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov qword [rsp + 0x20], rax
call dbg.sqlite3NestedParse
lea rax, [rsp + 0x68]
mov r9d, 0x41
mov r8d, 1
mov qword [rsp + 0x68], 0
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, r13
call sym.valueFromExpr.constprop.0
test eax, eax
jne 0x1401e6de3
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401e6f51
call sym.sqlite3ValueFree.part.0
jmp 0x1401e6bf1
cmp qword [rbx + 0xa8], 0
je 0x1401e6fb8
mov rcx, rbx
call dbg.sqlite3VdbeCreate
test rax, rax
mov r13, rax
jne 0x1401e6cb5
jmp 0x1401e6de3
mov qword [rsp + 0x50], 0
jmp 0x1401e6b2f
test byte [r15 + 8], 0xf
je 0x1401e6bf1
mov rax, qword [rsp + 0x48]
mov r9, r14
mov rcx, rbx
lea r8, str.Cannot_add_a_NOT_NULL_column_with_default_value_NULL
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov qword [rsp + 0x20], rax
call dbg.sqlite3NestedParse
jmp 0x1401e6bf1
mov eax, dword [rbx + 0x38]
lea edi, [rax + 1]
mov dword [rbx + 0x38], edi
jmp 0x1401e6cd1
lea edx, [rax + 1]
mov byte [rbx + 0x1f], dl
mov dword [rbx + rax*4 + 0xe4], edi
jmp 0x1401e6d8f
test byte [r15 + 0x12], 0x60
je 0x1401e6de3
jmp 0x1401e6dae
mov rax, qword [rsp + 0x48]
mov rcx, rbx
mov r9, r14
lea r8, str.Cannot_add_a_column_with_non_constant_default
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov qword [rsp + 0x20], rax
call dbg.sqlite3NestedParse
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401e6bf1
jmp 0x1401e6ea8
mov rax, qword [rsp + 0x48]
mov r9, r14
mov rcx, rbx
lea r8, str.cannot_add_a_STORED_column
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
mov qword [rsp + 0x20], rax
call dbg.sqlite3NestedParse
jmp 0x1401e6bf1
mov rax, qword [rbx]
test byte [rax + 0x60], 8
jne 0x1401e6ec6
mov byte [rbx + 0x23], 1
jmp 0x1401e6ec6
sub rax, 0x100000
mov ebp, 0xffff8000
mov qword [rsp + 0x50], 0xfffffffffff00000
jmp 0x1401e6b2f