Function at 0x1401b10e0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
mov r15, qword [rcx]
mov rax, qword [r15]
mov qword [rsp + 0x140], rcx
mov r14, rdx
mov qword [rsp + 0x40], rax
mov eax, dword [rdx + 4]
mov dword [rsp + 0x6c], eax
or eax, 0x40
mov dword [rdx + 4], eax
mov rax, qword [rsp + 0x40]
cmp byte [rax + 0x67], 0
jne 0x1401b1c79
mov dword [rsp + 0xa8], 1
mov eax, dword [rsp + 0x6c]
and eax, 0x40
mov dword [rsp + 0xac], eax
jne 0x1401b2317
cmp word [rcx + 0x24], 0
je 0x1401b115e
mov eax, dword [r15 + 0x8c]
inc eax
mov dword [r15 + 0x8c], eax
mov dword [rdx + 0x10], eax
mov rax, qword [r14 + 0x28]
cmp qword [r15 + 0x198], 0
mov qword [rsp + 0x90], rax
mov rax, qword [r14 + 0x20]
mov qword [rsp + 0x98], rax
mov rax, qword [r14 + 0x68]
je 0x1401b11bb
bt dword [rsp + 0x6c], 0x15
jae 0x1401b11bb
test rax, rax
je 0x1401b119e
mov rax, qword [r14 + 0x68]
mov dword [rax + 4], 1
jmp 0x1401b11bb
mov rcx, qword [rsp + 0x40]
mov edx, 0x40
call sym.sqlite3DbMallocZero
test rax, rax
mov qword [r14 + 0x68], rax
jne 0x1401b1191
jmp 0x1401b1c79
mov rdx, qword [r14 + 0x68]
mov rcx, r15
xor r8d, r8d
call sym.sqlite3WithPush
mov rdx, qword [rsp + 0x90]
mov rcx, r15
call sym.sqlite3SrcListAssignCursors
mov rax, qword [rsp + 0x90]
add rax, 8
mov qword [rsp + 0xc0], rax
mov rbx, rax
xor eax, eax
mov dword [rsp + 0x58], eax
mov rax, qword [rsp + 0x90]
mov esi, dword [rsp + 0x58]
cmp dword [rax], esi
jle 0x1401b1816
cmp qword [rbx + 0x20], 0
je 0x1401b121c
inc dword [rsp + 0x58]
add rbx, 0x68
jmp 0x1401b11f7
mov rcx, qword [rbx + 0x10]
test rcx, rcx
jne 0x1401b12d2
mov rdx, qword [rbx + 0x28]
mov rcx, qword [rsp + 0x140]
call sym.sqlite3WalkSelect
test eax, eax
jne 0x1401b1c79
mov rcx, qword [r15]
mov edx, 0x68
mov rsi, qword [rbx + 0x28]
call sym.sqlite3DbMallocZero
test rax, rax
mov rdi, rax
mov qword [rbx + 0x20], rax
je 0x1401b1c79
mov rdx, qword [rbx + 0x18]
mov dword [rax + 0x2c], 1
mov rcx, qword [r15]
test rdx, rdx
je 0x1401b127d
call sym.sqlite3DbStrDup
jmp 0x1401b128c
lea rdx, [0x1402f4b9e]
mov r8, rbx
call sym.sqlite3MPrintf
mov qword [rdi], rax
mov rax, rsi
mov rsi, qword [rsi + 0x50]
test rsi, rsi
jne 0x1401b128f
mov rdx, qword [rax + 0x20]
lea r9, [rdi + 8]
mov rcx, r15
lea r8, [rdi + 0x36]
call sym.sqlite3ColumnsFromExprList.isra.0
mov word [rdi + 0x34], 0xffff
or dword [rdi + 0x30], 0x4200
mov word [rdi + 0x3a], 0xc8
cmp dword [r15 + 0x30], 0
je 0x1401b17f4
jmp 0x1401b1c79
mov rdi, qword [r15 + 0x198]
test rdi, rdi
je 0x1401b16a7
cmp dword [r15 + 0x30], 0
jne 0x1401b16a7
cmp qword [rbx + 8], 0
jne 0x1401b16a7
test byte [rbx + 0x41], 2
jne 0x1401b16a7
mov r11d, dword [rdi]
xor ebp, ebp
cmp r11d, ebp
jle 0x1401b1355
imul rax, rbp, 0x30
mov rsi, qword [rdi + rax + 0x10]
mov rdx, rsi
call sym.sqlite3StrICmp
mov r8d, eax
lea rax, [rbp + 1]
test r8d, r8d
jne 0x1401b1350
mov dword [rsp + 0x50], ebp
movsxd rbp, ebp
mov rax, qword [r15]
imul rbp, rbp, 0x30
mov qword [rsp + 0x48], rax
add rbp, rdi
mov rdx, qword [rbp + 0x28]
test rdx, rdx
je 0x1401b136d
mov r8, rsi
jmp 0x1401b1931
mov rbp, rax
jmp 0x1401b1307
cmp dword [rdi + 4], 0
jne 0x1401b16a7
mov rdi, qword [rdi + 8]
test rdi, rdi
jne 0x1401b1302
jmp 0x1401b16a7
test byte [rbx + 0x40], 4
je 0x1401b137b
mov r8, rcx
jmp 0x1401b1701
mov rcx, qword [rsp + 0x48]
mov edx, 0x68
call sym.sqlite3DbMallocZero
test rax, rax
mov rsi, rax
je 0x1401b1c79
mov r12, qword [rbp + 0x30]
test r12, r12
jne 0x1401b13eb
mov rcx, qword [rsp + 0x48]
mov edx, 0x14
call sym.sqlite3DbMallocZero
test rax, rax
mov r12, rax
mov qword [rbp + 0x30], rax
jne 0x1401b13cc
mov rcx, qword [rsp + 0x48]
mov rdx, rsi
call sym.sqlite3DbFree
jmp 0x1401b1c79
lea rdx, [sym.sqlite3DbFree]
mov r8, rax
mov rcx, r15
call sym.sqlite3ParserAddCleanup
test rax, rax
je 0x1401b13ba
mov al, byte [rbp + 0x38]
mov byte [r12 + 0x12], al
movsxd r13, dword [rsp + 0x50]
mov qword [rbx + 0x20], rsi
mov rcx, qword [rsp + 0x48]
mov dword [rsi + 0x2c], 1
imul r13, r13, 0x30
add r13, rdi
mov rdx, qword [r13 + 0x10]
call sym.sqlite3DbStrDup
mov rdx, qword [r13 + 0x20]
xor r8d, r8d
mov word [rsi + 0x34], 0xffff
or dword [rsi + 0x30], 0x4200
mov qword [rsi], rax
mov rcx, qword [rsp + 0x48]
mov word [rsi + 0x3a], 0xc8
call sym.sqlite3SelectDup
mov qword [rbx + 0x28], rax
mov rbp, rax
mov rax, qword [rsp + 0x48]
cmp byte [rax + 0x67], 0
jne 0x1401b1c79
or dword [rbp + 4], 0x4000000
test byte [rbx + 0x40], 2
je 0x1401b146a
mov r8, qword [rbx + 0x58]
lea rdx, str.no_such_index:___s_
jmp 0x1401b1931
or byte [rbx + 0x41], 1
mov qword [rbx + 0x60], r12
or r8d, 0xffffffff
inc dword [r12]
mov r12, rbp
mov r10b, byte [rbp]
lea eax, [r10 + 0x7a]
mov byte [rsp + 0x60], al
cmp byte [rsp + 0x60], 1
jbe 0x1401b14e2
movsxd rax, dword [rsp + 0x50]
lea rcx, str.circular_reference:__s
mov r13, qword [r15 + 0x198]
imul rax, rax, 0x30
test byte [rbp + 5], 0x20
mov qword [rdi + rax + 0x28], rcx
mov qword [r15 + 0x198], rdi
je 0x1401b15ca
mov rax, qword [rbp + 0x68]
mov rdx, r12
mov rcx, qword [rsp + 0x140]
mov qword [r12 + 0x68], rax
call sym.sqlite3WalkSelect
xor ecx, ecx
mov qword [r12 + 0x68], rcx
jmp 0x1401b15da
cmp r10b, byte [r12]
jne 0x1401b1490
mov r9, qword [r12 + 0x28]
mov eax, dword [r9]
lea r11, [r9 + 0x10]
mov dword [rsp + 0x70], eax
xor eax, eax
mov dword [rsp + 0x48], eax
mov ecx, dword [rsp + 0x70]
cmp dword [rsp + 0x48], ecx
jge 0x1401b15b4
cmp qword [r11], 0
jne 0x1401b15a7
mov rcx, qword [r11 + 8]
test rcx, rcx
je 0x1401b15a7
mov rdx, qword [r13 + 0x10]
mov dword [rsp + 0x88], r8d
mov qword [rsp + 0x80], r9
mov byte [rsp + 0x78], r10b
call sym.sqlite3StrICmp
mov r10b, byte [rsp + 0x78]
test eax, eax
mov r9, qword [rsp + 0x80]
mov r8d, dword [rsp + 0x88]
jne 0x1401b15a7
movsxd rax, dword [rsp + 0x48]
mov qword [r11 + 0x18], rsi
inc dword [rsi + 0x2c]
imul rax, rax, 0x68
or byte [r9 + rax + 0x48], 0x40
mov eax, dword [r12 + 4]
bt eax, 0xd
jae 0x1401b158a
mov r8, rdx
lea rdx, str.multiple_references_to_recursive_table:__s
jmp 0x1401b1931
or ah, 0x20
test r8d, r8d
mov dword [r12 + 4], eax
jns 0x1401b15a3
mov r8d, dword [r15 + 0x34]
lea eax, [r8 + 1]
mov dword [r15 + 0x34], eax
mov dword [r11 + 0x3c], r8d
inc dword [rsp + 0x48]
add r11, 0x68
jmp 0x1401b14fe
test byte [r12 + 5], 0x20
je 0x1401b1490
mov r12, qword [r12 + 0x50]
jmp 0x1401b1489
mov rcx, qword [rsp + 0x140]
mov rdx, rbp
call sym.sqlite3WalkSelect
test eax, eax
jne 0x1401b1633
mov qword [r15 + 0x198], rdi
mov rax, rbp
mov rdx, rax
mov rax, qword [rax + 0x50]
test rax, rax
jne 0x1401b15e8
mov rax, qword [rdx + 0x20]
movsxd rdx, dword [rsp + 0x50]
imul rdx, rdx, 0x30
add rdx, rdi
mov rcx, qword [rdx + 0x18]
test rcx, rcx
je 0x1401b163f
test rax, rax
je 0x1401b1642
mov r9d, dword [rax]
mov eax, dword [rcx]
cmp r9d, eax
je 0x1401b1642
mov dword [rsp + 0x20], eax
mov r8, qword [rdx + 0x10]
mov rcx, r15
lea rdx, str.table__s_has__d_values_for__d_columns
call sym.sqlite3ErrorMsg
mov qword [r15 + 0x198], r13
jmp 0x1401b1c79
mov rcx, rax
lea r9, [rsi + 8]
mov rdx, rcx
mov rcx, r15
lea r8, [rsi + 0x36]
call sym.sqlite3ColumnsFromExprList.isra.0
cmp byte [rsp + 0x60], 1
movsxd rsi, dword [rsp + 0x50]
ja 0x1401b1690
test byte [rbp + 5], 0x20
lea rdx, str.multiple_recursive_references:__s
mov rcx, qword [rsp + 0x140]
lea rax, str.recursive_reference_in_a_subquery:__s
cmovne rax, rdx
imul rdx, rsi, 0x30
mov qword [rdi + rdx + 0x28], rax
mov rdx, rbp
call sym.sqlite3WalkSelect
imul rax, rsi, 0x30
xor edx, edx
mov qword [rdi + rax + 0x28], rdx
mov qword [r15 + 0x198], r13
jmp 0x1401b17f4
xor edx, edx
mov r8, rbx
mov rcx, r15
call sym.sqlite3LocateTableItem
test rax, rax
mov rdi, rax
mov qword [rbx + 0x20], rax
je 0x1401b1c79
mov eax, dword [rax + 0x2c]
cmp eax, 0xfffe
jbe 0x1401b16eb
mov r8, qword [rdi]
lea rdx, str.too_many_references_to___s_:_max_65535
mov rcx, r15
call sym.sqlite3ErrorMsg
xor eax, eax
mov qword [rbx + 0x20], rax
jmp 0x1401b1c79
inc eax
mov dword [rdi + 0x2c], eax
mov al, byte [rdi + 0x3f]
cmp al, 1
je 0x1401b1715
test byte [rbx + 0x40], 4
je 0x1401b170d
mov r8, qword [rbx + 0x10]
lea rdx, str._s_is_not_a_function
jmp 0x1401b1931
test al, al
je 0x1401b17f4
mov rax, qword [rsp + 0x140]
mov rdx, rdi
mov rcx, r15
mov esi, dword [rax + 0x24]
call sym.sqlite3ViewGetColumnNames
test eax, eax
jne 0x1401b1c79
mov al, byte [rdi + 0x3f]
cmp al, 2
jne 0x1401b177c
mov rax, qword [rsp + 0x40]
test byte [rax + 0x33], 0x80
jne 0x1401b1765
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x38]
cmp qword [rdi + 0x60], rax
je 0x1401b1765
mov r8, qword [rdi]
lea rdx, str.access_to_view___s__prohibited
mov rcx, r15
call sym.sqlite3ErrorMsg
mov rdx, qword [rdi + 0x40]
xor r8d, r8d
mov rcx, qword [rsp + 0x40]
call sym.sqlite3SelectDup
mov qword [rbx + 0x28], rax
jmp 0x1401b17bb
dec al
jne 0x1401b17bb
cmp byte [rbx + 0x40], 0
jns 0x1401b17bb
mov rdx, qword [rdi + 0x50]
test rdx, rdx
je 0x1401b17bb
mov rax, qword [rsp + 0x40]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x48], rax
mov al, byte [rsp + 0x48]
shr al, 7
cmp al, byte [rdx + 0x1d]
jae 0x1401b17bb
mov r8, qword [rdi]
lea rdx, str.unsafe_use_of_virtual_table___s_
mov rcx, r15
call sym.sqlite3ErrorMsg
mov rax, qword [rsp + 0x140]
and si, 0xff
mov rdx, qword [rbx + 0x28]
mov bp, word [rdi + 0x36]
mov word [rdi + 0x36], 0xffff
mov rcx, rax
mov word [rax + 0x24], 1
call sym.sqlite3WalkSelect
mov rax, qword [rsp + 0x140]
mov word [rax + 0x24], si
mov word [rdi + 0x36], bp
test byte [rbx + 0x40], 2
je 0x1401b1212
mov rdx, rbx
mov rcx, r15
call sym.sqlite3IndexedByLookup
test eax, eax
je 0x1401b1212
jmp 0x1401b1c79
mov eax, dword [r15 + 0x30]
test eax, eax
mov dword [rsp + 0xa8], eax
jne 0x1401b1c79
mov rbp, qword [r14 + 0x28]
xor eax, eax
mov dword [rsp + 0x48], eax
lea rax, [rsp + 0xec]
mov qword [rsp + 0xb0], rax
lea rbx, [rbp + 0x70]
jmp 0x1401b1887
test r12, r12
je 0x1401b187f
mov edx, dword [rbx + 0x44]
mov rcx, r12
mov r8d, dword [rsp + 0x80]
call sym.sqlite3SetJoinExpr
mov rdx, qword [r14 + 0x30]
mov r8, r12
mov rcx, r15
xor r12d, r12d
call sym.sqlite3ExprAnd
mov qword [r14 + 0x30], rax
or byte [rbx + 0x41], 8
mov qword [rbx + 0x48], r12
inc dword [rsp + 0x48]
add rbx, 0x68
mov eax, dword [rbp]
dec eax
cmp dword [rsp + 0x48], eax
jge 0x1401b1c89
mov rax, qword [rbx + 0x20]
cmp qword [rbx - 0x48], 0
mov qword [rsp + 0x60], rax
je 0x1401b187f
test rax, rax
je 0x1401b187f
mov al, byte [rbx + 0x3c]
mov edx, eax
and edx, 0x20
neg dl
mov dl, byte [rbx + 0x41]
sbb esi, esi
mov dword [rsp + 0x80], esi
add dword [rsp + 0x80], 2
test al, 4
jne 0x1401b193e
test byte [rbx + 0x41], 4
mov r12, qword [rbx + 0x48]
je 0x1401b1849
mov rax, qword [r15]
xor esi, esi
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0xe8]
mov qword [rsp + 0xa0], rax
cmp dword [r12], esi
jle 0x1401b187f
mov rax, rsi
mov rcx, qword [rsp + 0x60]
shl rax, 4
mov rax, qword [r12 + rax + 8]
mov rdx, rax
mov qword [rsp + 0x50], rax
call sym.sqlite3ColumnIndex
test eax, eax
mov dword [rsp + 0x78], eax
jns 0x1401b1a09
mov r8, qword [rsp + 0x50]
lea rdx, str.cannot_join_using_column__s___column_not_present_in_both_tables
mov rcx, r15
call sym.sqlite3ErrorMsg
jmp 0x1401b1c79
and dl, 4
jne 0x1401b194c
mov r12, qword [rbx + 0x48]
test r12, r12
je 0x1401b1963
lea rdx, str.a_NATURAL_join_may_not_have_an_ON_or_USING_clause
xor r8d, r8d
mov rcx, r15
call sym.sqlite3ErrorMsg
jmp 0x1401b1c79
xor edi, edi
mov rax, qword [rsp + 0x60]
movsx eax, word [rax + 0x36]
cmp eax, edi
jle 0x1401b19ec
mov rsi, qword [rsp + 0x60]
imul rax, rdi, 0x18
add rax, qword [rsi + 8]
test byte [rax + 0x12], 2
jne 0x1401b19e4
mov r13, qword [rax]
xor eax, eax
xor edx, edx
mov dword [rsp + 0x30], 1
mov r8d, dword [rsp + 0x48]
mov qword [rsp + 0x28], rax
mov rcx, rbp
mov qword [rsp + 0x20], rax
mov r9, r13
call sym.tableAndColumnIndex
test eax, eax
je 0x1401b19e4
xor r8d, r8d
mov rdx, r12
mov rcx, r15
call sym.sqlite3IdListAppend
test rax, rax
mov r12, rax
je 0x1401b19e4
mov eax, dword [rax]
mov rdx, r13
mov rcx, qword [r15]
lea esi, [rax - 1]
call sym.sqlite3DbStrDup
movsxd rsi, esi
shl rsi, 4
mov qword [r12 + rsi + 8], rax
inc rdi
jmp 0x1401b1965
test r12, r12
je 0x1401b19f9
or byte [rbx + 0x41], 0x14
mov qword [rbx + 0x48], r12
cmp dword [r15 + 0x30], 0
je 0x1401b18cd
jmp 0x1401b1c79
mov al, byte [rbx + 0x41]
xor edx, edx
mov rcx, rbp
mov r9, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x48]
shr al, 4
and eax, 1
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
call sym.tableAndColumnIndex
test eax, eax
je 0x1401b1925
mov edi, dword [rsp + 0xec]
mov rdx, rbp
mov r13d, dword [rsp + 0xe8]
mov rcx, qword [rsp + 0x70]
mov r9d, edi
mov r8d, r13d
call sym.sqlite3CreateColumnExpr
movsxd r8, r13d
mov edx, edi
imul r8, r8, 0x68
mov qword [rsp + 0x58], rax
lea rcx, [rbp + r8 + 8]
call sym.sqlite3SrcItemColumnUsed
test byte [rbp + 0x44], 0x40
je 0x1401b1ba6
xor edi, edi
mov eax, dword [rsp + 0xe8]
mov rcx, rbp
mov r9, qword [rsp + 0x50]
mov r8d, dword [rsp + 0x48]
lea edx, [rax + 1]
mov al, byte [rbx + 0x41]
shr al, 4
and eax, 1
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x20], rax
call sym.tableAndColumnIndex
test eax, eax
je 0x1401b1b77
movsxd r13, dword [rsp + 0xe8]
mov dword [rsp + 0x88], r13d
imul r13, r13, 0x68
lea rax, [rbp + r13]
test byte [rax + 0x49], 4
je 0x1401b1b0e
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rax + 0x50]
call sym.sqlite3IdListIndex
test eax, eax
jns 0x1401b1b24
mov r8, qword [rsp + 0x50]
lea rdx, str.ambiguous_reference_to__s_in_USING__
mov rcx, r15
call sym.sqlite3ErrorMsg
jmp 0x1401b1b77
mov r8, qword [rsp + 0x58]
mov rdx, rdi
mov rcx, r15
call sym.sqlite3ExprListAppend
mov r9d, dword [rsp + 0xec]
mov rdx, rbp
mov rcx, qword [rsp + 0x70]
mov rdi, rax
mov r8d, dword [rsp + 0x88]
mov dword [rsp + 0xb8], r9d
call sym.sqlite3CreateColumnExpr
mov edx, dword [rsp + 0xb8]
lea rcx, [rbp + r13 + 8]
mov qword [rsp + 0x58], rax
call sym.sqlite3SrcItemColumnUsed
jmp 0x1401b1a92
test rdi, rdi
je 0x1401b1ba6
mov r8, qword [rsp + 0x58]
mov rdx, rdi
mov rcx, r15
call sym.sqlite3ExprListAppend
xor r9d, r9d
mov rcx, r15
lea r8, str.coalesce
mov rdx, rax
call sym.sqlite3ExprFunction
mov qword [rsp + 0x58], rax
mov eax, dword [rsp + 0x48]
mov rdx, rbp
mov r9d, dword [rsp + 0x78]
mov rcx, qword [rsp + 0x70]
lea r8d, [rax + 1]
call sym.sqlite3CreateColumnExpr
mov edx, dword [rsp + 0x78]
mov rcx, rbx
mov rdi, rax
mov r9, rdi
call sym.sqlite3SrcItemColumnUsed
mov r8, qword [rsp + 0x58]
mov edx, 0x35
mov rcx, r15
call sym.sqlite3PExpr
test rax, rax
mov r8, rax
je 0x1401b1bfe
mov eax, dword [rsp + 0x80]
or dword [r8 + 4], eax
mov eax, dword [rdi + 0x2c]
mov dword [r8 + 0x34], eax
mov rdx, qword [r14 + 0x30]
mov rcx, r15
inc rsi
call sym.sqlite3ExprAnd
mov qword [r14 + 0x30], rax
jmp 0x1401b18f5
mov rbx, qword [rsp + 0x98]
mov rdx, rax
shl rdx, 5
mov rdx, qword [rbx + rdx + 8]
mov r8b, byte [rdx]
cmp r8b, 0xb4
je 0x1401b1ca1
cmp r8b, 0x8d
je 0x1401b1c97
mov ebx, dword [rdx + 4]
inc rax
or dword [rsp + 0xac], ebx
cmp ecx, eax
jg 0x1401b1c16
mov rax, qword [r14 + 0x20]
test rax, rax
je 0x1401b2317
mov rbx, qword [rsp + 0x40]
mov ebx, dword [rbx + 0x90]
cmp dword [rax], ebx
jle 0x1401b2302
lea rdx, str.too_many_columns_in_result_set
mov rcx, r15
call sym.sqlite3ErrorMsg
mov dword [rsp + 0xa8], 2
jmp 0x1401b2317
mov rax, qword [rsp + 0x98]
mov ecx, dword [rax]
xor eax, eax
jmp 0x1401b1c46
mov r8, qword [rdx + 0x18]
cmp byte [r8], 0xb4
jne 0x1401b1c39
cmp ecx, eax
jle 0x1401b1c4a
mov rax, qword [r15]
xor ebp, ebp
xor ebx, ebx
mov dword [rsp + 0xd0], ebp
mov rax, qword [rax + 0x30]
and eax, 0x44
mov dword [rsp + 0xd4], eax
mov rax, qword [rsp + 0x98]
lea r12, [rax + 8]
mov rax, qword [rsp + 0x98]
mov esi, dword [rsp + 0xd0]
cmp dword [rax], esi
jle 0x1401b22ec
mov rax, qword [r12]
mov esi, dword [rax + 4]
mov qword [rsp + 0x60], rax
mov rdx, qword [rax + 0x18]
mov al, byte [rax]
or dword [rsp + 0xac], esi
cmp al, 0xb4
je 0x1401b1d75
cmp al, 0x8d
jne 0x1401b1d0a
cmp byte [rdx], 0xb4
je 0x1401b1d61
mov r8, qword [rsp + 0x60]
mov rdx, rbx
mov rcx, r15
call sym.sqlite3ExprListAppend
test rax, rax
mov rbx, rax
je 0x1401b1d56
mov eax, dword [rax]
xor edi, edi
mov rdx, qword [r12 + 8]
dec eax
cdqe
shl rax, 5
add rax, rbx
mov qword [rax + 0x10], rdx
lea rcx, [rax + 0x10]
mov dl, byte [r12 + 0x14]
mov al, byte [rax + 0x1c]
and edx, 3
and eax, 0xfffffffc
or eax, edx
mov byte [rcx + 0xc], al
mov qword [r12 + 8], rdi
xor esi, esi
mov qword [r12], rsi
jmp 0x1401b22dc
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 0x10]
mov rax, qword [rax + 8]
mov qword [rsp + 0x48], rax
jmp 0x1401b1d7d
xor r11d, r11d
mov qword [rsp + 0x48], r11
mov rsi, qword [rsp + 0xc0]
xor r10d, r10d
xor ebp, ebp
mov dword [rsp + 0x70], r10d
mov rax, qword [rsp + 0x90]
mov r11d, dword [rax]
mov eax, dword [rsp + 0x70]
cmp r11d, eax
jle 0x1401b22ab
mov rax, qword [rsi + 0x18]
mov r13, qword [rsi + 0x20]
test rax, rax
mov qword [rsp + 0x58], rax
jne 0x1401b1dc2
mov rax, qword [r13]
mov qword [rsp + 0x58], rax
mov rax, qword [rsp + 0x40]
cmp byte [rax + 0x67], 0
jne 0x1401b22ab
test byte [rsi + 0x41], 0x20
je 0x1401b1df1
mov rax, qword [rsi + 0x28]
xor r9d, r9d
mov qword [rsp + 0x80], r9
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x78], rax
jmp 0x1401b1e53
cmp qword [rsp + 0x48], 0
je 0x1401b1e10
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x48]
call sym.sqlite3StrICmp
test eax, eax
jne 0x1401b229e
mov rdx, qword [r13 + 0x60]
lea rdi, [0x1402ecb7b]
mov rcx, qword [rsp + 0x40]
call sym.sqlite3SchemaToIndex
xor r8d, r8d
mov qword [rsp + 0x80], rdi
test eax, eax
mov qword [rsp + 0x78], r8
js 0x1401b1e53
mov rdi, qword [rsp + 0x40]
cdqe
shl rax, 5
add rax, qword [rdi + 0x20]
mov rax, qword [rax]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x70]
xor ecx, ecx
mov qword [rsp + 0x88], rcx
inc eax
cmp r11d, eax
jle 0x1401b1f37
test byte [rsi + 0xa9], 4
je 0x1401b1f37
bt dword [rsp + 0x6c], 0xb
jae 0x1401b1f37
mov rax, qword [rsi + 0xb0]
xor edx, edx
mov qword [rsp + 0x50], rdx
mov qword [rsp + 0x88], rax
mov rax, qword [rsp + 0x88]
mov edi, dword [rsp + 0x50]
cmp dword [rax], edi
jle 0x1401b1f37
mov rax, qword [rsp + 0x50]
mov edx, 0x3b
mov rdi, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x40]
shl rax, 4
mov rax, qword [rdi + rax + 8]
mov r8, rax
mov qword [rsp + 0xa0], rax
call sym.sqlite3Expr
mov rdx, rbx
mov rcx, r15
mov r8, rax
call sym.sqlite3ExprListAppend
test rax, rax
mov rbx, rax
je 0x1401b1f2d
mov eax, dword [rax]
lea rdx, str..._s
mov r8, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0x40]
lea edi, [rax - 1]
movsxd rdi, edi
call sym.sqlite3MPrintf
shl rdi, 5
add rdi, rbx
mov qword [rdi + 0x10], rax
mov al, byte [rdi + 0x1c]
and eax, 0x7c
or eax, 0xffffff82
mov byte [rdi + 0x1c], al
inc qword [rsp + 0x50]
jmp 0x1401b1e9b
mov rax, qword [rsp + 0x78]
add rax, 8
mov qword [rsp + 0xb0], rax
xor eax, eax
mov qword [rsp + 0xb8], rax
mov eax, dword [rsp + 0x6c]
and eax, 0x800
mov dword [rsp + 0xa0], eax
movsx eax, word [r13 + 0x36]
mov edi, dword [rsp + 0xb8]
cmp eax, edi
jle 0x1401b229e
imul rax, qword [rsp + 0xb8], 0x18
mov rdi, qword [r13 + 8]
add rdi, rax
mov qword [rsp + 0xc8], rax
cmp qword [rsp + 0x48], 0
mov rax, qword [rdi]
mov qword [rsp + 0x50], rax
je 0x1401b1fc5
cmp qword [rsp + 0x78], 0
je 0x1401b1fc5
mov r8, qword [rsp + 0x48]
xor r9d, r9d
xor edx, edx
mov rcx, qword [rsp + 0xb0]
call sym.sqlite3MatchEName
test eax, eax
je 0x1401b2283
test byte [r14 + 6], 2
mov dx, word [rdi + 0x12]
jne 0x1401b1fd9
test dl, 2
jne 0x1401b2283
cmp qword [rsp + 0x48], 0
sete al
and dh, 4
je 0x1401b1ff9
test al, al
je 0x1401b1ff9
cmp dword [rsp + 0xa0], 0
je 0x1401b2283
cmp dword [rsp + 0x70], 0
jle 0x1401b202a
test al, al
je 0x1401b202a
cmp dword [rsp + 0xa0], 0
jne 0x1401b202a
test byte [rsi + 0x41], 4
je 0x1401b202a
mov rcx, qword [rsi + 0x48]
mov rdx, qword [rsp + 0x50]
call sym.sqlite3IdListIndex
test eax, eax
jns 0x1401b227e
mov r8, qword [rsp + 0x50]
mov edx, 0x3b
mov rcx, qword [rsp + 0x40]
call sym.sqlite3Expr
mov rdi, rax
mov rax, qword [rsp + 0x90]
mov ebp, dword [rax]
cmp ebp, 1
jle 0x1401b20a3
test byte [rsi + 0x3c], 0x40
je 0x1401b20b1
cmp dword [rsp + 0xa0], 0
jne 0x1401b20b1
mov eax, dword [rsp + 0x70]
mov r8, rsi
sub ebp, eax
dec ebp
test ebp, ebp
jle 0x1401b20b1
add r8, 0x68
dec ebp
test byte [r8 + 0x41], 4
je 0x1401b206b
mov rcx, qword [r8 + 0x48]
test rcx, rcx
je 0x1401b206b
mov rdx, qword [rsp + 0x50]
mov qword [rsp + 0xd8], r8
call sym.sqlite3IdListIndex
mov r8, qword [rsp + 0xd8]
test eax, eax
js 0x1401b206b
cmp byte [r15 + 0x134], 1
jbe 0x1401b213d
mov r8, qword [rsp + 0x58]
mov edx, 0x3b
mov rcx, qword [rsp + 0x40]
call sym.sqlite3Expr
mov r9, rdi
mov edx, 0x8d
mov rcx, r15
mov r8, rax
mov rbp, rax
call sym.sqlite3PExpr
cmp byte [r15 + 0x134], 1
mov rdi, rax
jbe 0x1401b2105
mov rax, qword [rsp + 0x60]
mov r8, qword [rax + 0x10]
test r8, r8
je 0x1401b2105
mov rcx, qword [r15 + 0x1a0]
mov rdx, rbp
call sym.sqlite3RenameTokenRemap.isra.0
cmp qword [rsp + 0x80], 0
je 0x1401b213d
mov r8, qword [rsp + 0x80]
mov edx, 0x3b
mov rcx, qword [rsp + 0x40]
call sym.sqlite3Expr
mov r9, rdi
mov edx, 0x8d
mov rcx, r15
mov r8, rax
call sym.sqlite3PExpr
mov rdi, rax
mov rdx, rbx
mov r8, rdi
mov rcx, r15
call sym.sqlite3ExprListAppend
test rax, rax
mov rbx, rax
je 0x1401b2299
mov eax, dword [rax]
cmp dword [rsp + 0xa0], 0
lea edi, [rax - 1]
je 0x1401b2234
cmp byte [r15 + 0x134], 1
ja 0x1401b2234
cmp qword [rsp + 0x78], 0
je 0x1401b2198
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rax + 8]
call sym.sqlite3DbStrDup
jmp 0x1401b21c0
mov rax, qword [rsp + 0x50]
lea rdx, str._s._s._s
mov r9, qword [rsp + 0x58]
mov r8, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x40]
mov qword [rsp + 0x20], rax
call sym.sqlite3MPrintf
movsxd rdx, edi
shl rdx, 5
add rdx, rbx
mov qword [rdx + 0x10], rax
mov al, byte [rdx + 0x1c]
and eax, 0xfffffffc
or eax, 2
test byte [rsi + 0x41], 4
mov byte [rdx + 0x1c], al
je 0x1401b21f2
mov rcx, qword [rsi + 0x48]
mov rdx, qword [rsp + 0x50]
call sym.sqlite3IdListIndex
test eax, eax
jns 0x1401b2226
cmp qword [rsp + 0x88], 0
je 0x1401b2213
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x88]
call sym.sqlite3IdListIndex
test eax, eax
jns 0x1401b2226
mov rax, qword [r13 + 8]
mov rcx, qword [rsp + 0xc8]
test byte [rax + rcx + 0x13], 4
je 0x1401b227e
movsxd rdi, edi
shl rdi, 5
or byte [rbx + rdi + 0x1d], 1
jmp 0x1401b227e
cmp dword [rsp + 0xd4], 4
movsxd rdi, edi
jne 0x1401b226d
mov r9, qword [rsp + 0x50]
lea rdx, str._s._s
mov r8, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x40]
call sym.sqlite3MPrintf
shl rdi, 5
add rdi, rbx
and byte [rdi + 0x1c], 0xfc
mov qword [rdi + 0x10], rax
jmp 0x1401b227e
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x40]
call sym.sqlite3DbStrDup
jmp 0x1401b225c
mov ebp, 1
inc qword [rsp + 0xb8]
add qword [rsp + 0xb0], 0x20
jmp 0x1401b1f62
mov ebp, 1
inc dword [rsp + 0x70]
add rsi, 0x68
jmp 0x1401b1d8f
test ebp, ebp
jne 0x1401b22dc
cmp qword [rsp + 0x48], 0
je 0x1401b22cd
mov r8, qword [rsp + 0x48]
lea rdx, str.no_such_table:__s
mov rcx, r15
call sym.sqlite3ErrorMsg
jmp 0x1401b22dc
lea rdx, str.no_tables_specified
mov rcx, r15
call sym.sqlite3ErrorMsg
inc dword [rsp + 0xd0]
add r12, 0x20
jmp 0x1401b1ccd
mov rcx, qword [rsp + 0x40]
mov rdx, rax
call sym.sqlite3ExprListDelete
mov qword [r14 + 0x20], rbx
jmp 0x1401b1c4a
test dword [rsp + 0xac], 0x400008
je 0x1401b2317
or dword [r14 + 4], 0x40000
mov eax, dword [rsp + 0xa8]
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret