Function at 0x1400f4ef0
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]
mov rbx, rcx
mov rbp, rdx
test r12d, r12d
jne 0x1400f5030
mov rdi, qword [rcx + 0x158]
mov rax, qword [r13 + 0x20]
mov r8, qword [rdi + 0x60]
test r8, r8
je 0x1400f5586
cmp r8, qword [rax + 0x18]
je 0x1400f5420
lea rcx, [rax + 0x20]
mov edx, 1
nop dword [rax]
mov rax, rcx
mov rsi, rdx
lea rcx, [rcx + 0x20]
add rdx, 1
cmp r8, qword [rax + 0x18]
jne 0x1400f4f48
mov r12d, esi
shl rsi, 5
mov qword [rsp + 0x48], rsi
mov r15, qword [rax]
mov rax, qword [rdi]
mov rdx, qword [rdi + 8]
add rax, 0x10
mov qword [rsp + 0x40], rax
movsx rax, word [rdi + 0x36]
shl rax, 4
lea r14, [rdx + rax - 0x10]
movzx eax, word [r14 + 0xc]
test ax, ax
je 0x1400f5048
cmp byte [rdi + 0x3f], 0
jne 0x1400f5048
mov rsi, qword [rdi + 0x50]
test rsi, rsi
je 0x1400f4fc0
cmp dword [rsi], eax
jl 0x1400f5048
sub eax, 1
cdqe
lea rax, [rax + rax*2]
mov rsi, qword [rsi + rax*8 + 8]
mov rdx, qword [rsp + 0x40]
mov r8, r15
mov rcx, r13
call fcn.140016b40
mov r9, qword [rax]
mov rax, qword [r13 + 0x1f8]
test rax, rax
je 0x1400f5050
cmp byte [r13 + 0xc5], 0
jne 0x1400f5050
cmp byte [rbx + 0x12c], 0
jne 0x1400f5050
mov rdx, qword [rbx + 0x170]
mov rcx, qword [r13 + 0x200]
mov r8, r15
mov qword [rsp + 0x20], 0
mov qword [rsp + 0x28], rdx
mov edx, 0x1a
call rax
cmp eax, 1
je 0x1400f5493
test eax, 0xfffffffd
jne 0x1400f5430
test eax, eax
je 0x1400f5050
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
xor esi, esi
jmp 0x1400f4fc0
movzx eax, word [r14 + 0xe]
test al, 1
jne 0x1400f53d0
cmp qword [rdi + 0x10], 0
jne 0x1400f53b0
test al, 0x60
je 0x1400f5310
test al, 0x40
jne 0x1400f550a
mov r9, qword [rbp]
mov r8d, dword [rbp + 8]
test r9, r9
mov qword [rsp + 0x50], r9
je 0x1400f5137
lea rdx, [r8 + 1]
mov rcx, r13
mov qword [rsp + 0x58], r8
call fcn.140025c60
test rax, rax
je 0x1400f5137
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x50]
mov rcx, rax
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0x58]
lea rcx, [0x1401bfbc0]
mov r11, rax
mov byte [rax + r8], 0
mov eax, dword [rbp + 8]
sub eax, 1
add rax, r11
cmp r11, rax
jae 0x1400f50fb
nop dword [rax]
movzx edx, byte [rax]
cmp dl, 0x3b
je 0x1400f50ee
test byte [rcx + rdx], 1
je 0x1400f50fb
sub rax, 1
mov byte [rax + 1], 0
cmp rax, r11
jne 0x1400f50e0
mov r9d, dword [rdi + 0x40]
mov rax, qword [rsp + 0x40]
mov rcx, rbx
mov r8, r15
mov qword [rsp + 0x20], r11
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 + 0x30], rax
mov dword [rsp + 0x28], r9d
mov qword [rsp + 0x50], r11
call fcn.1400f03c0
mov rdx, qword [rsp + 0x50]
mov rcx, r13
call fcn.140016330
mov rbp, qword [rbx + 0x10]
test rbp, rbp
je 0x1400f53e0
movzx eax, byte [rbx + 0x1f]
test al, al
je 0x1400f5483
sub eax, 1
mov byte [rbx + 0x1f], al
movzx eax, al
mov r10d, dword [rbx + rax*4 + 0xe0]
mov r9d, r10d
mov rcx, rbp
mov r8d, r12d
mov edx, 0x63
mov dword [rsp + 0x20], 2
mov dword [rsp + 0x50], r10d
call fcn.1400447a0
mov eax, 1
mov ecx, r12d
mov r10d, dword [rsp + 0x50]
shl eax, cl
or dword [rbp + 0xc8], eax
cmp r12d, 1
je 0x1400f51ba
mov rdx, qword [rbp]
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rdx + 0x20]
mov rdx, qword [rdx + rsi + 8]
cmp byte [rdx + 0x11], 0
je 0x1400f51ba
or dword [rbp + 0xcc], eax
movsxd rax, dword [rbp + 0x90]
cmp eax, dword [rbp + 0x94]
jge 0x1400f5532
lea edx, [rax + 1]
mov esi, 0xfffffffe
mov dword [rbp + 0x90], edx
lea rdx, [rax + rax*2]
mov rax, qword [rbp + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], r10d
mov qword [rax + 8], rsi
mov qword [rax + 0x10], 0
mov dword [rax], 0x56
movsxd rax, dword [rbp + 0x90]
lea r9d, [rax + 2]
cmp eax, dword [rbp + 0x94]
jge 0x1400f555f
lea edx, [rax + 1]
mov dword [rbp + 0x90], edx
lea rdx, [rax + rax*2]
mov rax, qword [rbp + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], r10d
mov dword [rax + 8], r9d
mov dword [rax + 0xc], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x3b
mov r8d, r12d
mov edx, 0x64
mov rcx, rbp
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x20], 3
mov r9d, 2
call fcn.1400447a0
mov r10d, dword [rsp + 0x50]
test r10d, r10d
je 0x1400f5285
movzx eax, byte [rbx + 0x1f]
cmp al, 7
jbe 0x1400f54ca
mov rcx, qword [rbx + 0x10]
test rcx, rcx
je 0x1400f52da
mov rax, qword [rbx]
mov rsi, qword [rsp + 0x48]
mov r8d, r12d
mov edx, 0x64
mov r9d, 1
mov rax, qword [rax + 0x20]
mov rax, qword [rax + rsi + 0x18]
mov eax, dword [rax]
add eax, 1
mov dword [rsp + 0x20], eax
call fcn.1400447a0
mov rcx, qword [rbx + 0x10]
xor r8d, r8d
mov edx, r12d
mov r9d, 3
call fcn.140044e70
cmp r12d, 1
jne 0x1400f54ae
cmp qword [rdi + 0x20], 0
je 0x1400f5400
mov r8, qword [rsp + 0x40]
mov r9, r15
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 rcx, rbx
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp fcn.1400f03c0
mov rax, qword [r13 + 0x30]
and eax, 0x4000
test rsi, rsi
je 0x1400f544b
mov rdx, qword [rsi + 0x10]
cmp byte [rdx], 0x79
je 0x1400f544b
test rax, rax
je 0x1400f535e
cmp qword [rdi + 0x48], 0
je 0x1400f535e
mov rax, qword [rsp + 0x40]
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 fcn.1400f03c0
lea rax, [rsp + 0x68]
mov r9d, 0x41
mov rdx, rsi
mov rcx, r13
mov qword [rsp + 0x20], rax
mov r8d, 1
mov qword [rsp + 0x68], 0
call fcn.140057980
test eax, eax
jne 0x1400f5030
mov rcx, qword [rsp + 0x68]
test rcx, rcx
je 0x1400f54dd
call fcn.140011f50
jmp 0x1400f5078
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 fcn.140025960
lea rdx, str.Cannot_add_a_PRIMARY_KEY_column
jmp 0x1400f53b7
mov rcx, rbx
call fcn.140045290
mov rbp, rax
test rax, rax
jne 0x1400f5144
jmp 0x1400f5030
test byte [r14 + 8], 0xf
je 0x1400f5030
test byte [r14 + 0xe], 0x60
je 0x1400f5030
jmp 0x1400f52e5
mov qword [rsp + 0x48], 0
jmp 0x1400f4f68
lea rdx, str.authorizer_malfunction
mov rcx, rbx
call fcn.140025960
mov dword [rbx + 0x18], 1
jmp 0x1400f5030
movzx edx, byte [r14 + 8]
and edx, 0xf
test dl, dl
je 0x1400f5078
mov rax, qword [rsp + 0x40]
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 fcn.1400f03c0
jmp 0x1400f5078
mov eax, dword [rbx + 0x38]
lea r10d, [rax + 1]
mov dword [rbx + 0x38], r10d
jmp 0x1400f5161
lea rdx, str.not_authorized
mov rcx, rbx
call fcn.140025960
mov dword [rbx + 0x18], 0x17
jmp 0x1400f5030
mov rcx, qword [rbx + 0x10]
mov r9d, 3
xor r8d, r8d
mov edx, 1
call fcn.140044e70
jmp 0x1400f52da
lea edx, [rax + 1]
mov byte [rbx + 0x1f], dl
mov dword [rbx + rax*4 + 0xe0], r10d
jmp 0x1400f5285
mov rax, qword [rsp + 0x40]
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 fcn.1400f03c0
mov rcx, qword [rsp + 0x68]
jmp 0x1400f539e
mov rax, qword [rsp + 0x40]
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 fcn.1400f03c0
jmp 0x1400f5078
mov r8d, r10d
mov edx, 0x56
mov rcx, rbp
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x20], 0
mov r9d, 0xfffffffe
call fcn.1400445b0
mov r10d, dword [rsp + 0x50]
jmp 0x1400f5200
mov r8d, r10d
mov edx, 0x3b
mov rcx, rbp
mov dword [rsp + 0x50], r10d
mov dword [rsp + 0x20], 0
call fcn.1400445b0
mov r10d, dword [rsp + 0x50]
jmp 0x1400f524c
mov qword [rsp + 0x48], 0xfffffffffff00000
sub rax, 0x100000
mov r12d, 0xffff8000
jmp 0x1400f4f68