Function at 0x1401e7850
Capabilities:
Reference sql statements

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x88
mov rdi, qword [rcx]
cmp byte [rdi + 0x67], 0
mov rbx, rcx
mov rsi, rdx
mov rbp, r8
je 0x1401e7898
mov rdx, rsi
mov rcx, rdi
add rsp, 0x88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp dbg.sqlite3SrcListDelete
lea r8, [rdx + 8]
xor edx, edx
call dbg.sqlite3LocateTableItem
test rax, rax
mov r15, rax
je 0x1401e7875
mov rdx, rax
mov rcx, rbx
call dbg.isAlterableTable
test eax, eax
mov r13d, eax
jne 0x1401e7875
movzx eax, byte [r15 + 0x3f]
mov rdx, qword [r15]
cmp al, 2
je 0x1401e7ce0
lea r9, str.virtual_table
cmp al, 1
je 0x1401e7ce7
mov rdx, rbp
mov rcx, rdi
call dbg.sqlite3NameFromToken
test rax, rax
mov r14, rax
je 0x1401e7875
mov rdx, rax
mov rcx, r15
call dbg.sqlite3ColumnIndex
test eax, eax
mov dword [rsp + 0x48], eax
js 0x1401e7d07
movsxd rax, dword [rsp + 0x48]
lea rbp, [rax + rax*2]
mov rax, qword [r15 + 8]
shl rbp, 3
movzx eax, word [rax + rbp + 0x12]
test al, 9
jne 0x1401e7d30
cmp word [r15 + 0x36], 1
jle 0x1401e7d58
mov rdx, qword [r15 + 0x60]
mov rax, qword [rdi + 0x20]
test rdx, rdx
je 0x1401e7d6c
cmp rdx, qword [rax + 0x18]
je 0x1401e7d78
add rax, 0x20
nop
mov rcx, rax
add rax, 0x20
add r13d, 1
cmp rdx, qword [rax - 8]
jne 0x1401e7950
mov r12, qword [rcx]
mov edx, 0x1a
mov rcx, rbx
mov r9, qword [r15]
mov qword [rsp + 0x20], r14
mov r8, r12
call dbg.sqlite3AuthCheck
test eax, eax
jne 0x1401e7d20
xor eax, eax
cmp r13d, 1
mov byte [rbx + 0x1c], 1
mov r9, r12
sete al
mov dword [rsp + 0x30], 0
mov r8, r12
mov dword [rsp + 0x5c], eax
lea rcx, [0x1403370ef]
mov dword [rsp + 0x60], eax
mov dword [rsp + 0x20], eax
lea rax, str.SELECT_1_FROM___w_.sqlite_master_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name___d___Q___d_NULL
mov qword [rsp + 0x28], rcx
mov rdx, rax
mov rcx, rbx
mov qword [rsp + 0x50], rax
call dbg.sqlite3NestedParse
cmp r13d, 1
jne 0x1401e7dd8
mov r9, r12
mov r8, r12
mov rcx, rbx
lea rdx, str.UPDATE___w_.sqlite_master_SET_sql__sqlite_rename_quotefix__Q__sql_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual__
call dbg.sqlite3NestedParse
mov rax, qword [r15]
mov r8, r12
mov rcx, rbx
lea rdx, str.UPDATE___w_.sqlite_master_SET_sql__sqlite_drop_column__d__sql___d__WHERE__typetable_AND_tbl_name_Q_COLLATE_nocase_
mov r9d, 1
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
call dbg.sqlite3NestedParse
cmp qword [rbx + 0x10], 0
je 0x1401e7a2f
mov r8d, 2
mov edx, 1
mov rcx, rbx
call sym.renameReloadSchema.part.0
mov byte [rbx + 0x1c], 1
mov rdx, qword [rsp + 0x50]
mov r9, r12
mov r8, r12
lea rax, str.after_drop_column
mov dword [rsp + 0x30], 1
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x20], eax
call dbg.sqlite3NestedParse
mov r12d, dword [rbx + 0x30]
test r12d, r12d
jne 0x1401e7d20
mov rax, qword [r15 + 8]
test byte [rax + rbp + 0x12], 0x20
jne 0x1401e7d20
mov rbp, qword [rbx + 0x10]
test rbp, rbp
je 0x1401e7fd0
mov edx, dword [rbx + 0x34]
mov r9, r15
mov r8d, r13d
mov rcx, rbx
lea eax, [rdx + 1]
mov dword [rsp + 0x5c], edx
mov dword [rbx + 0x34], eax
mov dword [rsp + 0x20], 0x71
call sym.sqlite3OpenTable
mov eax, dword [rbp + 0x90]
cmp eax, dword [rbp + 0x94]
mov dword [rsp + 0x68], eax
jge 0x1401e8097
mov ecx, dword [rsp + 0x68]
lea eax, [rcx + 1]
mov dword [rbp + 0x90], eax
movsxd rax, ecx
mov ecx, dword [rsp + 0x5c]
lea rdx, [rax + rax*2]
mov rax, qword [rbp + 0x88]
lea rax, [rax + rdx*8]
mov dword [rax + 4], ecx
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
mov dword [rax], 0x24
mov r11d, dword [rbx + 0x38]
test byte [r15 + 0x30], 0x80
lea eax, [r11 + 1]
mov dword [rsp + 0x6c], eax
mov dword [rbx + 0x38], eax
je 0x1401e7fee
mov r10, qword [r15 + 0x10]
test r10, r10
jne 0x1401e7b3d
jmp 0x1401e812b
mov r10, qword [r10 + 0x28]
test r10, r10
je sym.sqlite3AlterDropColumn.cold
movzx eax, byte [r10 + 0x64]
and eax, 3
cmp al, 2
jne 0x1401e7b30
movzx eax, word [r10 + 0x60]
mov ecx, dword [rsp + 0x6c]
add eax, ecx
cmp word [r10 + 0x5e], 0
mov dword [rbx + 0x38], eax
je 0x1401e8108
mov qword [rsp + 0x60], rdi
mov edi, dword [rsp + 0x5c]
lea eax, [r11 + 2]
xor r13d, r13d
mov r12d, r13d
mov qword [rsp + 0x70], rbx
mov r13, rsi
mov rbx, r10
mov dword [rsp + 0x50], eax
mov esi, eax
nop word [rax + rax]
lea eax, [rsi + r12]
mov r9d, r12d
mov r8d, edi
mov dword [rsp + 0x20], eax
mov edx, 0x5e
mov rcx, rbp
add r12d, 1
call sym.sqlite3VdbeAddOp3
movzx eax, word [rbx + 0x5e]
cmp eax, r12d
jg 0x1401e7b90
mov r10, rbx
mov rbx, qword [rsp + 0x70]
mov r12d, eax
mov rsi, r13
mov rdi, qword [rsp + 0x60]
mov eax, dword [rbx + 0x38]
add eax, 1
cmp word [r15 + 0x36], 0
mov dword [rsp + 0x60], eax
mov dword [rbx + 0x38], eax
jle 0x1401e80d3
mov eax, dword [rsp + 0x48]
mov qword [rsp + 0x70], rbx
xor r13d, r13d
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x78], rsi
mov esi, r12d
mov r12, r10
mov ebx, eax
mov edi, eax
jmp 0x1401e7c41
movsx eax, word [r15 + 0x34]
cmp eax, r8d
je 0x1401e7f9f
mov r8d, dword [rsp + 0x5c]
mov dword [rsp + 0x20], r9d
mov rdx, r15
mov r9d, r13d
mov rcx, rbp
call sym.sqlite3ExprCodeGetColumnOfTable
add esi, 1
movsx eax, word [r15 + 0x36]
add r13, 1
cmp eax, r13d
jle 0x1401e7eb3
cmp ebx, r13d
mov r8d, r13d
je 0x1401e7c2f
mov r9, qword [r15 + 8]
lea rax, [r13 + r13*2]
lea rax, [r9 + rax*8]
test byte [rax + 0x12], 0x20
jne 0x1401e7c2f
mov eax, dword [rsp + 0x50]
test r12, r12
lea r9d, [rsi + rax]
je 0x1401e7c06
movzx ecx, word [r12 + 0x60]
test ecx, ecx
je 0x1401e7c2f
mov r9, qword [r12 + 8]
xor eax, eax
jmp 0x1401e7c8c
add rax, 1
cmp ecx, eax
jle 0x1401e7fbc
cmp word [r9 + rax*2], r13w
jne 0x1401e7c80
cwde
xor edx, edx
jmp 0x1401e7cac
add rdx, 1
cmp ecx, edx
jle 0x1401e7fc6
cmp di, word [r9 + rdx*2]
jne 0x1401e7ca0
movsx edx, dx
movzx ecx, word [r12 + 0x5e]
cmp ecx, eax
jg 0x1401e7c2f
mov ecx, dword [rsp + 0x50]
cmp edx, eax
lea r9d, [rcx + rax]
setl al
movzx eax, al
sub r9d, eax
jmp 0x1401e7c06
lea r9, str.view
mov qword [rsp + 0x20], rdx
lea r8, str.drop_column_from
mov rcx, rbx
lea rdx, str.cannot__s__s___s_
call dbg.sqlite3ErrorMsg
jmp 0x1401e7875
lea rdx, str.no_such_column:___T_
mov r8, rbp
mov rcx, rbx
call dbg.sqlite3ErrorMsg
nop dword [rax]
mov rdx, r14
mov rcx, rdi
call sym.sqlite3DbFreeNN
jmp 0x1401e7875
test al, 1
mov r9, r14
mov rcx, rbx
lea rax, str.PRIMARY_KEY
lea r8, str.UNIQUE
cmovne r8, rax
lea rdx, str.cannot_drop__s_column:___s_
call dbg.sqlite3ErrorMsg
jmp 0x1401e7d20
lea rdx, str.cannot_drop_column___s_:_no_other_columns_exist
mov r8, r14
mov rcx, rbx
call dbg.sqlite3ErrorMsg
jmp 0x1401e7d20
sub rax, 0x100000
mov r13d, 0xffff8000
mov r12, qword [rax]
mov edx, 0x1a
mov rcx, rbx
mov r9, qword [r15]
mov qword [rsp + 0x20], r14
mov r8, r12
call dbg.sqlite3AuthCheck
test eax, eax
mov dword [rsp + 0x60], eax
jne 0x1401e7d20
mov byte [rbx + 0x1c], 1
mov r9, r12
mov r8, r12
mov rcx, rbx
lea rax, [0x1403370ef]
mov dword [rsp + 0x30], 0
mov qword [rsp + 0x28], rax
lea rax, str.SELECT_1_FROM___w_.sqlite_master_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name___d___Q___d_NULL
mov dword [rsp + 0x20], 0
mov rdx, rax
mov qword [rsp + 0x50], rax
call dbg.sqlite3NestedParse
lea r9, [0x1403370ef]
mov r8, r12
mov rcx, rbx
mov dword [rsp + 0x20], 0
lea rdx, str.SELECT_1_FROM_temp.sqlite_master_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name__1___Q___d_NULL
call dbg.sqlite3NestedParse
mov r9, r12
mov r8, r12
mov rcx, rbx
lea rdx, str.UPDATE___w_.sqlite_master_SET_sql__sqlite_rename_quotefix__Q__sql_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual__
call dbg.sqlite3NestedParse
lea rdx, str.UPDATE_temp.sqlite_master_SET_sql__sqlite_rename_quotefix_temp__sql_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual__
mov rcx, rbx
call dbg.sqlite3NestedParse
mov rax, qword [r15]
mov r9d, r13d
mov r8, r12
lea rdx, str.UPDATE___w_.sqlite_master_SET_sql__sqlite_drop_column__d__sql___d__WHERE__typetable_AND_tbl_name_Q_COLLATE_nocase_
mov rcx, rbx
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x20], eax
call dbg.sqlite3NestedParse
cmp qword [rbx + 0x10], 0
je 0x1401e7e5a
mov r8d, 2
mov edx, r13d
mov rcx, rbx
call sym.renameReloadSchema.part.0
mov byte [rbx + 0x1c], 1
mov rdx, qword [rsp + 0x50]
mov r9, r12
mov r8, r12
lea rax, str.after_drop_column
mov rcx, rbx
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
call dbg.sqlite3NestedParse
mov dword [rsp + 0x20], 1
mov r8, r12
mov rcx, rbx
lea r9, str.after_drop_column
lea rdx, str.SELECT_1_FROM_temp.sqlite_master_WHERE_name_NOT_LIKE_sqliteX____ESCAPE_X_AND_sql_NOT_LIKE_create_virtual___AND_sqlite_rename_test__Q__sql__type__name__1___Q___d_NULL
call dbg.sqlite3NestedParse
jmp 0x1401e7a62
mov r10, r12
mov r12d, esi
mov rdi, qword [rsp + 0x48]
test r12d, r12d
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
je 0x1401e803d
mov eax, dword [rsp + 0x60]
mov r9d, r12d
mov edx, 0x61
mov rcx, rbp
mov r8d, dword [rsp + 0x50]
mov qword [rsp + 0x48], r10
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov r10, qword [rsp + 0x48]
test r10, r10
je 0x1401e8073
movzx eax, word [r10 + 0x5e]
mov edx, 0x8a
mov rcx, rbp
mov r9d, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x5c]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
movsxd rax, dword [rbp + 0x90]
test eax, eax
jle 0x1401e7f4c
mov rdx, qword [rbp + 0x88]
lea rax, [rax + rax*2]
mov ecx, 2
lea rax, [rdx + rax*8]
mov word [rax - 0x16], cx
mov ebx, dword [rsp + 0x68]
mov edx, 0x27
mov rcx, rbp
mov dword [rsp + 0x20], 0
mov r8d, dword [rsp + 0x5c]
lea r9d, [rbx + 1]
call sym.sqlite3VdbeAddOp3
mov rcx, qword [rbp]
lea rax, [0x1403b4900]
mov edx, dword [rbp + 0x90]
cmp byte [rcx + 0x67], 0
jne 0x1401e7f97
movsxd rax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [rbp + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
jmp 0x1401e7d20
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov edx, 0x4b
mov rcx, rbp
call sym.sqlite3VdbeAddOp3
jmp 0x1401e7c2c
mov eax, 0xffffffff
jmp 0x1401e7c94
mov edx, 0xffffffff
jmp 0x1401e7cb6
cmp qword [rbx + 0xa8], 0
je 0x1401e80bd
mov rcx, rbx
call dbg.sqlite3VdbeCreate
mov rbp, rax
jmp 0x1401e7a8b
mov r8d, dword [rsp + 0x5c]
mov edx, 0x87
mov r9d, eax
mov rcx, rbp
mov dword [rsp + 0x20], 0
mov dword [rsp + 0x50], r11d
call sym.sqlite3VdbeAddOp3
movsx eax, word [r15 + 0x36]
xor r10d, r10d
mov r11d, dword [rsp + 0x50]
mov edx, eax
add eax, dword [rbx + 0x38]
add eax, 1
test dx, dx
mov dword [rsp + 0x60], eax
mov dword [rbx + 0x38], eax
lea eax, [r11 + 2]
mov dword [rsp + 0x50], eax
jg 0x1401e7be4
add dword [rbx + 0x38], 1
xor r8d, r8d
mov edx, 0x4b
mov rcx, rbp
mov r9d, dword [rsp + 0x50]
mov dword [rsp + 0x20], 0
mov r12d, 1
mov qword [rsp + 0x48], r10
call sym.sqlite3VdbeAddOp3
mov r10, qword [rsp + 0x48]
jmp 0x1401e7ed1
mov eax, dword [rsp + 0x6c]
mov edx, pe_nt_image_headers64
mov rcx, rbp
mov r9d, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x5c]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
jmp 0x1401e7f29
mov r8d, dword [rsp + 0x5c]
xor r10d, r10d
xor r9d, r9d
mov edx, 0x24
mov dword [rsp + 0x20], r10d
mov rcx, rbp
call dbg.growOp3
mov dword [rsp + 0x68], eax
jmp 0x1401e7b00
mov rax, qword [rbx]
test byte [rax + 0x60], 8
jne 0x1401e7fde
mov byte [rbx + 0x23], 1
jmp 0x1401e7fde
test r12d, r12d
je 0x1401e803d
mov eax, dword [rsp + 0x60]
mov r9d, r12d
mov edx, 0x61
mov rcx, rbp
mov r8d, dword [rsp + 0x50]
mov qword [rsp + 0x48], r10
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov r10, qword [rsp + 0x48]
jmp 0x1401e7f01
add eax, 1
cmp word [r15 + 0x36], 0
mov dword [rsp + 0x60], eax
mov dword [rbx + 0x38], eax
lea eax, [r11 + 2]
mov dword [rsp + 0x50], eax
jg 0x1401e7be4
jmp 0x1401e803d
jmp sym.sqlite3AlterDropColumn.cold