Function at 0x1401f06c0
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 r12d, dword [rcx + 0x30]
mov qword [rsp + 0x40], rdx
mov r13, rcx
test r12d, r12d
jne 0x1401f081b
mov rsi, qword [rcx + 0x160]
mov rdi, qword [rcx]
mov r8, qword [rsi + 0x60]
mov rcx, qword [rdi + 0x20]
test r8, r8
je 0x1401f0cdd
cmp r8, qword [rcx + 0x18]
je 0x1401f0ba0
lea rdx, [rcx + 0x20]
mov eax, 1
nop dword [rax + rax]
mov rbx, rax
mov rcx, rdx
mov r12d, eax
add rdx, 0x20
shl rbx, 5
add rax, 1
cmp r8, qword [rcx + 0x18]
jne 0x1401f0718
mov rax, qword [rsi]
mov r15, qword [rcx]
lea rbp, [rax + 0x10]
movsx rax, word [rsi + 0x36]
lea rdx, [rax + rax*2]
mov rax, qword [rsi + 8]
lea r14, [rax + rdx*8 - 0x18]
movzx eax, word [r14 + 0x10]
test ax, ax
je 0x1401f0830
cmp byte [rsi + 0x3f], 0
jne 0x1401f0830
mov r11, qword [rsi + 0x50]
test r11, r11
je 0x1401f0787
cmp dword [r11], eax
jl 0x1401f0830
sub eax, 1
cdqe
shl rax, 5
mov r11, qword [r11 + rax + 8]
mov r8, r15
mov rdx, rbp
mov rcx, rdi
mov qword [rsp + 0x48], r11
call sym.sqlite3FindTable
mov r11, qword [rsp + 0x48]
mov qword [rsp + 0x50], rax
mov rax, qword [rdi + 0x200]
test rax, rax
je 0x1401f0840
cmp byte [rdi + 0xc5], 0
jne 0x1401f0840
cmp byte [r13 + 0x134], 0
jne 0x1401f0840
mov rdx, qword [r13 + 0x178]
mov rcx, qword [rdi + 0x208]
mov qword [rsp + 0x48], r11
mov r8, r15
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rdx
mov rdx, qword [rsp + 0x50]
mov r9, qword [rdx]
mov edx, 0x1a
call rax
mov r11, qword [rsp + 0x48]
cmp eax, 1
je 0x1401f0c2a
test eax, 0xfffffffd
jne 0x1401f0be0
test eax, eax
je 0x1401f0840
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor r11d, r11d
jmp 0x1401f0787
movzx eax, word [r14 + 0x12]
test al, 1
jne 0x1401f0b90
cmp qword [rsi + 0x10], 0
jne 0x1401f0b50
test al, 0x60
je 0x1401f0aa8
test al, 0x40
jne 0x1401f0c92
mov rax, qword [rsp + 0x40]
mov r9, qword [rax]
test r9, r9
mov qword [rsp + 0x48], r9
je 0x1401f0935
mov r8d, dword [rax + 8]
mov rcx, rdi
lea rdx, [r8 + 1]
mov qword [rsp + 0x58], r8
call sym.sqlite3DbMallocRawNN
test rax, rax
je 0x1401f0935
mov r9, qword [rsp + 0x48]
mov r8, qword [rsp + 0x58]
mov rcx, rax
mov rdx, r9
call sym.memcpy
mov r8, qword [rsp + 0x58]
lea rcx, [0x140344300]
mov r11, rax
mov byte [rax + r8], 0
mov rax, qword [rsp + 0x40]
mov eax, dword [rax + 8]
sub eax, 1
add rax, r11
cmp rax, r11
jbe 0x1401f08fb
nop dword [rax + rax]
movzx edx, byte [rax]
cmp dl, 0x3b
je 0x1401f08ee
test byte [rcx + rdx], 1
je 0x1401f08fb
sub rax, 1
mov byte [rax + 1], 0
cmp rax, r11
jne 0x1401f08e0
mov r9d, dword [rsi + 0x40]
mov qword [rsp + 0x20], r11
mov rcx, r13
mov r8, r15
mov qword [rsp + 0x30], rbp
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 qword [rsp + 0x40], r11
call sym.sqlite3NestedParse
mov r11, qword [rsp + 0x40]
mov rcx, rdi
mov rdx, r11
call sym.sqlite3DbFreeNN
mov rdi, qword [r13 + 0x10]
test rdi, rdi
je 0x1401f0b70
movzx eax, byte [r13 + 0x1f]
test al, al
je 0x1401f0c81
sub eax, 1
mov byte [r13 + 0x1f], al
movzx eax, al
mov r10d, dword [r13 + rax*4 + 0xe8]
mov r9d, r10d
mov rcx, rdi
mov r8d, r12d
mov edx, 0x63
mov dword [rsp + 0x20], 2
mov dword [rsp + 0x40], r10d
call sym.sqlite3VdbeAddOp3
mov eax, 1
mov ecx, r12d
mov r10d, dword [rsp + 0x40]
shl eax, cl
or dword [rdi + 0xcc], eax
cmp r12d, 1
je 0x1401f09b2
mov rdx, qword [rdi]
mov rdx, qword [rdx + 0x20]
mov rdx, qword [rdx + rbx + 8]
cmp byte [rdx + 0x11], 0
jne 0x1401f0c46
mov r8d, r10d
mov edx, 0x56
mov rcx, rdi
mov dword [rsp + 0x40], r10d
mov r9d, 0xfffffffe
call sym.sqlite3VdbeAddOp3.constprop.0
mov r10d, dword [rsp + 0x40]
mov edx, 0x3b
mov rcx, rdi
mov eax, dword [rdi + 0x90]
mov r8d, r10d
lea r9d, [rax + 2]
call sym.sqlite3VdbeAddOp3.constprop.0
mov r8d, r12d
mov edx, 0x64
mov rcx, rdi
mov dword [rsp + 0x20], 3
mov r9d, 2
call sym.sqlite3VdbeAddOp3
mov r10d, dword [rsp + 0x40]
test r10d, r10d
je 0x1401f0a21
movzx eax, byte [r13 + 0x1f]
cmp al, 7
jbe 0x1401f0c6d
mov rcx, qword [r13 + 0x10]
test rcx, rcx
je 0x1401f0a72
mov rax, qword [r13]
mov r9d, 1
mov r8d, r12d
mov edx, 0x64
mov rax, qword [rax + 0x20]
mov rax, qword [rax + rbx + 0x18]
mov eax, dword [rax]
add eax, 1
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov rcx, qword [r13 + 0x10]
xor r8d, r8d
mov edx, r12d
mov r9d, 3
call sym.sqlite3VdbeAddParseSchemaOp
cmp r12d, 1
jne 0x1401f0c51
cmp qword [rsi + 0x20], 0
je 0x1401f0bb0
mov r9, r15
mov r8, rbp
lea rdx, str.SELECT_CASE_WHEN_quick_check_GLOB_CHECK_THEN_raise_ABORT_CHECK_constraint_failed__WHEN_quick_check_GLOB_non__value_in_THEN_raise_ABORT_type_mismatch_on_DEFAULT__ELSE_raise_ABORT_NOT_NULL_constraint_failed__END__FROM_pragma_quick_check__Q__Q__WHERE_quick_check_GLOB_CHECK_OR_quick_check_GLOB_NULL_OR_quick_check_GLOB_non__value_in
mov rcx, r13
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.sqlite3NestedParse
test r11, r11
je 0x1401f0bfc
mov rax, qword [r11 + 0x10]
cmp byte [rax], 0x79
je 0x1401f0bfc
test byte [rdi + 0x31], 0x40
je 0x1401f0af3
cmp qword [rsi + 0x48], 0
je 0x1401f0af3
mov qword [rsp + 0x20], rbp
mov r9, r15
mov rcx, r13
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 + 0x48], r11
call sym.sqlite3NestedParse
mov r11, qword [rsp + 0x48]
lea rax, [rsp + 0x68]
mov r9d, 0x41
mov rdx, r11
mov rcx, rdi
mov qword [rsp + 0x28], 0
mov r8d, 1
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x68], 0
call sym.valueFromExpr
test eax, eax
jne 0x1401f081b
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401f0cb5
call sym.sqlite3ValueFree
jmp 0x1401f0868
lea rdx, str.Cannot_add_a_UNIQUE_column
mov rcx, r13
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.sqlite3ErrorMsg
mov rcx, r13
call sym.sqlite3GetVdbe.part.0
mov rdi, rax
test rax, rax
je 0x1401f081b
jmp 0x1401f0942
lea rdx, str.Cannot_add_a_PRIMARY_KEY_column
jmp 0x1401f0b57
xor ebx, ebx
jmp 0x1401f0733
test byte [r14 + 8], 0xf
je 0x1401f0bc2
test byte [r14 + 0x12], 0x60
jne 0x1401f0a7d
mov rax, qword [rsp + 0x50]
test byte [rax + 0x32], 1
je 0x1401f081b
jmp 0x1401f0a7d
lea rdx, str.authorizer_malfunction
mov rcx, r13
call sym.sqlite3ErrorMsg
mov dword [r13 + 0x18], 1
jmp 0x1401f081b
test byte [r14 + 8], 0xf
je 0x1401f0868
mov qword [rsp + 0x20], rbp
mov r9, r15
mov rcx, r13
lea r8, str.Cannot_add_a_NOT_NULL_column_with_default_value_NULL
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
call sym.sqlite3NestedParse
jmp 0x1401f0868
lea rdx, str.not_authorized
mov rcx, r13
call sym.sqlite3ErrorMsg
mov dword [r13 + 0x18], 0x17
jmp 0x1401f081b
or dword [rdi + 0xd0], eax
jmp 0x1401f09b2
mov rcx, qword [r13 + 0x10]
mov r9d, 3
xor r8d, r8d
mov edx, 1
call sym.sqlite3VdbeAddParseSchemaOp
jmp 0x1401f0a72
lea edx, [rax + 1]
mov byte [r13 + 0x1f], dl
mov dword [r13 + rax*4 + 0xe8], r10d
jmp 0x1401f0a21
mov eax, dword [r13 + 0x38]
lea r10d, [rax + 1]
mov dword [r13 + 0x38], r10d
jmp 0x1401f0961
mov qword [rsp + 0x20], rbp
mov r9, r15
mov rcx, r13
lea r8, str.cannot_add_a_STORED_column
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
call sym.sqlite3NestedParse
jmp 0x1401f0868
mov qword [rsp + 0x20], rbp
mov rcx, r13
mov r9, r15
lea r8, str.Cannot_add_a_column_with_non_constant_default
lea rdx, str.SELECT_raise_ABORT__Q__FROM___w_.__w_
call sym.sqlite3NestedParse
mov rcx, qword [rsp + 0x68]
jmp 0x1401f0b3c
sub rcx, 0x100000
mov rbx, 0xfffffffffff00000
mov r12d, 0xffff8000
jmp 0x1401f0733