Function at 0x14020f6e0
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 r12, r8
je 0x14020f728
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
mov r14, rax
test rax, rax
je 0x14020f705
mov rdx, rax
mov rcx, rbx
call dbg.isAlterableTable
mov r15d, eax
test eax, eax
jne 0x14020f705
movzx eax, byte [r14 + 0x3f]
mov rdx, qword [r14]
cmp al, 2
je 0x14020fb80
lea r9, str.virtual_table
cmp al, 1
je 0x14020fb87
mov rdx, r12
mov rcx, rdi
call dbg.sqlite3NameFromToken
mov rbp, rax
test rax, rax
je 0x14020f705
mov rdx, rax
mov rcx, r14
call dbg.sqlite3ColumnIndex
mov dword [rsp + 0x40], eax
test eax, eax
js 0x14020fba7
movsxd rax, dword [rsp + 0x40]
lea r12, [rax + rax*2]
mov rax, qword [r14 + 8]
shl r12, 3
movzx eax, word [rax + r12 + 0x12]
test al, 9
jne 0x14020fbd0
cmp word [r14 + 0x36], 1
jle 0x14020fbf8
mov rdx, qword [r14 + 0x60]
mov rax, qword [rdi + 0x20]
test rdx, rdx
je 0x14020fc0c
cmp rdx, qword [rax + 0x18]
je 0x14020fc18
add rax, 0x20
mov rcx, rax
add rax, 0x20
add r15d, 1
cmp rdx, qword [rax - 8]
jne 0x14020f7e0
mov r13, qword [rcx]
mov r9, qword [r14]
mov qword [rsp + 0x20], rbp
mov edx, 0x1a
mov rcx, rbx
mov r8, r13
call dbg.sqlite3AuthCheck
test eax, eax
jne 0x14020fbc0
lea rax, [0x14038ca94]
mov r9, r13
mov r8, r13
mov rcx, rbx
mov byte [rbx + 0x1c], 1
mov qword [rsp + 0x28], rax
xor eax, eax
cmp r15d, 1
sete al
mov dword [rsp + 0x30], 0
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 rdx, rax
mov qword [rsp + 0x48], rax
call dbg.sqlite3NestedParse
cmp r15d, 1
jne 0x14020fc74
mov r9, r13
mov r8, r13
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__
mov rcx, rbx
call dbg.sqlite3NestedParse
mov rax, qword [r14]
mov r8, r13
mov rcx, rbx
mov r9d, 1
lea rdx, str.UPDATE___w_.sqlite_master_SET_sql__sqlite_drop_column__d__sql___d__WHERE__typetable_AND_tbl_name_Q_COLLATE_nocase_
mov qword [rsp + 0x28], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x20], eax
call dbg.sqlite3NestedParse
cmp qword [rbx + 0x10], 0
je 0x14020f8b7
mov r8d, 2
mov edx, 1
mov rcx, rbx
call sym.renameReloadSchema.part.0
lea rax, str.after_drop_column
mov r9, r13
mov r8, r13
mov rcx, rbx
mov byte [rbx + 0x1c], 1
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 1
call dbg.sqlite3NestedParse
mov r13d, dword [rbx + 0x30]
test r13d, r13d
jne 0x14020fbc0
mov rax, qword [r14 + 8]
test byte [rax + r12 + 0x12], 0x20
jne 0x14020fbc0
mov r10, qword [rbx + 0x10]
test r10, r10
je 0x14020fe88
mov edx, dword [rbx + 0x34]
mov r9, r14
mov r8d, r15d
mov rcx, rbx
mov qword [rsp + 0x50], r10
lea eax, [rdx + 1]
mov dword [rsp + 0x48], edx
mov dword [rbx + 0x34], eax
mov dword [rsp + 0x20], 0x71
call sym.sqlite3OpenTable
mov r10, qword [rsp + 0x50]
mov eax, dword [r10 + 0x90]
mov dword [rsp + 0x60], eax
cmp eax, dword [r10 + 0x94]
jge 0x14020ff63
mov ecx, dword [rsp + 0x60]
lea eax, [rcx + 1]
mov dword [r10 + 0x90], eax
movsxd rax, ecx
mov ecx, dword [rsp + 0x48]
lea rdx, [rax + rax*2]
mov rax, qword [r10 + 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]
lea eax, [r11 + 1]
mov dword [rsp + 0x64], eax
mov dword [rbx + 0x38], eax
test byte [r14 + 0x30], 0x80
je 0x14020fea6
mov r15, qword [r14 + 0x10]
test r15, r15
jne 0x14020f9cd
jmp 0x14020fffc
mov r15, qword [r15 + 0x28]
test r15, r15
je sym.sqlite3AlterDropColumn.cold
movzx eax, byte [r15 + 0x64]
and eax, 3
cmp al, 2
jne 0x14020f9c0
movzx eax, word [r15 + 0x60]
mov ecx, dword [rsp + 0x64]
add eax, ecx
cmp word [r15 + 0x5e], 0
mov dword [rbx + 0x38], eax
je 0x14020ffd9
lea eax, [r11 + 2]
xor r12d, r12d
mov qword [rsp + 0x58], rdi
mov edi, dword [rsp + 0x48]
mov dword [rsp + 0x50], eax
mov r13, rsi
mov esi, eax
mov qword [rsp + 0x68], rbp
mov ebp, r12d
mov r12, rbx
mov rbx, r10
nop word [rax + rax]
lea eax, [rsi + rbp]
mov r9d, ebp
mov r8d, edi
mov edx, 0x5e
mov dword [rsp + 0x20], eax
mov rcx, rbx
add ebp, 1
call sym.sqlite3VdbeAddOp3
movzx eax, word [r15 + 0x5e]
cmp eax, ebp
jg 0x14020fa20
mov rsi, r13
mov r13d, eax
mov eax, dword [r12 + 0x38]
mov rdi, qword [rsp + 0x58]
mov r10, rbx
mov rbp, qword [rsp + 0x68]
mov rbx, r12
add eax, 1
cmp word [r14 + 0x36], 0
mov dword [rsp + 0x58], eax
mov dword [r12 + 0x38], eax
jle 0x14020ffa4
mov eax, dword [rsp + 0x40]
mov qword [rsp + 0x68], rbp
xor r12d, r12d
mov ebp, r13d
mov qword [rsp + 0x40], rdi
mov r13, r15
mov r15d, dword [rsp + 0x50]
mov qword [rsp + 0x70], rbx
mov edi, eax
mov ebx, eax
mov qword [rsp + 0x78], rsi
mov rsi, r10
jmp 0x14020fae3
movsx eax, word [r14 + 0x34]
cmp eax, r8d
je 0x14020fe57
mov dword [rsp + 0x20], r9d
mov r8d, dword [rsp + 0x48]
mov r9d, r12d
mov rdx, r14
mov rcx, rsi
call sym.sqlite3ExprCodeGetColumnOfTable
add ebp, 1
movsx eax, word [r14 + 0x36]
add r12, 1
cmp eax, r12d
jle 0x14020fd4f
mov r8d, r12d
cmp ebx, r12d
je 0x14020fad1
mov r9, qword [r14 + 8]
lea rax, [r12 + r12*2]
lea rax, [r9 + rax*8]
test byte [rax + 0x12], 0x20
jne 0x14020fad1
lea r9d, [rbp + r15]
test r13, r13
je 0x14020faa8
movzx ecx, word [r13 + 0x60]
test ecx, ecx
je 0x14020fad1
mov r9, qword [r13 + 8]
xor eax, eax
jmp 0x14020fb2c
add rax, 1
cmp ecx, eax
jle 0x14020fe74
cmp word [r9 + rax*2], r12w
jne 0x14020fb20
cwde
xor edx, edx
jmp 0x14020fb4c
add rdx, 1
cmp ecx, edx
jle 0x14020fe7e
cmp di, word [r9 + rdx*2]
jne 0x14020fb40
movsx edx, dx
movzx ecx, word [r13 + 0x5e]
cmp ecx, eax
jg 0x14020fad1
cmp eax, edx
lea r9d, [rax + r15]
setg al
movzx eax, al
sub r9d, eax
jmp 0x14020faa8
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 0x14020f705
mov r8, r12
lea rdx, str.no_such_column:___T_
mov rcx, rbx
call dbg.sqlite3ErrorMsg
nop dword [rax]
mov rdx, rbp
mov rcx, rdi
call sym.sqlite3DbFreeNN
jmp 0x14020f705
test al, 1
lea r8, str.UNIQUE
mov r9, rbp
mov rcx, rbx
lea rax, [0x14038d3ad]
lea rdx, str.cannot_drop__s_column:___s_
cmovne r8, rax
call dbg.sqlite3ErrorMsg
jmp 0x14020fbc0
mov r8, rbp
lea rdx, str.cannot_drop_column___s_:_no_other_columns_exist
mov rcx, rbx
call dbg.sqlite3ErrorMsg
jmp 0x14020fbc0
sub rax, 0x100000
mov r15d, 0xffff8000
mov r13, qword [rax]
mov r9, qword [r14]
mov qword [rsp + 0x20], rbp
mov edx, 0x1a
mov rcx, rbx
mov r8, r13
call dbg.sqlite3AuthCheck
test eax, eax
jne 0x14020fbc0
lea rax, [0x14038ca94]
mov r9, r13
mov r8, r13
mov rcx, rbx
mov byte [rbx + 0x1c], 1
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 + 0x30], 0
mov rdx, rax
mov dword [rsp + 0x20], 0
mov qword [rsp + 0x48], rax
call dbg.sqlite3NestedParse
mov dword [rsp + 0x20], 0
mov r8, r13
mov rcx, rbx
lea r9, [0x14038ca94]
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, r13
mov r8, r13
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 [r14]
mov r9d, r15d
mov r8, r13
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 + 0x40]
mov dword [rsp + 0x20], eax
call dbg.sqlite3NestedParse
cmp qword [rbx + 0x10], 0
je 0x14020fcf6
mov r8d, 2
mov edx, r15d
mov rcx, rbx
call sym.renameReloadSchema.part.0
lea rax, str.after_drop_column
mov r9, r13
mov r8, r13
mov rcx, rbx
mov byte [rbx + 0x1c], 1
mov rdx, qword [rsp + 0x48]
mov dword [rsp + 0x30], 1
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], 0
call dbg.sqlite3NestedParse
mov dword [rsp + 0x20], 1
mov r8, r13
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
mov rcx, rbx
call dbg.sqlite3NestedParse
jmp 0x14020f8ea
mov r15, r13
mov r13d, ebp
mov r10, rsi
mov rdi, qword [rsp + 0x40]
mov rbp, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x70]
mov rsi, qword [rsp + 0x78]
test r13d, r13d
je 0x14020feff
mov eax, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x50]
mov rcx, r10
mov r9d, r13d
mov edx, 0x61
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
test r15, r15
mov r10, qword [rsp + 0x40]
je 0x14020ff35
movzx eax, word [r15 + 0x5e]
mov r9d, dword [rsp + 0x58]
mov rcx, r10
mov edx, 0x8a
mov r8d, dword [rsp + 0x48]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x50]
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp4Int
mov r10, qword [rsp + 0x40]
movsxd rax, dword [r10 + 0x90]
test eax, eax
jle 0x14020fdfa
mov rdx, qword [r10 + 0x88]
lea rax, [rax + rax*2]
mov ecx, 2
lea rax, [rdx + rax*8]
mov word [rax - 0x16], cx
mov ebx, dword [rsp + 0x60]
mov r8d, dword [rsp + 0x48]
mov rcx, r10
mov edx, 0x27
mov dword [rsp + 0x20], 0
lea r9d, [rbx + 1]
mov qword [rsp + 0x40], r10
call sym.sqlite3VdbeAddOp3
mov r10, qword [rsp + 0x40]
lea rax, [0x140440540]
mov rcx, qword [r10]
mov edx, dword [r10 + 0x90]
cmp byte [rcx + 0x67], 0
jne 0x14020fe4f
movsxd rax, ebx
lea rcx, [rax + rax*2]
mov rax, qword [r10 + 0x88]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
jmp 0x14020fbc0
mov dword [rsp + 0x20], 0
xor r8d, r8d
mov edx, 0x4b
mov rcx, rsi
call sym.sqlite3VdbeAddOp3
jmp 0x14020face
mov eax, 0xffffffff
jmp 0x14020fb34
mov edx, 0xffffffff
jmp 0x14020fb56
cmp qword [rbx + 0xb0], 0
je 0x14020ff8e
mov rcx, rbx
call dbg.sqlite3VdbeCreate
mov r10, rax
jmp 0x14020f914
mov r8d, dword [rsp + 0x48]
mov edx, 0x87
mov rcx, r10
mov r9d, eax
mov dword [rsp + 0x20], 0
xor r15d, r15d
mov dword [rsp + 0x50], r11d
mov qword [rsp + 0x68], r10
call sym.sqlite3VdbeAddOp3
movsx eax, word [r14 + 0x36]
mov r11d, dword [rsp + 0x50]
mov r10, qword [rsp + 0x68]
mov edx, eax
add eax, dword [rbx + 0x38]
add eax, 1
test dx, dx
mov dword [rsp + 0x58], eax
mov dword [rbx + 0x38], eax
lea eax, [r11 + 2]
mov dword [rsp + 0x50], eax
jg 0x14020fa79
add dword [rbx + 0x38], 1
mov r9d, dword [rsp + 0x50]
mov rcx, r10
xor r8d, r8d
mov edx, 0x4b
mov dword [rsp + 0x20], 0
mov r13d, 1
mov qword [rsp + 0x40], r10
call sym.sqlite3VdbeAddOp3
mov r10, qword [rsp + 0x40]
jmp 0x14020fd75
mov eax, dword [rsp + 0x64]
mov r9d, dword [rsp + 0x58]
mov rcx, r10
mov edx, pe_nt_image_headers64
mov r8d, dword [rsp + 0x48]
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov r10, qword [rsp + 0x40]
jmp 0x14020fdd7
xor r11d, r11d
mov r8d, dword [rsp + 0x48]
mov rcx, r10
xor r9d, r9d
mov dword [rsp + 0x20], r11d
mov edx, 0x24
call dbg.growOp3
mov r10, qword [rsp + 0x50]
mov dword [rsp + 0x60], eax
jmp 0x14020f996
mov rax, qword [rbx]
test byte [rax + 0x60], 8
jne 0x14020fe96
mov byte [rbx + 0x23], 1
jmp 0x14020fe96
test r13d, r13d
je 0x14020feff
mov eax, dword [rsp + 0x58]
mov r8d, dword [rsp + 0x50]
mov rcx, r10
mov r9d, r13d
mov edx, 0x61
mov qword [rsp + 0x40], r10
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov r10, qword [rsp + 0x40]
jmp 0x14020fda5
add eax, 1
cmp word [r14 + 0x36], 0
mov dword [rsp + 0x58], eax
mov dword [rbx + 0x38], eax
lea eax, [r11 + 2]
mov dword [rsp + 0x50], eax
jg 0x14020fa79
jmp 0x14020feff
jmp sym.sqlite3AlterDropColumn.cold