Function at 0x45f5fd
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, 0x188
mov al, byte [rdx]
mov r15, qword [rcx + 0x28]
cmp al, 0x39
mov qword [rsp + 0x1d0], rcx
mov r14, rdx
mov r13, qword [r15]
ja 0x45f661
cmp al, 0x34
jae 0x460b95
cmp al, 0x30
je 0x460b95
ja 0x45f64f
cmp al, 0x14
je 0x460ad1
cmp al, 0x2d
je 0x460b51
jmp 0x460bf2
cmp al, 0x31
je 0x460ad1
mov rdx, r15
xor eax, eax
jmp 0x45f6f5
cmp al, 0x8d
je 0x45f786
ja 0x45f69f
cmp al, 0x4b
je 0x45f6bc
cmp al, 0x8a
je 0x460ad1
cmp al, 0x3b
jne 0x460bf2
mov qword [rsp + 0x50], 0
mov rax, qword [rdx + 8]
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], rax
jmp 0x45f80c
cmp al, 0xab
je 0x460b51
cmp al, 0xac
je 0x4603fd
cmp al, 0x9c
jne 0x460bf2
jmp 0x460b28
mov rax, qword [r15 + 8]
mov rdx, qword [rax + 0x28]
mov eax, dword [rax + 0x4c]
mov word [r14], 0x44a7
dec word [r14 + 0x30]
mov qword [r14 + 0x40], rdx
mov dword [r14 + 0x2c], eax
jmp 0x460bf2
cmp eax, 7
jg 0x45f6fa
mov ecx, dword [rdx + 0x20]
mov rdx, qword [rdx + 0x18]
mov dword [rsp + rax*4 + 0xc0], ecx
inc rax
test rdx, rdx
jne 0x45f6df
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsp + 0x1d0]
call sym.sqlite3WalkExpr
mov r9, qword [r14 + 0x10]
mov rcx, r9
call sym.sqlite3ExprCanBeNull
test eax, eax
jne 0x460c01
cmp byte [r13 + 0x134], 1
ja 0x460c01
xor eax, eax
cmp byte [r14], 0x33
mov byte [r14], 0x9b
sete al
or dword [r14 + 4], 0x800
mov dword [r14 + 8], eax
mov eax, 1
mov edx, dword [rsp + rax*4 + 0xbc]
mov dword [r15 + 0x20], edx
mov r15, qword [r15 + 0x18]
test r15, r15
setne cl
cmp eax, 7
setle dl
inc rax
test cl, dl
jne 0x45f74b
mov rcx, qword [r13]
mov rdx, r9
call sym.sqlite3ExprDelete
mov qword [r14 + 0x10], 0
jmp 0x460c01
mov rbx, qword [rdx + 0x10]
mov edx, dword [r15 + 0x28]
test dl, 0x28
je 0x45f7aa
mov qword [rsp + 0x20], r14
lea r8, str.the__.__operator
xor r9d, r9d
mov rcx, r13
call sym.notValidImpl.isra.428
mov qword [rsp + 0x50], 0
mov r8, qword [r14 + 0x18]
cmp byte [r8], 0x3b
je 0x45f7ce
mov rax, qword [rbx + 8]
mov rbx, qword [r8 + 0x10]
mov r8, qword [r8 + 0x18]
mov qword [rsp + 0x50], rax
mov rax, qword [rbx + 8]
cmp byte [r13 + 0x134], 1
mov qword [rsp + 0x38], rax
mov rax, qword [r8 + 8]
mov qword [rsp + 0x40], rax
jbe 0x45f80c
mov rcx, qword [r13 + 0x1a0]
mov rdx, r14
call sym.sqlite3RenameTokenRemap.isra.137
mov rcx, qword [r13 + 0x1a0]
lea rdx, [r14 + 0x40]
mov r8, rbx
call sym.sqlite3RenameTokenRemap.isra.137
mov qword [rsp + 0x58], 0
mov rax, qword [r13]
cmp qword [rsp + 0x50], 0
mov dword [r14 + 0x2c], 0xffffffff
mov qword [rsp + 0xc0], 0
mov qword [rsp + 0x48], rax
je 0x45f8d0
test byte [r15 + 0x28], 6
jne 0x45f8be
mov esi, dword [rax + 0x28]
xor r11d, r11d
cmp esi, r11d
jle 0x45f87f
mov rax, qword [rsp + 0x48]
mov rbx, r11
shl rbx, 5
mov rdx, qword [rsp + 0x50]
add rbx, qword [rax + 0x20]
mov rcx, qword [rbx]
call sym.sqlite3StrICmp
inc r11
test eax, eax
jne 0x45f84b
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x58], rax
jmp 0x45f8d0
mov qword [rsp + 0x58], 0
cmp r11d, esi
jne 0x45f8d0
mov rdx, qword [rsp + 0x50]
lea rcx, str.main
call sym.sqlite3StrICmp
test eax, eax
jne 0x45f8d0
mov rax, qword [rsp + 0x48]
mov rax, qword [rax + 0x20]
mov rdi, qword [rax + 0x18]
mov rax, qword [rax]
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x50], rax
jmp 0x45f8d0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x50], 0
mov r12, r15
xor esi, esi
mov dword [rsp + 0x68], 0xa7
mov dword [rsp + 0x8c], 0
mov dword [rsp + 0x6c], 0
mov rax, qword [r12 + 8]
xor ebx, ebx
test rax, rax
mov qword [rsp + 0x78], rax
je 0x45fcef
mov dword [rsp + 0x88], 0
lea rdi, [rax + 8]
mov rax, qword [rsp + 0x78]
mov ecx, dword [rsp + 0x88]
cmp ecx, dword [rax]
jge 0x45fcc4
mov rax, qword [rdi + 0x20]
test byte [rdi + 0x41], 0x20
mov qword [rsp + 0x60], rax
je 0x45faa8
mov rax, qword [rdi + 0x28]
xor ebp, ebp
mov dword [rsp + 0x90], 0
mov rax, qword [rax + 0x20]
mov qword [rsp + 0x70], rax
add rax, 8
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x70]
cmp ebp, dword [rax]
jge 0x45fa8d
mov rcx, qword [rsp + 0x70]
movsxd rax, ebp
shl rax, 5
mov al, byte [rcx + rax + 0x1c]
and eax, 3
cmp al, 2
jne 0x45fa7d
mov r9, qword [rsp + 0x50]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x80]
call sym.sqlite3MatchEName.part.120
test eax, eax
je 0x45fa7d
test ebx, ebx
je 0x45fa3e
test byte [rdi + 0x41], 4
je 0x45f9d9
mov rcx, qword [rdi + 0x48]
mov rdx, qword [rsp + 0x40]
call sym.sqlite3IdListIndex
test eax, eax
jns 0x45f9f9
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprListDelete
mov qword [rsp + 0xc0], 0
jmp 0x45fa3e
mov al, byte [rdi + 0x3c]
test al, 0x10
je 0x45fa7d
test al, 8
jne 0x45fa26
mov rdx, qword [rsp + 0xc0]
xor ebx, ebx
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprListDelete
mov qword [rsp + 0xc0], 0
jmp 0x45fa3e
movsx r9d, word [r14 + 0x30]
mov r8, rsi
mov rcx, r13
mov rdx, qword [rsp + 0x98]
call sym.extendFJMatch
mov rsi, qword [rsp + 0x70]
movsxd rax, ebp
inc ebx
mov word [r14 + 0x30], bp
shl rax, 5
lea rdx, [rsi + rax + 0x10]
mov rsi, rdi
mov al, byte [rdx + 0xc]
or eax, 0x40
test al, al
mov byte [rdx + 0xc], al
js 0x45fcac
mov dword [rsp + 0x90], 1
mov dword [rsp + 0x6c], 2
add qword [rsp + 0x80], 0x20
inc ebp
jmp 0x45f971
cmp qword [rsp + 0x38], 0
je 0x45fcb4
cmp dword [rsp + 0x90], 0
je 0x45fab4
jmp 0x45fcb4
cmp qword [rsp + 0x38], 0
je 0x45fb68
cmp qword [rsp + 0x50], 0
je 0x45faee
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x58]
cmp qword [rax + 0x60], rcx
jne 0x45fcb4
test rcx, rcx
jne 0x45faee
mov rcx, qword [rsp + 0x50]
lea rdx, [0x004e0f7b]
call sym.strcmp
test eax, eax
jne 0x45fcb4
mov rdx, qword [rdi + 0x18]
test rdx, rdx
je 0x45fb0b
mov rcx, qword [rsp + 0x38]
call sym.sqlite3StrICmp
test eax, eax
jne 0x45fcb4
jmp 0x45fb4c
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
mov rdx, qword [rax]
call sym.sqlite3StrICmp
test eax, eax
je 0x45fb68
mov rax, qword [rsp + 0x60]
cmp dword [rax + 0x28], 1
jne 0x45fcb4
mov r8, qword [rsp + 0x58]
mov rdx, rax
mov rcx, qword [rsp + 0x38]
call sym.isValidSchemaTableName.isra.361
test eax, eax
je 0x45fcb4
jmp 0x45fb68
cmp byte [r13 + 0x134], 1
jbe 0x45fb68
mov rcx, qword [r13 + 0x1a0]
lea r8, [r14 + 0x40]
xor edx, edx
call sym.sqlite3RenameTokenRemap.isra.137
mov rcx, qword [rsp + 0x40]
xor ebp, ebp
call sym.sqlite3StrIHash
mov byte [rsp + 0x70], al
mov rax, qword [rsp + 0x60]
mov r8, qword [rax + 8]
movsx eax, word [rax + 0x36]
mov dword [rsp + 0x80], eax
cmp ebp, dword [rsp + 0x80]
jge 0x45fc94
mov al, byte [rsp + 0x70]
cmp al, byte [r8 + 0xe]
jne 0x45fc89
mov rcx, qword [r8]
mov qword [rsp + 0x90], r8
mov rdx, qword [rsp + 0x40]
call sym.sqlite3StrICmp
mov r8, qword [rsp + 0x90]
test eax, eax
jne 0x45fc89
test ebx, ebx
mov al, byte [rdi + 0x41]
je 0x45fc5a
test al, 4
je 0x45fbf5
mov rcx, qword [rdi + 0x48]
mov rdx, qword [rsp + 0x40]
call sym.sqlite3IdListIndex
mov r8, qword [rsp + 0x90]
test eax, eax
jns 0x45fc15
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprListDelete
mov qword [rsp + 0xc0], 0
jmp 0x45fc5a
mov al, byte [rdi + 0x3c]
test al, 0x10
je 0x45fc89
test al, 8
jne 0x45fc42
mov rdx, qword [rsp + 0xc0]
xor ebx, ebx
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprListDelete
mov qword [rsp + 0xc0], 0
jmp 0x45fc5a
movsx r9d, word [r14 + 0x30]
lea rdx, [rsp + 0xc0]
mov r8, rsi
mov rcx, r13
call sym.extendFJMatch
mov rax, qword [rsp + 0x60]
inc ebx
mov rsi, rdi
movsx eax, word [rax + 0x34]
cmp eax, ebp
mov eax, 0xffffffff
cmovne eax, ebp
test byte [rdi + 0x41], 0x20
mov word [r14 + 0x30], ax
je 0x45fcb4
mov edx, ebp
mov rcx, rdi
call sym.sqlite3SrcItemColumnUsed
jmp 0x45fcb4
inc ebp
add r8, 0x18
jmp 0x45fb8c
test ebx, ebx
jne 0x45fcb4
mov rax, qword [rsp + 0x60]
test byte [rax + 0x31], 2
jne 0x45fcb4
inc dword [rsp + 0x6c]
mov rsi, rdi
jmp 0x45fcb4
mov dword [rsp + 0x6c], 2
inc dword [rsp + 0x88]
add rdi, 0x68
jmp 0x45f914
test rsi, rsi
je 0x45fcef
mov eax, dword [rsi + 0x44]
mov dword [r14 + 0x2c], eax
mov rax, qword [rsi + 0x20]
mov qword [r14 + 0x40], rax
test byte [rsi + 0x3c], 0x48
je 0x45fce6
or dword [r14 + 4], 0x200000
mov rax, qword [rax + 0x60]
mov qword [rsp + 0x58], rax
test ebx, ebx
jne 0x45ff71
cmp qword [rsp + 0x50], 0
jne 0x45ff71
cmp qword [rsp + 0x38], 0
mov rbp, qword [r13 + 0xb0]
mov edi, dword [r12 + 0x28]
setne r11b
test rbp, rbp
je 0x45fdb9
cmp byte [r13 + 0xe1], 0
movzx ebx, byte [r13 + 0xe0]
je 0x45fd62
bt edi, 0xa
jae 0x45fdb7
cmp qword [rsp + 0x38], 0
je 0x45fd54
mov rdx, qword [rbp]
mov rcx, qword [rsp + 0x38]
call sym.sqlite3StrICmp
test eax, eax
jne 0x45fdb7
xor eax, eax
add ebx, 0xffffff80
setne al
mov dword [r14 + 0x2c], eax
jmp 0x45fdb9
cmp ebx, 0x80
je 0x45fd8e
test r11b, r11b
je 0x45fd8e
mov rdx, qword [rsp + 0x38]
lea rcx, [0x004e27bf]
call sym.sqlite3StrICmp
test eax, eax
jne 0x45fd8e
mov dword [r14 + 0x2c], 1
jmp 0x45fdb9
cmp ebx, 0x7f
je 0x45fdb7
test r11b, r11b
je 0x45fdb7
mov rdx, qword [rsp + 0x38]
lea rcx, [0x004e27c3]
call sym.sqlite3StrICmp
test eax, eax
jne 0x45fdb7
mov dword [r14 + 0x2c], 0
jmp 0x45fdb9
xor ebp, ebp
bt edi, 9
jae 0x45fdf3
test r11b, r11b
je 0x45fdf3
mov r11, qword [r12 + 0x10]
test r11, r11
je 0x45fdf3
mov rdx, qword [rsp + 0x38]
lea rcx, str.excluded
call sym.sqlite3StrICmp
test eax, eax
jne 0x45fdf3
mov rax, qword [r11 + 0x40]
mov rbp, qword [rax + 0x28]
mov dword [r14 + 0x2c], 2
xor ebx, ebx
test rbp, rbp
je 0x45ff71
mov rcx, qword [rsp + 0x40]
call sym.sqlite3StrIHash
mov rdi, qword [rbp + 8]
mov r8d, eax
mov rax, qword [rbp + 0x60]
inc dword [rsp + 0x6c]
movsx r11d, word [rbp + 0x36]
mov qword [rsp + 0x58], rax
cmp ebx, r11d
jge 0x45fe59
cmp r8b, byte [rdi + 0xe]
jne 0x45fe51
mov rdx, qword [rsp + 0x40]
mov byte [rsp + 0x60], r8b
mov rcx, qword [rdi]
call sym.sqlite3StrICmp
mov r8b, byte [rsp + 0x60]
test eax, eax
jne 0x45fe51
movsx eax, word [rbp + 0x34]
cmp eax, ebx
jne 0x45fe83
jmp 0x45fe80
inc ebx
add rdi, 0x18
jmp 0x45fe21
mov rcx, qword [rsp + 0x40]
call sym.sqlite3IsRowid
test eax, eax
mov ebx, eax
je 0x45ff71
test byte [rbp + 0x31], 2
jne 0x45ff6f
test r11d, r11d
js 0x45ff6f
or ebx, 0xffffffff
mov esi, dword [r14 + 0x2c]
cmp esi, 2
jne 0x45fec1
cmp byte [r13 + 0x134], 1
jbe 0x45feac
mov word [r14 + 0x30], bx
mov qword [r14 + 0x40], rbp
mov dword [rsp + 0x68], 0xa7
jmp 0x45ff66
mov edx, ebx
mov rcx, rbp
call sym.sqlite3TableColumnToStorage
mov rdx, qword [r12 + 0x10]
cwde
add eax, dword [rdx + 0x48]
jmp 0x45fef7
mov qword [r14 + 0x40], rbp
cmp byte [r13 + 0xe1], 0
je 0x45ff05
inc r11d
mov byte [r14 + 2], 0xa7
mov edx, ebx
mov rcx, rbp
imul r11d, esi
mov esi, dword [r12 + 0x10]
mov word [r14 + 0x30], bx
add esi, r11d
call sym.sqlite3TableColumnToStorage
cwde
lea eax, [rsi + rax + 1]
mov dword [r14 + 0x2c], eax
mov dword [rsp + 0x68], 0xb0
jmp 0x45ff66
cmp ebx, 0xffffffff
mov word [r14 + 0x30], bx
jne 0x45ff16
mov byte [r14 + 1], 0x44
jmp 0x45ff5e
test esi, esi
jne 0x45ff3d
or edx, 0xffffffff
cmp ebx, 0x1f
mov eax, dword [r13 + 0xd4]
jg 0x45ff32
mov edx, 1
mov ecx, ebx
shl edx, cl
or eax, edx
mov dword [r13 + 0xd4], eax
jmp 0x45ff5e
or edx, 0xffffffff
cmp ebx, 0x1f
mov eax, dword [r13 + 0xd8]
jg 0x45ff55
mov edx, 1
mov ecx, ebx
shl edx, cl
or eax, edx
mov dword [r13 + 0xd8], eax
mov dword [rsp + 0x68], 0x4d
xor esi, esi
mov ebx, 1
jmp 0x45ff71
xor ebx, ebx
test ebx, ebx
jne 0x45ffb7
cmp dword [rsp + 0x6c], 1
jne 0x45ffb7
test rsi, rsi
je 0x45ffbf
test byte [r12 + 0x28], 0x28
jne 0x45ffbf
mov rcx, qword [rsp + 0x40]
call sym.sqlite3IsRowid
test eax, eax
je 0x45ffbf
mov rax, qword [rsi + 0x20]
test byte [rax + 0x31], 2
jne 0x45ffbf
mov word [r14 + 0x30], 0xffff
mov ebx, 1
mov byte [r14 + 1], 0x44
jmp 0x4600f2
test ebx, ebx
jne 0x4600f2
mov edi, dword [r12 + 0x28]
test dil, dil
jns 0x4600db
cmp qword [rsp + 0x38], 0
jne 0x4600db
mov rbp, qword [r12 + 0x10]
xor r11d, r11d
mov eax, dword [rbp]
mov dword [rsp + 0x70], eax
cmp dword [rsp + 0x70], r11d
mov dword [rsp + 0x60], r11d
jle 0x4600db
movsxd rbx, r11d
shl rbx, 5
add rbx, rbp
test byte [rbx + 0x1c], 3
jne 0x4600d3
mov rax, r11
mov rdx, qword [rsp + 0x40]
shl rax, 5
mov r8, qword [rbp + rax + 0x10]
mov rcx, r8
mov qword [rsp + 0x78], r8
call sym.sqlite3_stricmp
mov r8, qword [rsp + 0x78]
test eax, eax
jne 0x4600d3
mov rcx, qword [rbx + 8]
test dil, 1
mov eax, dword [rcx + 4]
jne 0x46004f
lea rdx, str.misuse_of_aliased_aggregate__s
test al, 0x10
jne 0x460067
bt eax, 0xf
jae 0x460074
bt edi, 0xe
jae 0x460060
cmp r15, r12
je 0x460074
lea rdx, str.misuse_of_aliased_window_function__s
mov rcx, r13
call sym.sqlite3ErrorMsg
jmp 0x460bfa
call sym.sqlite3ExprVectorSize
dec eax
je 0x460091
lea rdx, str.row_value_misused
mov rcx, r13
call sym.sqlite3ErrorMsg
jmp 0x460bfa
mov eax, dword [rsp + 0x8c]
mov r9, r14
mov rdx, rbp
mov rcx, r13
mov r8d, dword [rsp + 0x60]
mov dword [rsp + 0x20], eax
call sym.resolveAlias
cmp byte [r13 + 0x134], 1
jbe 0x460337
mov rcx, qword [r13 + 0x1a0]
mov r8, r14
xor edx, edx
call sym.sqlite3RenameTokenRemap.isra.137
jmp 0x460337
inc r11
jmp 0x45ffe8
mov r12, qword [r12 + 0x18]
inc dword [rsp + 0x8c]
test r12, r12
jne 0x45f8f0
xor ebx, ebx
test ebx, ebx
jne 0x460194
cmp qword [rsp + 0x38], 0
jne 0x460194
test byte [r14 + 4], 0x80
je 0x460172
mov rax, qword [rsp + 0x48]
cmp byte [rax + 0xc5], 0
jne 0x46014b
test byte [r15 + 0x2a], 1
mov rax, qword [rax + 0x30]
je 0x460140
mov rdx, rax
and edx, 0x10000001
dec rdx
jne 0x46013a
bt eax, 0x1e
jb 0x46014b
shr rax, 0x1d
jmp 0x460144
shr rax, 0x1e
and eax, 1
test eax, eax
je 0x460172
mov r8, qword [rsp + 0x40]
lea rdx, str.double_quoted_string_literal:___w_
mov ecx, 0x1c
call sym.sqlite3_log
mov byte [r14], 0x75
mov qword [r14 + 0x40], 0
jmp 0x460c01
mov rcx, r14
call sym.sqlite3ExprIdToTrueFalse
test eax, eax
jne 0x460c01
mov rdx, qword [rsp + 0xc0]
test rdx, rdx
jne 0x46019f
jmp 0x460235
cmp ebx, 1
je 0x4602cc
jmp 0x460182
lea eax, [rbx - 1]
cmp dword [rdx], eax
jne 0x46021f
mov eax, dword [r14 + 4]
bt eax, 0x17
jae 0x4601bb
and eax, 0xff7fffff
mov dword [r14 + 4], eax
jmp 0x4601e7
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprDelete
mov rdx, qword [r14 + 0x18]
mov qword [r14 + 0x10], 0
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprDelete
mov qword [r14 + 0x18], 0
movsx r9d, word [r14 + 0x30]
lea rdx, [rsp + 0xc0]
mov r8, rsi
mov rcx, r13
call sym.extendFJMatch
lea rax, str.coalesce
mov byte [r14], 0xac
mov qword [r14 + 8], rax
mov rax, qword [rsp + 0xc0]
mov qword [r14 + 0x20], rax
jmp 0x460337
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprListDelete
mov qword [rsp + 0xc0], 0
lea r8, str.ambiguous_column_name
test ebx, ebx
lea rax, str.no_such_column
cmove r8, rax
cmp qword [rsp + 0x50], 0
je 0x46027b
mov rax, qword [rsp + 0x40]
lea rdx, str._s:__s._s._s
mov rcx, r13
mov r9, qword [rsp + 0x50]
mov qword [rsp + 0x28], rax
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call sym.sqlite3ErrorMsg
jmp 0x4602b7
cmp qword [rsp + 0x38], 0
je 0x4602a3
mov rax, qword [rsp + 0x40]
lea rdx, str._s:__s._s
mov rcx, r13
mov r9, qword [rsp + 0x38]
mov qword [rsp + 0x20], rax
call sym.sqlite3ErrorMsg
jmp 0x4602b7
mov r9, qword [rsp + 0x40]
lea rdx, str._s:__s
mov rcx, r13
call sym.sqlite3ErrorMsg
mov rcx, qword [r13]
mov rdx, r14
call sym.sqlite3RecordErrorOffsetOfExpr
mov byte [r13 + 0x1d], 1
inc dword [r15 + 0x24]
test dword [r14 + 4], 0x810000
jne 0x46030a
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprDelete
mov rdx, qword [r14 + 0x18]
mov qword [r14 + 0x10], 0
mov rcx, qword [rsp + 0x48]
call sym.sqlite3ExprDelete
mov qword [r14 + 0x18], 0
or dword [r14 + 4], 0x800000
cmp word [r14 + 0x30], 0
js 0x460323
test rsi, rsi
je 0x460323
mov rcx, r14
call sym.sqlite3ExprColUsed
or qword [rsi + 0x50], rax
mov al, byte [rsp + 0x68]
dec ebx
mov ebp, 2
mov byte [r14], al
jne 0x460c06
mov rcx, qword [r13]
cmp qword [rcx + 0x200], 0
je 0x4603ea
mov r10b, byte [r14]
cmp r10b, 0xa7
je 0x46035c
cmp r10b, 0x4d
jne 0x4603ea
mov rdx, qword [rsp + 0x58]
call sym.sqlite3SchemaToIndex
test eax, eax
mov r9d, eax
js 0x4603ea
cmp r10b, 0x4d
je 0x46037f
mov rcx, qword [r12 + 8]
xor edx, edx
mov r8d, dword [rcx]
jmp 0x460388
mov rcx, qword [r13 + 0xb0]
jmp 0x4603ab
cmp r8d, edx
movsxd rax, edx
jle 0x4603ea
inc rdx
imul r10, rdx, 0x68
mov edi, dword [rcx + r10 - 0x1c]
cmp dword [r14 + 0x2c], edi
jne 0x460388
imul rax, rax, 0x68
mov rcx, qword [rcx + rax + 0x28]
test rcx, rcx
je 0x4603ea
movsx rdx, word [r14 + 0x30]
test dx, dx
jns 0x4603cb
movsx rdx, word [rcx + 0x34]
lea r8, str.ROWID
test dx, dx
js 0x4603d6
imul rdx, rdx, 0x18
add rdx, qword [rcx + 8]
mov r8, qword [rdx]
mov rdx, qword [rcx]
mov rcx, r13
call sym.sqlite3AuthReadCol
cmp eax, 2
jne 0x4603ea
mov byte [r14], 0x79
inc dword [r15 + 0x20]
cmp r12, r15
je 0x460c01
mov r15, qword [r15 + 0x18]
jmp 0x4603ea
mov rax, qword [rdx + 0x20]
xor esi, esi
test rax, rax
mov qword [rsp + 0x38], rax
je 0x46040f
mov esi, dword [rax]
mov rcx, qword [r13]
xor ebx, ebx
mov eax, dword [r15 + 0x28]
test byte [r14 + 7], 1
movzx ebp, byte [rcx + 0x64]
mov dword [rsp + 0x40], eax
je 0x460434
mov rbx, qword [r14 + 0x40]
cmp byte [rbx + 0x20], 0xa6
jne 0x460434
xor ebx, ebx
mov rdi, qword [r14 + 8]
mov r9d, ebp
mov r8d, esi
mov dword [rsp + 0x20], 0
mov rdx, rdi
call sym.sqlite3FindFunction
test rax, rax
mov r12, rax
jne 0x46048f
mov dword [rsp + 0x20], 0
mov rcx, qword [r13]
mov r9d, ebp
mov rdx, rdi
mov r8d, 0xfffffffe
xor ebp, ebp
call sym.sqlite3FindFunction
cmp rax, 1
mov r12, rax
sbb esi, esi
xor edi, edi
inc esi
cmp rax, 1
setb dil
jmp 0x460639
xor ebp, ebp
cmp qword [rax + 0x20], 0
setne bpl
test byte [rax + 5], 4
je 0x460558
or dword [r14 + 4], 0x80000
cmp esi, 2
jne 0x460540
mov rax, qword [rsp + 0x38]
mov rdi, qword [0x004f5f10]
mov rax, qword [rax + 0x28]
mov qword [rsp + 0xc0], rdi
cmp byte [rax], 0x99
je 0x4604dc
mov dword [r14 + 0x2c], 0xffffffff
jmp 0x460528
mov r10, qword [rax + 8]
mov rcx, r10
call sym.sqlite3Strlen30
lea rdx, [rsp + 0xc0]
mov r9d, 1
mov r8d, eax
mov rcx, r10
call sym.sqlite3AtoF
movsd xmm0, qword [rsp + 0xc0]
comisd xmm0, xmmword [0x004f5da8]
ja 0x4604d2
mulsd xmm0, qword [0x004f5f40]
cvttsd2si eax, xmm0
test eax, eax
mov dword [r14 + 0x2c], eax
jns 0x460558
lea rdx, str.second_argument_to__T___must_be_a_constant_between_0.0_and_1.0
mov r8, r14
mov rcx, r13
call sym.sqlite3ErrorMsg
inc dword [r15 + 0x24]
jmp 0x460558
mov rax, qword [rax + 0x38]
mov edx, 0x7800000
cmp byte [rax], 0x75
mov eax, 0x800000
cmovne eax, edx
mov dword [r14 + 0x2c], eax
mov r9, qword [r12 + 0x38]
xor r8d, r8d
mov edx, 0x1f
mov rcx, r13
mov qword [rsp + 0x20], 0
call sym.sqlite3AuthCheck
test eax, eax
mov esi, eax
je 0x46059f
dec esi
jne 0x460596
lea rdx, str.not_authorized_to_use_function:__T
mov r8, r14
mov rcx, r13
call sym.sqlite3ErrorMsg
inc dword [r15 + 0x24]
mov byte [r14], 0x79
jmp 0x460c01
mov eax, dword [r12 + 4]
test ah, 0x28
je 0x4605b1
or dword [r14 + 4], 0x100000
bt eax, 0xb
mov edx, dword [r15 + 0x28]
jb 0x4605d9
test dl, 0x2a
je 0x4605f0
mov qword [rsp + 0x20], r14
lea r8, str.non_deterministic_functions
xor r9d, r9d
mov rcx, r13
call sym.notValidImpl.isra.428
jmp 0x4605f0
mov eax, edx
and eax, 0x2e
bt edx, 0x12
mov byte [r14 + 2], al
jae 0x4605f0
or dword [r14 + 4], 0x40000000
mov eax, dword [r12 + 4]
bt eax, 0x12
jae 0x46060c
cmp byte [r13 + 0x1e], 0
jne 0x46060c
mov rdx, qword [r13]
test byte [rdx + 0x2c], 0x20
je 0x460631
xor edi, edi
test eax, 0x280000
je 0x460639
cmp byte [r13 + 0x134], 1
ja 0x460639
lea r8, [r12 + 4]
mov rdx, r14
mov rcx, r13
call sym.sqlite3ExprFunctionUsable.isra.421
jmp 0x460639
xor r12d, r12d
mov edi, 1
cmp byte [r13 + 0x134], 1
ja 0x460741
test r12, r12
je 0x460667
cmp qword [r12 + 0x28], 0
jne 0x460667
lea rdx, str._T___may_not_be_used_as_a_window_function
test rbx, rbx
mov r8, r14
jne 0x4606e7
test ebp, ebp
je 0x4606c2
mov edx, dword [r15 + 0x28]
movzx eax, word [r12 + 6]
and eax, 1
test dl, 1
je 0x460693
test rbx, rbx
jne 0x460686
test al, al
jne 0x4606a3
test rbx, rbx
je 0x4606c2
bt edx, 0xe
jae 0x4606a3
jmp 0x4606c2
test rbx, rbx
jne 0x4606a3
lea r8, str.aggregate
test al, al
je 0x4606aa
lea r8, str.window
lea rdx, str.misuse_of__s_function__T__
mov r9, r14
mov rcx, r13
call sym.sqlite3ErrorMsg
inc dword [r15 + 0x24]
jmp 0x460728
test edi, edi
je 0x4606f9
mov rax, qword [r13]
cmp byte [rax + 0xc5], 0
jne 0x4606f9
cmp byte [r13 + 0x133], 0
jne 0x4606f9
lea rdx, str.no_such_function:__T
mov r8, r14
mov rcx, r13
call sym.sqlite3ErrorMsg
inc dword [r15 + 0x24]
test ebp, ebp
jne 0x46070b
jmp 0x460728
lea rdx, str.wrong_number_of_arguments_to_function__T__
test esi, esi
mov r8, r14
jne 0x4606e7
test ebp, ebp
je 0x460721
cmp rbx, 1
mov ebp, 1
sbb eax, eax
sub eax, 0x4001
and dword [r15 + 0x28], eax
jmp 0x46074e
test byte [r14 + 7], 1
jne 0x46072c
xor ebp, ebp
jmp 0x46074e
lea rdx, str.FILTER_may_not_be_used_with_non_aggregate__T__
mov rcx, r13
call sym.sqlite3ErrorMsg
inc dword [r15 + 0x24]
jmp 0x46074e
test byte [r14 + 7], 1
mov eax, 1
cmovne ebp, eax
mov rdx, qword [rsp + 0x38]
mov rcx, qword [rsp + 0x1d0]
call sym.sqlite3WalkExprList
test ebp, ebp
je 0x460c01
test rbx, rbx
je 0x460993
cmp byte [r13 + 0x134], 1
mov r14, qword [r15 + 0x30]
jbe 0x4607ca
mov rdx, qword [rbx + 0x10]
mov rcx, qword [rsp + 0x1d0]
call sym.sqlite3WalkExprList
mov rdx, qword [rbx + 0x18]
mov rcx, qword [rsp + 0x1d0]
call sym.sqlite3WalkExprList
mov rdx, qword [rbx + 0x48]
mov rcx, qword [rsp + 0x1d0]
call sym.sqlite3WalkExpr
mov rdx, rbx
mov rcx, r14
call sym.sqlite3WindowLink
or dword [r15 + 0x28], 0x8000
jmp 0x460abf
xor edx, edx
test r14, r14
je 0x4607d5
mov rdx, qword [r14 + 0x78]
mov r8, qword [rbx]
test r8, r8
je 0x460865
cmp byte [rbx + 0x20], 0
jne 0x460865
mov rcx, r13
call sym.windowFind
test rax, rax
mov rsi, rax
je 0x460980
mov rdx, qword [rax + 0x10]
xor r8d, r8d
mov rcx, qword [r13]
call sym.sqlite3ExprListDup
mov rdx, qword [rsi + 0x18]
xor r8d, r8d
mov rcx, qword [r13]
mov qword [rbx + 0x10], rax
call sym.sqlite3ExprListDup
mov rdx, qword [rsi + 0x28]
xor r8d, r8d
mov rcx, qword [r13]
mov qword [rbx + 0x18], rax
call sym.sqlite3ExprDup
mov rdx, qword [rsi + 0x30]
xor r8d, r8d
mov rcx, qword [r13]
mov qword [rbx + 0x28], rax
call sym.sqlite3ExprDup
mov qword [rbx + 0x30], rax
mov al, byte [rsi + 0x21]
mov byte [rbx + 0x21], al
mov al, byte [rsi + 0x22]
mov byte [rbx + 0x22], al
mov al, byte [rsi + 0x20]
mov byte [rbx + 0x20], al
mov al, byte [rsi + 0x24]
mov byte [rbx + 0x24], al
jmp 0x460873
mov r8, rdx
mov rcx, r13
mov rdx, rbx
call sym.sqlite3WindowChain
cmp byte [rbx + 0x20], 0x59
jne 0x46089e
cmp qword [rbx + 0x28], 0
jne 0x460887
cmp qword [rbx + 0x30], 0
je 0x46089e
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x460895
cmp dword [rax], 1
je 0x46089e
lea rdx, str.RANGE_with_offset_PRECEDING_FOLLOWING_requires_one_ORDER_BY_expression
jmp 0x4608b8
test byte [r12 + 6], 1
je 0x46097c
cmp qword [rbx + 0x48], 0
je 0x4608c5
lea rdx, str.FILTER_clause_may_only_be_used_with_aggregate_window_functions
mov rcx, r13
call sym.sqlite3ErrorMsg
jmp 0x46097c
mov rax, qword [r13]
lea rdi, [rsp + 0xc0]
mov ecx, 0x30
mov rdx, qword [r12 + 0x38]
lea rsi, str.row_number
rep movsd dword [rdi], dword [rsi]
xor esi, esi
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xc0]
cmp rdx, qword [rax]
jne 0x46096d
mov rdx, qword [rbx + 0x28]
movsxd rsi, esi
mov rcx, qword [rsp + 0x38]
imul rsi, rsi, 0x18
call sym.sqlite3ExprDelete
mov rdx, qword [rbx + 0x30]
mov rcx, qword [rsp + 0x38]
call sym.sqlite3ExprDelete
mov eax, dword [rsp + rsi + 0xc8]
mov qword [rbx + 0x28], 0
mov qword [rbx + 0x30], 0
mov byte [rbx + 0x20], al
mov eax, dword [rsp + rsi + 0xcc]
mov byte [rbx + 0x21], al
mov edx, dword [rsp + rsi + 0xd0]
cmp al, 0x56
mov byte [rbx + 0x24], 0
mov byte [rbx + 0x22], dl
jne 0x46097c
mov rcx, qword [rsp + 0x38]
lea r8, [0x004e1265]
mov edx, 0x9b
call sym.sqlite3Expr
mov qword [rbx + 0x28], rax
jmp 0x46097c
inc esi
add rax, 0x18
cmp esi, 8
jne 0x4608f3
mov qword [rbx + 0x50], r12
mov rax, qword [r13]
cmp byte [rax + 0x67], 0
je 0x46077f
jmp 0x460bf2
test byte [r14 + 7], 1
mov byte [r14], 0xa8
mov byte [r14 + 2], 0
je 0x4609b8
mov rax, qword [r14 + 0x40]
mov rcx, qword [rsp + 0x1d0]
mov rdx, qword [rax + 0x48]
call sym.sqlite3WalkExpr
lea rbx, [rsp + 0xa0]
mov rsi, r15
lea rax, [rbx + 0x10]
mov qword [rsp + 0x38], rax
lea r8, [rsp + 0xc0]
xor eax, eax
mov ecx, 0xa
mov rdx, qword [rsi + 8]
mov rdi, r8
mov qword [rsp + 0x48], r8
rep stosd dword [rdi], eax
mov rdi, qword [rsp + 0x38]
mov ecx, 4
mov qword [rsp + 0xe8], rbx
rep stosd dword [rdi], eax
lea rax, [sym.exprRefToSrcList]
mov rcx, r8
mov qword [rsp + 0xc8], rax
lea rax, [sym.selectRefEnter]
mov qword [rsp + 0xd0], rax
lea rax, [sym.selectRefLeave]
mov qword [rsp + 0xd8], rax
mov rax, qword [r13]
mov qword [rsp + 0xa8], rdx
mov rdx, qword [r14 + 0x20]
mov qword [rsp + 0xa0], rax
call sym.sqlite3WalkExprList
test byte [r14 + 7], 1
mov r8, qword [rsp + 0x48]
je 0x460a66
mov rax, qword [r14 + 0x40]
mov rcx, r8
mov rdx, qword [rax + 0x48]
call sym.sqlite3WalkExpr
mov rdx, qword [rsp + 0xb8]
test rdx, rdx
je 0x460a7c
mov rcx, qword [r13]
call sym.sqlite3DbNNFreeNN
mov eax, dword [rsp + 0xe4]
test al, 1
jne 0x460a9d
test ax, ax
je 0x460a9d
inc byte [r14 + 2]
mov rsi, qword [rsi + 0x18]
test rsi, rsi
jne 0x4609cc
test rsi, rsi
je 0x460abf
test r12, r12
je 0x460abf
mov eax, dword [r12 + 4]
xor eax, 0x8000000
and eax, 0x8001000
or eax, dword [rsi + 0x28]
or eax, 0x10
mov dword [rsi + 0x28], eax
mov eax, dword [rsp + 0x40]
and eax, 0x4001
or dword [r15 + 0x28], eax
jmp 0x460c06
test byte [r14 + 5], 0x10
je 0x460bf2
mov edx, dword [r15 + 0x28]
mov ebx, dword [r15 + 0x20]
test dl, 0x2e
je 0x460b02
mov qword [rsp + 0x20], r14
lea r8, str.subqueries
mov r9, r14
mov rcx, r13
call sym.notValidImpl.isra.428
jmp 0x460b13
mov rdx, qword [r14 + 0x20]
mov rcx, qword [rsp + 0x1d0]
call sym.sqlite3WalkSelect
cmp dword [r15 + 0x20], ebx
je 0x460b1e
or dword [r14 + 4], 0x40
or dword [r15 + 0x28], 0x40
jmp 0x460bf2
mov edx, dword [r15 + 0x28]
test dl, 0x2e
je 0x460bf2
mov qword [rsp + 0x20], r14
lea r8, str.parameters
mov r9, r14
mov rcx, r13
call sym.notValidImpl.isra.428
jmp 0x460bf2
mov rcx, qword [r14 + 0x18]
call sym.sqlite3ExprSkipCollateAndLikely
test rax, rax
mov rbx, rax
je 0x460b95
mov al, byte [rax]
cmp al, 0x3b
je 0x460b6c
cmp al, 0xaa
jne 0x460b95
mov rcx, qword [rsp + 0x1d0]
mov rdx, rbx
call sym.resolveExprStep
cmp eax, 2
je 0x460bfa
cmp byte [rbx], 0xaa
jne 0x460b95
mov al, byte [r14]
xor ebp, ebp
mov byte [r14], 0xaf
mov byte [r14 + 2], al
jmp 0x460c06
mov rax, qword [r13]
cmp byte [rax + 0x67], 0
jne 0x460bf2
mov rcx, qword [r14 + 0x10]
call sym.sqlite3ExprVectorSize
cmp byte [r14], 0x30
mov r8d, eax
jne 0x460bc9
mov r9, qword [r14 + 0x20]
mov rcx, qword [r9 + 8]
call sym.sqlite3ExprVectorSize
cmp r8d, eax
jne 0x460bd7
mov rcx, qword [r9 + 0x28]
jmp 0x460bcd
mov rcx, qword [r14 + 0x18]
call sym.sqlite3ExprVectorSize
cmp eax, r8d
je 0x460bf2
lea rdx, str.row_value_misused
mov rcx, r13
call sym.sqlite3ErrorMsg
mov rcx, qword [r13]
mov rdx, r14
call sym.sqlite3RecordErrorOffsetOfExpr
mov ebp, dword [r13 + 0x30]
test ebp, ebp
je 0x460c06
mov ebp, 2
jmp 0x460c06
mov ebp, 1
mov eax, ebp
add rsp, 0x188
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret