Function at 0x5b7a50
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, 0x128
mov r15, qword [rcx]
mov eax, dword [rdx + 4]
mov rdi, qword [r15]
mov qword [rsp + 0x178], rdx
mov edx, eax
mov rbx, qword [rsp + 0x178]
or edx, 0x40
mov qword [rsp + 0x170], rcx
mov dword [rbx + 4], edx
cmp byte [rdi + 0x67], 0
mov qword [rsp + 0xc0], rdi
jne 0x5b7d88
mov dword [rsp + 0xa0], 1
movzx edi, ax
mov dword [rsp + 0xa8], edi
mov edi, eax
and edi, 0x40
jne 0x5b7d93
mov rbx, qword [rsp + 0x170]
cmp word [rbx + 0x24], 0
je 0x5b7ae9
mov ebx, dword [r15 + 0x94]
lea edx, [rbx + 1]
mov rbx, qword [rsp + 0x178]
mov dword [r15 + 0x94], edx
mov dword [rbx + 0x10], edx
mov rbx, qword [rsp + 0x178]
cmp qword [r15 + 0x198], 0
mov rbx, qword [rbx + 0x28]
mov qword [rsp + 0x70], rbx
mov rbx, qword [rsp + 0x178]
mov rbx, qword [rbx + 0x20]
mov qword [rsp + 0xe0], rbx
mov rbx, qword [rsp + 0x178]
mov rdx, qword [rbx + 0x68]
je 0x5b7b3b
test eax, 0x200000
je 0x5b7b3b
test rdx, rdx
je 0x5b86fd
mov dword [rdx + 4], 1
xor r8d, r8d
mov rcx, r15
call dbg.sqlite3WithPush
mov rbx, qword [rsp + 0x70]
mov rcx, r15
mov rdx, rbx
call dbg.sqlite3SrcListAssignCursors
mov rax, rbx
lea rbx, [rbx + 8]
mov eax, dword [rax]
mov qword [rsp + 0xd8], rbx
test eax, eax
jle 0x5b80d8
mov r14, qword [rsp + 0xd8]
mov rbp, qword [rsp + 0x70]
lea r13, [0x00747040]
jmp 0x5b7b98
add edi, 1
add r14, 0x68
cmp dword [rbp], edi
jle 0x5b80d8
cmp qword [r14 + 0x20], 0
jne 0x5b7b88
mov r9, qword [r14 + 0x10]
test r9, r9
je 0x5b7cb0
mov rsi, qword [r15 + 0x198]
test rsi, rsi
je 0x5b7bcc
mov r11d, dword [r15 + 0x30]
test r11d, r11d
jne 0x5b7bcc
cmp qword [r14 + 8], 0
je 0x5b7db0
mov r8, r14
xor edx, edx
mov rcx, r15
call dbg.sqlite3LocateTableItem
mov qword [r14 + 0x20], rax
mov rsi, rax
test rax, rax
je 0x5b7d88
mov eax, dword [rax + 0x2c]
cmp eax, 0xfffe
ja 0x5b93ed
add eax, 1
mov dword [rsi + 0x2c], eax
movzx eax, byte [rsi + 0x3f]
cmp al, 1
je 0x5b80c0
mov r8, qword [r14 + 0x10]
test byte [r14 + 0x40], 4
jne 0x5b85e0
test al, al
je 0x5b7d64
mov rbx, qword [rsp + 0x170]
cmp word [rsi + 0x36], 0
movzx ebx, word [rbx + 0x24]
jg 0x5b8580
mov rdx, rsi
mov rcx, r15
call dbg.viewGetColumnNames
test eax, eax
jne 0x5b7d88
movzx eax, byte [rsi + 0x3f]
cmp al, 2
je 0x5b8600
cmp al, 1
jne 0x5b8584
cmp byte [r14 + 0x40], 0
jns 0x5b8584
mov rdx, qword [rsi + 0x50]
test rdx, rdx
je 0x5b8584
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax + 0x30]
mov qword [rsp + 0x48], rax
movzx eax, byte [rsp + 0x48]
shr al, 7
cmp byte [rdx + 0x1e], al
jbe 0x5b8584
mov r8, qword [rsi]
lea rdx, str.unsafe_use_of_virtual_table___s_
mov rcx, r15
call dbg.sqlite3ErrorMsg
jmp 0x5b8584
mov r12, qword [r14 + 0x28]
test r12, r12
je 0x5b7cdf
mov rax, qword [rsp + 0x170]
cmp qword [rax + 0x10], 0
je 0x5b7cdf
mov rdx, r12
mov rcx, rax
call sym.sqlite3WalkSelect.part.0
test eax, eax
jne 0x5b7d88
mov r12, qword [r14 + 0x28]
mov rcx, qword [r15]
mov edx, 0x68
call dbg.sqlite3DbMallocZero
mov qword [r14 + 0x20], rax
mov rbx, rax
test rax, rax
je 0x5b7d88
mov rdx, qword [r14 + 0x18]
mov rcx, qword [r15]
mov dword [rax + 0x2c], 1
test rdx, rdx
je 0x5b80a0
call dbg.sqlite3DbStrDup
mov qword [rbx], rax
nop dword [rax + rax]
mov rax, r12
mov r12, qword [r12 + 0x50]
test r12, r12
jne 0x5b7d20
mov rdx, qword [rax + 0x20]
lea r9, [rbx + 8]
lea r8, [rbx + 0x36]
mov rcx, r15
mov esi, 0xffffffff
mov r12d, 0xc8
call sym.sqlite3ColumnsFromExprList
mov eax, dword [r15 + 0x30]
mov word [rbx + 0x34], si
or dword [rbx + 0x30], 0x4200
mov word [rbx + 0x3a], r12w
test eax, eax
jne 0x5b7d88
test byte [r14 + 0x40], 2
je 0x5b7b88
mov rdx, r14
mov rcx, r15
call dbg.sqlite3IndexedByLookup
test eax, eax
je 0x5b7b88
nop word [rax + rax]
mov dword [rsp + 0xa0], 2
mov eax, dword [rsp + 0xa0]
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test byte [r14 + 0x41], 2
jne 0x5b7bcc
mov ebx, dword [rsi]
lea r11, [rsi + 0x10]
xor r10d, r10d
test ebx, ebx
jle 0x5b8079
nop dword [rax]
mov r8, qword [r11]
xor ecx, ecx
jmp 0x5b7df5
movzx edx, byte [r13 + rdx]
cmp byte [r13 + rax], dl
jne 0x5b8068
add rcx, 1
movzx eax, byte [r9 + rcx]
movzx edx, byte [r8 + rcx]
cmp eax, edx
jne 0x5b7de0
test eax, eax
jne 0x5b7df1
movsxd rax, r10d
mov qword [rsp + 0x48], rsi
lea rbx, [rax + rax*2]
mov qword [rsp + 0x68], rax
shl rbx, 4
add rbx, rsi
mov rdx, qword [rbx + 0x28]
test rdx, rdx
jne 0x5b86f0
mov rsi, qword [r15]
test byte [r14 + 0x40], 4
jne 0x5b86e2
mov edx, 0x68
mov rcx, rsi
call dbg.sqlite3DbMallocZero
mov qword [rsp + 0x58], rax
test rax, rax
je 0x5b7d88
mov r12, qword [rbx + 0x30]
test r12, r12
je 0x5b872c
mov rbx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x58]
mov rcx, rsi
lea rbx, [rbx + rbx*2]
mov qword [r14 + 0x20], rax
shl rbx, 4
mov dword [rax + 0x2c], 1
add rbx, qword [rsp + 0x48]
mov rdx, qword [rbx + 0x10]
call dbg.sqlite3DbStrDup
mov rcx, qword [rsp + 0x58]
mov r8d, 0xffffffff
mov r9d, 0xc8
mov rdx, qword [rbx + 0x20]
or dword [rcx + 0x30], 0x4200
mov word [rcx + 0x34], r8w
xor r8d, r8d
mov qword [rcx], rax
mov word [rcx + 0x3a], r9w
mov rcx, rsi
call dbg.sqlite3SelectDup
mov qword [r14 + 0x28], rax
cmp byte [rsi + 0x67], 0
mov qword [rsp + 0x80], rax
jne 0x5b7d88
mov esi, dword [rax + 4]
mov r11d, esi
mov dword [rsp + 0x50], esi
or r11d, 0x4000000
mov dword [rax + 4], r11d
test byte [r14 + 0x40], 2
jne 0x5b942b
or byte [r14 + 0x41], 1
mov rax, qword [rsp + 0x80]
mov qword [r14 + 0x60], r12
add dword [r12], 1
movzx esi, byte [rax]
mov byte [rsp + 0x60], sil
add esi, 0x7a
mov byte [rsp + 0x88], sil
cmp sil, 1
ja 0x5b953e
mov qword [rsp + 0x50], rbx
mov esi, 0xffffffff
mov dword [rsp + 0x98], edi
mov qword [rsp + 0xa0], r14
mov r14, qword [rsp + 0x58]
mov qword [rsp + 0x78], r15
mov r15d, esi
mov qword [rsp + 0x90], rbp
mov rbp, rax
nop
mov r12, qword [rbp + 0x28]
mov edi, dword [r12]
test edi, edi
jle 0x5b88ec
lea r8, [r12 + 0x10]
xor r9d, r9d
jmp 0x5b7f91
add r9d, 1
add r8, 0x68
cmp r9d, edi
je 0x5b8040
mov esi, r11d
and esi, 0x2000
cmp qword [r8], 0
jne 0x5b7f80
mov r10, qword [r8 + 8]
test r10, r10
je 0x5b7f80
mov rax, qword [rsp + 0x50]
xor ecx, ecx
mov rbx, qword [rax + 0x10]
jmp 0x5b7fd1
movzx edx, byte [r13 + rdx]
cmp byte [r13 + rax], dl
jne 0x5b7f80
add rcx, 1
movzx eax, byte [r10 + rcx]
movzx edx, byte [rbx + rcx]
cmp eax, edx
jne 0x5b7fc0
test eax, eax
jne 0x5b7fcd
movsxd rax, r9d
mov qword [r8 + 0x18], r14
lea rdx, [rax + rax*2]
add dword [r14 + 0x2c], 1
lea rax, [rax + rdx*4]
or byte [r12 + rax*8 + 0x48], 0x40
test esi, esi
jne 0x5b8779
or r11d, 0x2000
mov dword [rbp + 4], r11d
test r15d, r15d
jns 0x5b8024
mov rbx, qword [rsp + 0x78]
mov r15d, dword [rbx + 0x34]
lea eax, [r15 + 1]
mov dword [rbx + 0x34], eax
add r9d, 1
mov dword [r8 + 0x3c], r15d
mov esi, 0x2000
add r8, 0x68
cmp r9d, edi
jne 0x5b7f91
nop
test esi, esi
je 0x5b87a0
mov rbp, qword [rbp + 0x50]
movzx eax, byte [rsp + 0x60]
cmp al, byte [rbp]
jne 0x5b87a0
mov r11d, dword [rbp + 4]
jmp 0x5b7f60
add r10d, 1
add r11, 0x30
cmp r10d, ebx
jne 0x5b7dd0
mov r10d, dword [rsi + 4]
test r10d, r10d
jne 0x5b7bcc
mov rsi, qword [rsi + 8]
test rsi, rsi
jne 0x5b7dbb
jmp 0x5b7bcc
mov r8, r14
lea rdx, [0x00739ece]
call dbg.sqlite3MPrintf
mov qword [rbx], rax
jmp 0x5b7d20
mov rax, qword [rsp + 0x170]
movzx ebx, word [rax + 0x24]
jmp 0x5b7c37
mov eax, dword [r15 + 0x30]
mov dword [rsp + 0xa0], eax
test eax, eax
jne 0x5b7d88
mov rax, qword [rsp + 0x178]
mov rbp, qword [rax + 0x28]
cmp dword [rbp], 1
lea rdi, [rbp + 0x70]
jle 0x5b892c
lea rax, [rsp + 0x100]
mov dword [rsp + 0x68], 1
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0xfc]
mov qword [rsp + 0x58], rax
jmp 0x5b81a8
mov rbx, qword [rdi + 0x48]
mov qword [rsp + 0x60], rbx
test al, al
jne 0x5b830a
mov rcx, qword [rsp + 0x60]
mov r12d, dword [rsp + 0x68]
test rcx, rcx
je 0x5b8190
mov edx, dword [rdi + 0x44]
mov r8d, dword [rsp + 0x88]
call dbg.sqlite3SetJoinExpr
mov rax, qword [rsp + 0x178]
mov r8, qword [rdi + 0x48]
mov rcx, r15
mov rdx, qword [rax + 0x30]
call sym.sqlite3ExprAnd
mov rbx, qword [rsp + 0x178]
mov qword [rbx + 0x30], rax
or byte [rdi + 0x41], 8
mov qword [rdi + 0x48], 0
mov eax, dword [rbp]
add dword [rsp + 0x68], 1
add rdi, 0x68
sub eax, 1
cmp eax, r12d
jle 0x5b892c
mov eax, dword [rsp + 0x68]
sub eax, 1
cmp qword [rdi - 0x48], 0
mov dword [rsp + 0x78], eax
mov rax, qword [rdi + 0x20]
mov qword [rsp + 0x80], rax
je 0x5b8660
test rax, rax
je 0x5b8660
movzx edx, byte [rdi + 0x3c]
xor eax, eax
test dl, 0x20
sete al
add eax, 1
mov dword [rsp + 0x88], eax
movzx eax, byte [rdi + 0x41]
and eax, 4
and edx, 4
je 0x5b8130
test al, al
jne 0x5b94f3
mov r12, qword [rdi + 0x48]
test r12, r12
jne 0x5b94f3
mov rax, qword [rsp + 0x80]
xor esi, esi
cmp word [rax + 0x36], 0
jle 0x5b864e
mov ebx, dword [rsp + 0x78]
mov r13, qword [rsp + 0x80]
jmp 0x5b8249
movsx eax, word [r13 + 0x36]
add rsi, 1
cmp eax, esi
jle 0x5b82d8
mov rdx, qword [r13 + 8]
lea rax, [rsi + rsi*2]
lea rax, [rdx + rax*8]
test byte [rax + 0x12], 2
jne 0x5b8238
mov r14, qword [rax]
mov dword [rsp + 0x30], 1
xor edx, edx
mov r8d, ebx
mov qword [rsp + 0x28], 0
mov rcx, rbp
mov qword [rsp + 0x20], 0
mov r9, r14
call dbg.tableAndColumnIndex
test eax, eax
je 0x5b8238
mov rdx, r12
xor r8d, r8d
mov rcx, r15
call dbg.sqlite3IdListAppend
mov r12, rax
test rax, rax
je 0x5b8238
mov eax, dword [rax]
mov rcx, qword [r15]
mov rdx, r14
add rsi, 1
sub eax, 1
mov dword [rsp + 0x48], eax
call dbg.sqlite3DbStrDup
movsxd r14, dword [rsp + 0x48]
shl r14, 4
mov qword [r12 + r14 + 8], rax
movsx eax, word [r13 + 0x36]
cmp eax, esi
jg 0x5b8249
nop dword [rax]
test r12, r12
je 0x5b82e5
or byte [rdi + 0x41], 0x14
mov qword [rdi + 0x48], r12
mov r10d, dword [r15 + 0x30]
test r10d, r10d
jne 0x5b7d88
movzx eax, byte [rdi + 0x41]
mov rbx, qword [rdi + 0x48]
and eax, 4
mov qword [rsp + 0x60], rbx
test al, al
je 0x5b8141
mov r9d, dword [rbx]
mov r13, qword [r15]
mov qword [rsp + 0x48], 0
mov esi, dword [rsp + 0x78]
test r9d, r9d
jg 0x5b83cc
jmp 0x5b8660
mov r8d, dword [rsp + 0x68]
mov r9d, dword [rsp + 0x78]
mov rdx, rbp
mov rcx, r13
mov r12d, r8d
call dbg.sqlite3CreateColumnExpr
mov rdx, qword [rdi + 0x28]
mov r14, rax
test byte [rdi + 0x41], 0x20
je 0x5b8366
movsxd rax, dword [rsp + 0x78]
shl rax, 5
add rax, qword [rdx + 0x20]
or byte [rax + 0x1c], 0x40
mov r8, rbx
mov r9, r14
mov edx, 0x35
mov rcx, r15
call sym.sqlite3PExpr
mov r8, rax
test rax, rax
je 0x5b8394
mov eax, dword [rsp + 0x88]
or dword [r8 + 4], eax
mov eax, dword [r14 + 0x2c]
mov dword [r8 + 0x34], eax
mov rax, qword [rsp + 0x178]
mov rcx, r15
mov rdx, qword [rax + 0x30]
call sym.sqlite3ExprAnd
mov rbx, qword [rsp + 0x178]
add qword [rsp + 0x48], 1
mov qword [rbx + 0x30], rax
mov rbx, qword [rsp + 0x60]
mov rax, qword [rsp + 0x48]
cmp dword [rbx], eax
jle 0x5b8190
mov rax, qword [rsp + 0x48]
mov rbx, qword [rsp + 0x60]
shl rax, 4
mov r14, qword [rbx + rax + 8]
mov rax, qword [rsp + 0x80]
movzx edx, word [rax + 0x36]
mov rcx, qword [rax + 8]
mov r8, r14
call sym.sqlite3ColumnIndex.isra.0
mov dword [rsp + 0x78], eax
test eax, eax
js 0x5b86c0
movzx eax, byte [rdi + 0x41]
xor edx, edx
mov r9, r14
mov r8d, esi
mov rcx, rbp
shr al, 4
and eax, 1
mov dword [rsp + 0x30], eax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x20], rax
call dbg.tableAndColumnIndex
test eax, eax
je 0x5b86c0
mov r8d, dword [rsp + 0xfc]
mov r9d, dword [rsp + 0x100]
mov rdx, rbp
mov rcx, r13
call dbg.sqlite3CreateColumnExpr
movsxd rcx, dword [rsp + 0xfc]
movsxd rdx, dword [rsp + 0x100]
mov rbx, rax
lea r8, [rcx + rcx*2]
mov rax, rcx
lea rcx, [rcx + r8*4]
lea rcx, [rbp + rcx*8 + 8]
mov r8, qword [rcx + 0x28]
test byte [rcx + 0x41], 0x20
je 0x5b8491
shl rdx, 5
add rdx, qword [r8 + 0x20]
or byte [rdx + 0x1c], 0x40
test byte [rbp + 0x44], 0x40
je 0x5b8330
xor r12d, r12d
nop
movzx edx, byte [rdi + 0x41]
lea r10d, [rax + 1]
mov rax, qword [rsp + 0x50]
mov r9, r14
mov r8d, esi
mov rcx, rbp
shr dl, 4
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x58]
and edx, 1
mov dword [rsp + 0x30], edx
mov edx, r10d
mov qword [rsp + 0x20], rax
call dbg.tableAndColumnIndex
test eax, eax
je 0x5b8682
movsxd rax, dword [rsp + 0xfc]
lea rdx, [rax + rax*2]
lea rax, [rax + rdx*4]
lea rax, [rbp + rax*8]
test byte [rax + 0x49], 4
je 0x5b8670
mov rcx, qword [rax + 0x50]
mov rdx, r14
call dbg.sqlite3IdListIndex
test eax, eax
js 0x5b8670
mov r8, rbx
mov rdx, r12
mov rcx, r15
call sym.sqlite3ExprListAppend.isra.0
mov r8d, dword [rsp + 0xfc]
mov rdx, rbp
mov rcx, r13
mov r9d, dword [rsp + 0x100]
mov r12, rax
call dbg.sqlite3CreateColumnExpr
movsxd rcx, dword [rsp + 0xfc]
movsxd rdx, dword [rsp + 0x100]
mov rbx, rax
lea r8, [rcx + rcx*2]
mov rax, rcx
lea rcx, [rcx + r8*4]
lea rcx, [rbp + rcx*8 + 8]
mov r8, qword [rcx + 0x28]
test byte [rcx + 0x41], 0x20
je 0x5b84a0
shl rdx, 5
add rdx, qword [r8 + 0x20]
or byte [rdx + 0x1c], 0x40
jmp 0x5b84a0
cmp al, 2
je 0x5b8600
mov rdx, qword [r14 + 0x28]
mov eax, 0xffffffff
movzx r12d, word [rsi + 0x36]
mov ecx, 1
mov word [rsi + 0x36], ax
mov rax, qword [rsp + 0x170]
mov word [rax + 0x24], cx
test rdx, rdx
je 0x5b85bb
cmp qword [rax + 0x10], 0
je 0x5b85bb
mov rcx, rax
call sym.sqlite3WalkSelect.part.0
mov rax, qword [rsp + 0x170]
and bx, 0xff
mov word [rax + 0x24], bx
mov word [rsi + 0x36], r12w
jmp 0x5b7d64
lea rdx, str._s_is_not_a_function
mov rcx, r15
call dbg.sqlite3ErrorMsg
mov dword [rsp + 0xa0], 2
jmp 0x5b7d93
mov rax, qword [rsp + 0xc0]
test byte [rax + 0x33], 0x80
jne 0x5b862e
mov rax, qword [rax + 0x20]
mov rax, qword [rax + 0x38]
cmp qword [rsi + 0x60], rax
je 0x5b862e
mov r8, qword [rsi]
lea rdx, str.access_to_view___s__prohibited
mov rcx, r15
call dbg.sqlite3ErrorMsg
mov rdx, qword [rsi + 0x40]
mov rcx, qword [rsp + 0xc0]
xor r8d, r8d
call dbg.sqlite3SelectDup
mov qword [r14 + 0x28], rax
mov rdx, rax
jmp 0x5b8588
mov r11d, dword [r15 + 0x30]
test r11d, r11d
jne 0x5b7d88
nop dword [rax + rax]
mov r12d, dword [rsp + 0x68]
jmp 0x5b8190
mov r8, r14
lea rdx, str.ambiguous_reference_to__s_in_USING__
mov rcx, r15
call dbg.sqlite3ErrorMsg
test r12, r12
je 0x5b8330
mov r8, rbx
mov rdx, r12
mov rcx, r15
call sym.sqlite3ExprListAppend.isra.0
xor r9d, r9d
lea r8, str.coalesce
mov rcx, r15
mov rdx, rax
call dbg.sqlite3ExprFunction
mov rbx, rax
jmp 0x5b8330
mov r8, r14
lea rdx, str.cannot_join_using_column__s___column_not_present_in_both_tables
mov rcx, r15
call dbg.sqlite3ErrorMsg
mov dword [rsp + 0xa0], 2
jmp 0x5b7d93
mov r8, r9
lea rdx, str._s_is_not_a_function
nop dword [rax]
mov rcx, r15
call dbg.sqlite3ErrorMsg
jmp 0x5b7d88
mov rcx, qword [rsp + 0xc0]
mov edx, 0x40
call dbg.sqlite3DbMallocZero
mov rdx, rax
mov rax, qword [rsp + 0x178]
mov qword [rax + 0x68], rdx
test rdx, rdx
jne 0x5b7b34
jmp 0x5b7d88
mov edx, 0x14
mov rcx, rsi
call dbg.sqlite3DbMallocZero
mov qword [rbx + 0x30], rax
mov r12, rax
test rax, rax
je 0x5b94d6
lea rdx, [r15 + 0xc8]
mov r9, rax
lea r8, [sym.sqlite3DbFree]
mov rcx, r15
call sym.sqlite3ParserAddCleanup.isra.0
test rax, rax
je 0x5b94d6
movzx eax, byte [rbx + 0x38]
mov byte [r12 + 0x12], al
jmp 0x5b7e62
mov r15, qword [rsp + 0x78]
mov r8, rbx
lea rdx, str.multiple_references_to_recursive_table:__s
mov rcx, r15
call dbg.sqlite3ErrorMsg
mov dword [rsp + 0xa0], 2
jmp 0x5b7d93
mov rax, qword [rsp + 0x80]
mov rcx, rbp
mov r15, qword [rsp + 0x78]
mov edi, dword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
mov rbp, qword [rsp + 0x90]
mov r11d, dword [rax + 4]
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x48]
lea rsi, str.circular_reference:__s
lea rax, [rax + rax*2]
shl rax, 4
and r11d, 0x2000
mov qword [rbx + rax + 0x28], rsi
mov rax, qword [rsp + 0x170]
mov rsi, qword [r15 + 0x198]
mov qword [r15 + 0x198], rbx
mov rax, qword [rax + 0x10]
je 0x5b88fa
mov rbx, qword [rsp + 0x80]
mov rdx, qword [rbx + 0x68]
mov rbx, rcx
mov qword [rcx + 0x68], rdx
test rax, rax
je 0x5b9515
mov rdx, rcx
mov rcx, qword [rsp + 0x170]
call sym.sqlite3WalkSelect.part.0
mov qword [rbx + 0x68], 0
test eax, eax
jne 0x5b8920
mov rax, qword [rsp + 0x48]
mov qword [r15 + 0x198], rax
mov rax, qword [rsp + 0x80]
mov rdx, rax
mov rax, qword [rax + 0x50]
test rax, rax
jne 0x5b8860
mov rax, qword [rsp + 0x68]
mov rcx, qword [rdx + 0x20]
lea rax, [rax + rax*2]
shl rax, 4
add rax, qword [rsp + 0x48]
mov rdx, qword [rax + 0x18]
test rdx, rdx
je 0x5b9522
test rcx, rcx
je 0x5b88a2
mov r9d, dword [rcx]
mov ecx, dword [rdx]
cmp r9d, ecx
jne 0x5b94ba
mov rax, qword [rsp + 0x58]
mov rcx, r15
lea r9, [rax + 8]
lea r8, [rax + 0x36]
call sym.sqlite3ColumnsFromExprList
cmp byte [rsp + 0x88], 1
jbe 0x5b944e
mov rax, qword [rsp + 0x68]
mov rbx, qword [rsp + 0x48]
lea rax, [rax + rax*2]
shl rax, 4
mov qword [rbx + rax + 0x28], 0
mov qword [r15 + 0x198], rsi
jmp 0x5b7d64
mov esi, r11d
and esi, 0x2000
jmp 0x5b8040
test rax, rax
je 0x5b884c
mov rdx, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x170]
call sym.sqlite3WalkSelect.part.0
test eax, eax
je 0x5b884c
mov qword [r15 + 0x198], rsi
jmp 0x5b7d88
mov rax, qword [rsp + 0xe0]
mov eax, dword [rax]
test eax, eax
jle 0x5b954e
mov rbx, qword [rsp + 0xe0]
sub eax, 1
xor r9d, r9d
shl rax, 5
lea rdi, [rbx + 8]
lea r8, [rbx + rax + 0x28]
mov qword [rsp + 0xc8], rdi
mov rax, rdi
jmp 0x5b8981
add rax, 0x20
or r9d, dword [rdx + 4]
cmp r8, rax
je 0x5b92e5
mov rdx, qword [rax]
movzx ecx, byte [rdx]
cmp cl, 0xb4
je 0x5b899a
cmp cl, 0x8d
jne 0x5b8970
mov rcx, qword [rdx + 0x18]
cmp byte [rcx], 0xb4
jne 0x5b8970
mov rax, qword [r15]
xor r14d, r14d
mov dword [rsp + 0xec], r9d
mov dword [rsp + 0xe8], 0
mov r13, qword [rsp + 0xc0]
mov rax, qword [rax + 0x30]
and eax, 0x44
mov dword [rsp + 0xac], eax
mov rax, r15
mov r15, r14
mov r14, rax
jmp 0x5b8a86
cmp al, 0x8d
jne 0x5b89f1
mov rax, qword [rdi + 0x18]
cmp byte [rax], 0xb4
je 0x5b93bd
mov r8, qword [rsp + 0xb0]
mov rdx, r15
mov rcx, r14
call sym.sqlite3ExprListAppend.isra.0
mov r15, rax
test rax, rax
je 0x5b8a4f
mov eax, dword [rax]
mov rdi, qword [rsp + 0xc8]
sub eax, 1
mov rdx, qword [rdi + 8]
cdqe
shl rax, 5
add rax, r15
mov qword [rax + 0x10], rdx
lea rcx, [rax + 0x10]
movzx eax, byte [rdi + 0x14]
mov edx, eax
mov byte [rsp + 0x48], al
movzx eax, byte [rcx + 0xc]
and edx, 3
and eax, 0xfffffffc
or eax, edx
mov byte [rcx + 0xc], al
mov qword [rdi + 8], 0
mov rax, qword [rsp + 0xc8]
mov qword [rax], 0
mov rdi, qword [rsp + 0xe0]
add dword [rsp + 0xe8], 1
add qword [rsp + 0xc8], 0x20
mov eax, dword [rsp + 0xe8]
cmp dword [rdi], eax
jle 0x5b927b
mov rax, qword [rsp + 0xc8]
mov rax, qword [rax]
mov ebx, dword [rax + 4]
mov qword [rsp + 0xb0], rax
mov rdi, rax
movzx eax, byte [rax]
or dword [rsp + 0xec], ebx
cmp al, 0xb4
jne 0x5b89e0
mov rax, qword [rsp + 0xb0]
mov eax, dword [rax + 0x34]
mov dword [rsp + 0xb8], eax
mov rax, qword [rsp + 0x70]
mov r9d, dword [rax]
test r9d, r9d
jle 0x5b9417
xor ebp, ebp
mov rax, qword [rsp + 0xd8]
mov dword [rsp + 0x88], 0
mov dword [rsp + 0x80], 0
mov qword [rsp + 0x50], rax
nop dword [rax]
mov rax, qword [rsp + 0x50]
mov rdi, qword [rax + 0x20]
mov rax, qword [rax + 0x18]
mov qword [rsp + 0x78], rax
test rax, rax
je 0x5b91b0
cmp byte [r13 + 0x67], 0
jne 0x5b8efa
mov rax, qword [rsp + 0x50]
test byte [rax + 0x41], 0x20
jne 0x5b9240
test rbp, rbp
je 0x5b8b75
mov r10, qword [rsp + 0x78]
xor ecx, ecx
lea r8, [0x00747040]
jmp 0x5b8b63
movzx ebx, byte [r8 + rdx]
cmp byte [r8 + rax], bl
jne 0x5b9198
add rcx, 1
movzx eax, byte [rbp + rcx]
movzx edx, byte [r10 + rcx]
cmp eax, edx
jne 0x5b8b50
test eax, eax
jne 0x5b8b5f
mov rdx, qword [rdi + 0x60]
mov qword [rsp + 0x60], rdx
test rdx, rdx
je 0x5b952a
mov rcx, r13
lea rbx, [0x00736f98]
call sym.sqlite3SchemaToIndex.part.0
mov qword [rsp + 0x98], rbx
mov qword [rsp + 0x60], 0
test eax, eax
js 0x5b8bc0
cdqe
shl rax, 5
add rax, qword [r13 + 0x20]
mov rax, qword [rax]
mov qword [rsp + 0x98], rax
mov eax, dword [rsp + 0x80]
mov qword [rsp + 0xd0], 0
add eax, 1
mov dword [rsp + 0xbc], eax
cmp eax, r9d
jge 0x5b8c08
mov rax, qword [rsp + 0x50]
test byte [rax + 0xa9], 4
je 0x5b8c08
test dword [rsp + 0xa8], 0x800
jne 0x5b92fb
nop dword [rax]
movsx esi, word [rdi + 0x36]
mov eax, esi
test byte [rdi + 0x31], 2
jne 0x5b8c23
mov eax, dword [rsp + 0xa8]
shr eax, 0xb
and eax, 1
add eax, esi
test eax, eax
jle 0x5b9200
sub eax, 1
mov qword [rsp + 0x58], rbp
xor ebx, ebx
mov qword [rsp + 0x68], rax
jmp 0x5b8d74
mov rsi, qword [rsp + 0x50]
test byte [rsi + 0x3c], 0x40
je 0x5b8c5c
test dword [rsp + 0xa8], 0x800
je 0x5b9120
mov r8, qword [rsp + 0x78]
mov edx, 0x3b
mov rcx, r13
call sym.sqlite3Expr
mov r9, rbp
mov edx, 0x8d
mov rcx, r14
mov r8, rax
mov rsi, rax
call sym.sqlite3PExpr
cmp byte [r14 + 0x134], 1
mov rbp, rax
jbe 0x5b8ca6
mov rax, qword [rsp + 0xb0]
mov rdx, qword [rax + 0x10]
test rdx, rdx
jne 0x5b8fe8
mov rax, qword [rsp + 0x98]
test rax, rax
je 0x5b8cd9
mov r8, rax
mov edx, 0x3b
mov rcx, r13
call sym.sqlite3Expr
mov r9, rbp
mov edx, 0x8d
mov rcx, r14
mov r8, rax
call sym.sqlite3PExpr
mov rbp, rax
test rbp, rbp
je 0x5b8cee
test byte [rbp + 4], 3
jne 0x5b8cee
mov eax, dword [rsp + 0xb8]
mov dword [rbp + 0x34], eax
mov rdx, r15
mov r8, rbp
mov rcx, r14
call sym.sqlite3ExprListAppend.isra.0
mov r15, rax
test rax, rax
je 0x5b91f0
mov eax, dword [rax]
lea esi, [rax - 1]
test dword [rsp + 0xa8], 0x800
je 0x5b8d28
cmp byte [r14 + 0x134], 1
jbe 0x5b9020
cmp dword [rsp + 0xac], 4
je 0x5b8fc8
mov rdx, r12
mov rcx, r13
call dbg.sqlite3DbStrDup
mov dword [rsp + 0x88], 1
movsxd rsi, esi
shl rsi, 5
add rsi, r15
and byte [rsi + 0x1c], 0xfc
mov qword [rsi + 0x10], rax
lea rax, [rbx + 1]
cmp qword [rsp + 0x68], rbx
je 0x5b8ed0
movsx esi, word [rdi + 0x36]
mov rbx, rax
mov dword [rsp + 0x48], ebx
cmp esi, ebx
je 0x5b8f30
mov rax, qword [rdi + 8]
lea r10, [rbx + rbx*2]
mov rcx, qword [rsp + 0x60]
lea rsi, [r10*8]
add rax, rsi
mov r12, qword [rax]
test rcx, rcx
je 0x5b8dee
movsxd rdx, dword [rsp + 0x48]
shl rdx, 5
movzx edx, byte [rcx + rdx + 0x1c]
and edx, 3
cmp dl, 3
je 0x5b8d5e
mov r8, qword [rsp + 0x58]
test r8, r8
je 0x5b8dee
mov rax, rbx
xor r9d, r9d
xor edx, edx
mov qword [rsp + 0x20], 0
shl rax, 5
lea rcx, [rcx + rax + 8]
call dbg.sqlite3MatchEName
test eax, eax
je 0x5b8d5e
mov rax, qword [rdi + 8]
add rax, rsi
mov rsi, qword [rsp + 0x178]
movzx eax, word [rax + 0x12]
test byte [rsi + 6], 2
jne 0x5b8e08
test al, 2
jne 0x5b8d5e
test ah, 4
je 0x5b8e69
cmp qword [rsp + 0x58], 0
je 0x5b90d8
mov r8, r12
mov edx, 0x3b
mov rcx, r13
call sym.sqlite3Expr
mov rbp, rax
mov rax, qword [rsp + 0x70]
mov eax, dword [rax]
cmp eax, 1
jg 0x5b8c40
cmp byte [r14 + 0x134], 1
ja 0x5b8c5c
jmp 0x5b8cd9
movsxd r12, dword [rsp + 0x90]
mov r12, qword [rsp + r12*8 + 0x100]
test r12, r12
je 0x5b8d5e
mov ecx, dword [rsp + 0x80]
test ecx, ecx
jle 0x5b8e19
cmp qword [rsp + 0x58], 0
jne 0x5b8e19
test dword [rsp + 0xa8], 0x800
jne 0x5b8e19
mov rax, qword [rsp + 0x50]
test byte [rax + 0x41], 4
je 0x5b8e19
mov rcx, qword [rax + 0x48]
mov rdx, r12
call dbg.sqlite3IdListIndex
test eax, eax
js 0x5b8e19
mov dword [rsp + 0x88], 1
lea rax, [rbx + 1]
cmp qword [rsp + 0x68], rbx
jne 0x5b8d6d
nop word cs:[rax + rax]
mov rax, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x58]
mov r9d, dword [rax]
mov eax, dword [rsp + 0xbc]
add qword [rsp + 0x50], 0x68
mov dword [rsp + 0x80], eax
cmp r9d, eax
jg 0x5b8b00
mov eax, dword [rsp + 0x88]
test eax, eax
jne 0x5b8a5e
test rbp, rbp
je 0x5b9417
mov r8, rbp
lea rdx, str.no_such_table:__s
mov rcx, r14
call dbg.sqlite3ErrorMsg
jmp 0x5b8a5e
lea rax, str._ROWID_
xor r11d, r11d
mov qword [rsp + 0x100], rax
lea rax, str.ROWID
mov qword [rsp + 0x108], rax
lea rax, [0x007358be]
mov qword [rsp + 0x110], rax
mov dword [rsp + 0x90], r11d
xor ebp, ebp
test esi, esi
je 0x5b8fab
mov rcx, qword [rsp + r11*8 + 0x100]
mov r12, qword [rdi + 8]
xor ebp, ebp
jmp 0x5b8f9d
test rdx, rdx
je 0x5b8f8e
call sym.sqlite3_stricmp.part.0
test eax, eax
je 0x5b8fab
add ebp, 1
add r12, 0x18
cmp esi, ebp
je 0x5b8e50
mov rdx, qword [r12]
test rcx, rcx
jne 0x5b8f80
test rdx, rdx
jne 0x5b8f8e
cmp esi, ebp
je 0x5b8e50
add r11, 1
cmp r11, 3
jne 0x5b8f60
jmp 0x5b8d5e
mov r8, qword [rsp + 0x78]
mov r9, r12
lea rdx, str._s._s
mov rcx, r13
call dbg.sqlite3MPrintf
jmp 0x5b8d41
mov rax, qword [r14 + 0x1a0]
test rax, rax
jne 0x5b900d
jmp 0x5b8ca6
mov rax, qword [rax + 0x18]
test rax, rax
je 0x5b8ca6
cmp rdx, qword [rax]
jne 0x5b9000
mov qword [rax], rsi
jmp 0x5b8ca6
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x5b9210
mov rax, rbx
shl rax, 5
mov rdx, qword [rcx + rax + 0x10]
mov rcx, r13
call dbg.sqlite3DbStrDup
movsxd rsi, esi
mov r9, rax
mov rax, rsi
mov rdx, rsi
shl rax, 5
mov qword [r15 + rax + 0x10], r9
movsx r9d, word [rdi + 0x36]
cmp r9d, dword [rsp + 0x48]
sete al
shl rdx, 5
add eax, 2
lea rcx, [r15 + rdx + 0x10]
and eax, 3
mov edx, eax
movzx eax, byte [rcx + 0xc]
and eax, 0xfffffffc
or eax, edx
mov byte [rcx + 0xc], al
mov rax, qword [rsp + 0x50]
test byte [rax + 0x41], 4
jne 0x5b91c0
mov rcx, qword [rsp + 0xd0]
test rcx, rcx
je 0x5b90f0
mov rdx, r12
mov dword [rsp + 0x88], r9d
call dbg.sqlite3IdListIndex
mov r9d, dword [rsp + 0x88]
test eax, eax
js 0x5b90f0
shl rsi, 5
or byte [r15 + rsi + 0x1d], 1
mov dword [rsp + 0x88], 1
jmp 0x5b8d5e
test dword [rsp + 0xa8], 0x800
jne 0x5b8e19
jmp 0x5b8d5e
mov dword [rsp + 0x88], 1
cmp r9d, dword [rsp + 0x48]
jle 0x5b8d5e
mov rdx, qword [rdi + 8]
lea rax, [rbx + rbx*2]
lea rax, [rdx + rax*8]
test byte [rax + 0x13], 4
je 0x5b8d5e
jmp 0x5b90b9
sub eax, dword [rsp + 0x80]
cmp eax, 1
jle 0x5b8c5c
sub eax, 2
mov qword [rsp + 0x88], rbx
mov rbx, rsi
add rax, 1
lea rdx, [rax + rax*2]
lea rax, [rax + rdx*4]
lea rax, [rsi + rax*8]
mov rsi, rax
nop dword [rax]
mov rax, rbx
add rbx, 0x68
test byte [rax + 0xa9], 4
je 0x5b9181
mov rcx, qword [rbx + 0x48]
test rcx, rcx
je 0x5b9181
mov rdx, r12
call dbg.sqlite3IdListIndex
test eax, eax
jns 0x5b9260
cmp rbx, rsi
jne 0x5b9158
mov rbx, qword [rsp + 0x88]
jmp 0x5b8c5c
mov eax, dword [rsp + 0x80]
add eax, 1
mov dword [rsp + 0xbc], eax
jmp 0x5b8edd
mov rax, qword [rdi]
mov qword [rsp + 0x78], rax
jmp 0x5b8b1b
mov rcx, qword [rax + 0x48]
mov rdx, r12
mov dword [rsp + 0x88], r9d
call dbg.sqlite3IdListIndex
mov r9d, dword [rsp + 0x88]
test eax, eax
jns 0x5b90b9
jmp 0x5b9090
mov dword [rsp + 0x88], 1
mov rbp, qword [rsp + 0x58]
mov rax, qword [rsp + 0x70]
mov r9d, dword [rax]
jmp 0x5b8edd
mov qword [rsp + 0x20], r12
mov r9, qword [rsp + 0x78]
mov rcx, r13
lea rdx, str._s._s._s
mov r8, qword [rsp + 0x98]
call dbg.sqlite3MPrintf
jmp 0x5b9042
mov qword [rsp + 0x98], 0
mov rax, qword [rax + 0x28]
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x60], rax
jmp 0x5b8bc0
cmp byte [r14 + 0x134], 1
mov rbx, qword [rsp + 0x88]
ja 0x5b8c5c
jmp 0x5b8cd9
mov rcx, qword [rsp + 0xc0]
mov rax, r14
mov rdx, rdi
mov r14, r15
mov r15, rax
call dbg.exprListDeleteNN
mov rax, qword [rsp + 0x178]
mov qword [rax + 0x20], r14
test r14, r14
je 0x5b7d93
mov rax, qword [rsp + 0xc0]
mov eax, dword [rax + 0x90]
cmp dword [r14], eax
jg 0x5b94a6
test dword [rsp + 0xec], 0x400008
je 0x5b7d93
mov rax, qword [rsp + 0x178]
or dword [rax + 4], 0x40000
jmp 0x5b7d93
mov rax, qword [rsp + 0x178]
mov dword [rsp + 0xec], r9d
mov r14, qword [rax + 0x20]
jmp 0x5b92a0
mov rax, qword [rax + 0xb0]
mov r8d, dword [rax]
mov qword [rsp + 0xd0], rax
test r8d, r8d
jle 0x5b8c08
mov qword [rsp + 0x58], rbp
mov ebp, dword [rsp + 0xb8]
xor r12d, r12d
mov qword [rsp + 0x48], rdi
mov rdi, rax
nop dword [rax]
mov rax, r12
mov edx, 0x3b
mov rcx, r13
shl rax, 4
mov rsi, qword [rdi + rax + 8]
mov r8, rsi
call sym.sqlite3Expr
mov r8, rax
test rax, rax
je 0x5b935d
test byte [rax + 4], 3
jne 0x5b935d
mov dword [rax + 0x34], ebp
mov rdx, r15
mov rcx, r14
call sym.sqlite3ExprListAppend.isra.0
mov r15, rax
test rax, rax
je 0x5b93a5
mov eax, dword [rax]
lea rdx, str..._s
mov r8, rsi
mov rcx, r13
lea ebx, [rax - 1]
call dbg.sqlite3MPrintf
movsxd rbx, ebx
shl rbx, 5
lea rdx, [r15 + rbx + 0x10]
mov qword [r15 + rbx + 0x10], rax
movzx eax, byte [rdx + 0xc]
and eax, 0x7c
or eax, 0xffffff82
mov byte [rdx + 0xc], al
add r12, 1
cmp dword [rdi], r12d
jg 0x5b9330
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x58]
jmp 0x5b8c08
mov eax, dword [rax + 0x34]
mov rdi, qword [rsp + 0xb0]
mov dword [rsp + 0xb8], eax
mov rax, qword [rsp + 0x70]
mov rdx, qword [rdi + 0x10]
mov r9d, dword [rax]
mov rbp, qword [rdx + 8]
test r9d, r9d
jg 0x5b8ad6
jmp 0x5b8f09
mov r8, qword [rsi]
lea rdx, str.too_many_references_to___s_:_max_65535
mov rcx, r15
call dbg.sqlite3ErrorMsg
mov qword [r14 + 0x20], 0
mov dword [rsp + 0xa0], 2
jmp 0x5b7d93
lea rdx, str.no_tables_specified
mov rcx, r14
call dbg.sqlite3ErrorMsg
jmp 0x5b8a5e
mov r8, qword [r14 + 0x58]
lea rdx, str.no_such_index:___s_
mov rcx, r15
call dbg.sqlite3ErrorMsg
mov dword [rsp + 0xa0], 2
jmp 0x5b7d93
mov rbx, qword [rsp + 0x80]
lea rax, str.recursive_reference_in_a_subquery:__s
mov rcx, qword [rsp + 0x48]
lea rdx, str.multiple_recursive_references:__s
test byte [rbx + 5], 0x20
cmove rdx, rax
mov rax, qword [rsp + 0x68]
lea rax, [rax + rax*2]
shl rax, 4
mov qword [rcx + rax + 0x28], rdx
mov rax, qword [rsp + 0x170]
cmp qword [rax + 0x10], 0
je 0x5b88c5
mov rdx, rbx
mov rcx, rax
call sym.sqlite3WalkSelect.part.0
jmp 0x5b88c5
lea rdx, str.too_many_columns_in_result_set
mov rcx, r15
call dbg.sqlite3ErrorMsg
jmp 0x5b7d88
mov dword [rsp + 0x20], ecx
mov r8, qword [rax + 0x10]
lea rdx, str.table__s_has__d_values_for__d_columns
mov rcx, r15
call dbg.sqlite3ErrorMsg
jmp 0x5b8920
mov rdx, qword [rsp + 0x58]
mov rcx, rsi
call sym.sqlite3DbFreeNN
mov dword [rsp + 0xa0], 2
jmp 0x5b7d93
xor r8d, r8d
lea rdx, str.a_NATURAL_join_may_not_have_an_ON_or_USING_clause
mov rcx, r15
call dbg.sqlite3ErrorMsg
mov dword [rsp + 0xa0], 2
jmp 0x5b7d93
mov qword [rcx + 0x68], 0
jmp 0x5b884c
mov rdx, rcx
jmp 0x5b88a2
lea rax, [0x00736f98]
mov qword [rsp + 0x98], rax
jmp 0x5b8bc0
mov rax, qword [rsp + 0x80]
mov rcx, rax
jmp 0x5b87cb
mov rax, qword [rsp + 0x178]
mov dword [rsp + 0xec], 0
mov r14, qword [rax + 0x20]
jmp 0x5b92a0