Function at 0x1401f3cc0
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 r13, qword [rcx]
test r12d, r12d
mov rbx, rcx
mov rbp, rdx
jne 0x1401f3e00
mov rdi, qword [rcx + 0x160]
mov rax, qword [r13 + 0x20]
mov r8, qword [rdi + 0x60]
test r8, r8
je 0x1401f427f
cmp r8, qword [rax + 0x18]
je 0x1401f4170
lea rcx, [rax + 0x20]
mov edx, 1
nop dword [rax]
mov rax, rcx
mov rsi, rdx
add rdx, 1
cmp r8, qword [rax + 0x18]
lea rcx, [rcx + 0x20]
jne 0x1401f3d18
mov r12d, esi
shl rsi, 5
mov qword [rsp + 0x50], rsi
mov r15, qword [rax]
mov rax, qword [rdi]
add rax, 0x10
mov qword [rsp + 0x48], rax
movsx rax, word [rdi + 0x36]
lea rdx, [rax + rax*2]
mov rax, qword [rdi + 8]
lea r14, [rax + rdx*8 - 0x18]
movzx eax, word [r14 + 0x10]
test ax, ax
je 0x1401f3e18
cmp byte [rdi + 0x3f], 0
jne 0x1401f3e18
mov rsi, qword [rdi + 0x50]
test rsi, rsi
je 0x1401f3d90
cmp dword [rsi], eax
jl 0x1401f3e18
sub eax, 1
cdqe
shl rax, 5
mov rsi, qword [rsi + rax + 8]
mov rdx, qword [rsp + 0x48]
mov r8, r15
mov rcx, r13
call sym.sqlite3FindTable
mov r9, qword [rax]
mov rax, qword [r13 + 0x200]
test rax, rax
je 0x1401f3e20
cmp byte [r13 + 0xc5], 0
jne 0x1401f3e20
cmp byte [rbx + 0x134], 0
jne 0x1401f3e20
mov rdx, qword [rbx + 0x178]
mov r8, r15
mov rcx, qword [r13 + 0x208]
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rdx
mov edx, 0x1a
call rax
cmp eax, 1
je 0x1401f41e1
test eax, 0xfffffffd
jne 0x1401f4180
test eax, eax
je 0x1401f3e20
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor esi, esi
jmp 0x1401f3d90
movzx eax, word [r14 + 0x12]
test al, 1
jne 0x1401f4120
cmp qword [rdi + 0x10], 0
jne 0x1401f4100
test al, 0x60
je 0x1401f4058
test al, 0x40
jne 0x1401f4257
mov r9, qword [rbp]
mov eax, dword [rbp + 8]
test r9, r9
mov qword [rsp + 0x58], r9
je 0x1401f3ef7
mov esi, eax
mov rcx, r13
lea rdx, [rsi + 1]
call sym.sqlite3DbMallocRawNN
test rax, rax
je 0x1401f3ef7
mov rdx, qword [rsp + 0x58]
mov rcx, rax
mov r8, rsi
call sym.memcpy
lea rcx, [0x140326460]
mov r11, rax
mov byte [rax + rsi], 0
mov eax, dword [rbp + 8]
sub eax, 1
add rax, r11
cmp r11, rax
jae 0x1401f3ebb
movzx edx, byte [rax]
cmp dl, 0x3b
je 0x1401f3eae
test byte [rcx + rdx], 1
je 0x1401f3ebb
sub rax, 1
mov byte [rax + 1], 0
cmp rax, r11
jne 0x1401f3ea0
mov r9d, dword [rdi + 0x40]
mov rcx, rbx
mov qword [rsp + 0x20], r11
mov r8, r15
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 sym.sqlite3NestedParse
mov rdx, qword [rsp + 0x58]
mov rcx, r13
call sym.sqlite3DbFreeNN
mov rbp, qword [rbx + 0x10]
test rbp, rbp
je 0x1401f4130
movzx eax, byte [rbx + 0x1f]
test al, al
je 0x1401f41d3
sub eax, 1
mov byte [rbx + 0x1f], al
movzx eax, al
mov esi, dword [rbx + rax*4 + 0xe4]
mov rcx, rbp
mov dword [rsp + 0x20], 2
mov r9d, esi
mov r8d, r12d
mov edx, 0x63
call sym.sqlite3VdbeAddOp3
mov eax, 1
mov ecx, r12d
shl eax, cl
or dword [rbp + 0xcc], eax
cmp r12d, 1
je 0x1401f3f6f
mov rdx, qword [rbp]
mov rcx, qword [rsp + 0x50]
mov rdx, qword [rdx + 0x20]
mov rdx, qword [rdx + rcx + 8]
cmp byte [rdx + 0x11], 0
je 0x1401f3f6f
or dword [rbp + 0xd0], eax
mov r9d, 0xfffffffe
mov r8d, esi
mov edx, 0x56
mov rcx, rbp
call sym.sqlite3VdbeAddOp3.constprop.0
mov r8d, esi
mov edx, 0x3b
mov rcx, rbp
mov r9d, dword [rbp + 0x90]
add r9d, 2
call sym.sqlite3VdbeAddOp3.constprop.0
mov r8d, r12d
mov edx, 0x64
mov rcx, rbp
mov dword [rsp + 0x20], 3
mov r9d, 2
call sym.sqlite3VdbeAddOp3
test esi, esi
je 0x1401f3fce
movzx eax, byte [rbx + 0x1f]
cmp al, 7
jbe 0x1401f4218
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1401f4023
mov rax, qword [rbx]
mov r9d, 1
mov r8d, r12d
mov edx, 0x64
mov rsi, qword [rsp + 0x50]
mov rax, qword [rax + 0x20]
mov rax, qword [rax + rsi + 0x18]
mov eax, dword [rax]
add eax, 1
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov rcx, qword [rbx + 0x10]
xor r8d, r8d
mov edx, r12d
mov r9d, 3
call sym.sqlite3VdbeAddParseSchemaOp
cmp r12d, 1
jne 0x1401f41fc
cmp qword [rdi + 0x20], 0
je 0x1401f4150
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, r15
mov rcx, rbx
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.sqlite3NestedParse
mov rax, qword [r13 + 0x30]
and eax, 0x4000
test rsi, rsi
je 0x1401f419b
mov rdx, qword [rsi + 0x10]
cmp byte [rdx], 0x79
je 0x1401f419b
test rax, rax
je 0x1401f40a6
cmp qword [rdi + 0x48], 0
je 0x1401f40a6
mov rax, qword [rsp + 0x48]
mov r9, r15
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 sym.sqlite3NestedParse
lea rax, [rsp + 0x68]
mov r9d, 0x41
mov r8d, 1
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x20], rax
mov rdx, rsi
mov rcx, r13
mov qword [rsp + 0x68], 0
call sym.valueFromExpr
test eax, eax
jne 0x1401f3e00
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1401f422a
call sym.sqlite3ValueFree
jmp 0x1401f3e48
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 sym.sqlite3ErrorMsg
lea rdx, str.Cannot_add_a_PRIMARY_KEY_column
jmp 0x1401f4107
mov rcx, rbx
call sym.sqlite3GetVdbe.part.0
test rax, rax
mov rbp, rax
jne 0x1401f3f04
jmp 0x1401f3e00
test byte [r14 + 8], 0xf
je 0x1401f3e00
test byte [r14 + 0x12], 0x60
je 0x1401f3e00
jmp 0x1401f402e
mov qword [rsp + 0x50], 0
jmp 0x1401f3d38
lea rdx, str.authorizer_malfunction
mov rcx, rbx
call sym.sqlite3ErrorMsg
mov dword [rbx + 0x18], 1
jmp 0x1401f3e00
movzx edx, byte [r14 + 8]
and edx, 0xf
test dl, dl
je 0x1401f3e48
mov rax, qword [rsp + 0x48]
mov r9, r15
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 sym.sqlite3NestedParse
jmp 0x1401f3e48
mov eax, dword [rbx + 0x38]
lea esi, [rax + 1]
mov dword [rbx + 0x38], esi
jmp 0x1401f3f20
lea rdx, str.not_authorized
mov rcx, rbx
call sym.sqlite3ErrorMsg
mov dword [rbx + 0x18], 0x17
jmp 0x1401f3e00
mov rcx, qword [rbx + 0x10]
mov r9d, 3
xor r8d, r8d
mov edx, 1
call sym.sqlite3VdbeAddParseSchemaOp
jmp 0x1401f4023
lea edx, [rax + 1]
mov byte [rbx + 0x1f], dl
mov dword [rbx + rax*4 + 0xe4], esi
jmp 0x1401f3fce
mov rax, qword [rsp + 0x48]
mov rcx, rbx
mov r9, r15
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 sym.sqlite3NestedParse
mov rcx, qword [rsp + 0x68]
jmp 0x1401f40ef
mov rax, qword [rsp + 0x48]
mov r9, r15
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 sym.sqlite3NestedParse
jmp 0x1401f3e48
sub rax, 0x100000
mov r12d, 0xffff8000
mov qword [rsp + 0x50], 0xfffffffffff00000
jmp 0x1401f3d38