Function at 0x1402a2930
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, 0xe8
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xd0], xmm7
lea rsi, [sym.exprNodeIsConstant]
lea rax, [sym.sqlite3SelectWalkFail]
movq xmm6, rsi
mov rsi, qword [rcx + 0x10]
movq xmm0, rax
mov r14, qword [rcx]
punpcklqdq xmm6, xmm0
movzx ebx, byte [rsi + 0x10]
mov qword [rsp + 0x138], rdx
mov rdi, qword [r14 + 8]
mov qword [rsp + 0x130], rcx
mov dword [rsp + 0x8c], 0
mov rax, qword [r14]
mov r15, qword [r14 + 0x10]
imul r10, rbx, 0x68
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x58], rdi
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 8]
add r10, rdi
mov rdi, qword [r10 + 0x28]
movq xmm7, rax
mov qword [rsp + 0x50], rax
movhps xmm7, qword [rsp + 0x48]
mov qword [rsp + 0x68], rdi
mov rdi, rax
mov rax, qword [rax + 0x20]
mov edx, dword [rdi + 0x14]
test edx, edx
jle 0x1402a33a4
movsxd rcx, edx
mov r9d, dword [r10 + 0x4c]
xor ebx, ebx
imul rcx, rcx, 0x38
add rcx, rax
nop dword [rax]
movzx r11d, word [rax + 0x12]
mov edx, r11d
and edx, 0xffffffbf
cmp dword [rax + 0x1c], r9d
mov word [rax + 0x12], dx
jne 0x1402a2a68
mov rdi, r8
and rdi, qword [rax + 0x28]
jne 0x1402a2a68
movzx edi, word [rax + 0x14]
and edi, 0xf7ff
je 0x1402a2a68
and r11d, 0x80
jne 0x1402a2a68
movzx r11d, byte [r10 + 0x44]
test r11b, 0x58
je 0x1402a2a58
mov rdi, qword [rax]
mov ebp, dword [rdi + 4]
test bpl, 3
je 0x1402a2a68
cmp r9d, dword [rdi + 0x34]
jne 0x1402a2a68
and r11d, 0x18
je 0x1402a2a58
and ebp, 2
jne 0x1402a2a68
nop dword [rax + rax]
or edx, 0x40
add ebx, 1
mov word [rax + 0x12], dx
nop word [rax + rax]
add rax, 0x38
cmp rax, rcx
jne 0x1402a29f8
movsxd rbx, ebx
imul r13, rbx, 0x1c
add r13, 0x88
test r15, r15
je 0x1402a2c61
mov edi, dword [r15]
test edi, edi
jle 0x1402a34bf
imul rax, qword [rsp + 0x60], 0x68
xor r12d, r12d
mov qword [rsp + 0x78], rbx
mov rcx, qword [rsp + 0x58]
lea rbp, [r15 + 8]
add rax, rcx
mov qword [rsp + 0x70], rax
mov rax, rbp
mov ebp, r12d
mov r12, rax
mov rbx, qword [r12]
mov eax, 1
movups xmmword [rsp + 0x98], xmm6
mov word [rsp + 0xb4], ax
mov dword [rsp + 0xb8], 0
test rbx, rbx
je 0x1402a2bd8
lea rcx, [rsp + 0x90]
mov rdx, rbx
call sym.walkExpr
cmp word [rsp + 0xb4], 0
jne 0x1402a2bd8
test byte [r12 + 0x10], 2
jne 0x1402a2c54
movzx eax, byte [rbx]
cmp al, 0xa7
je 0x1402a2c40
cmp al, 0x71
jne 0x1402a2c54
mov rax, qword [rbx + 0x10]
cmp byte [rax], 0xa7
jne 0x1402a2c54
mov rcx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x4c]
cmp dword [rax + 0x2c], ecx
jne 0x1402a2c54
movsx rax, word [rax + 0x30]
test ax, ax
mov word [rbx + 0x30], ax
js 0x1402a2bd8
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x68]
lea r9, str.BINARY
mov rax, qword [rax + 8]
lea rcx, [rax + rcx*8]
movzx eax, word [rcx + 0x12]
test ah, 2
je 0x1402a2b96
mov r9, qword [rcx]
cmp byte [r9], 0
je 0x1402a2b8a
add r9, 1
cmp byte [r9], 0
jne 0x1402a2b80
test al, 4
jne 0x1402a2c20
add r9, 1
mov r11, qword [rbx + 8]
test r11, r11
je 0x1402a2c54
lea r10, [0x1403266c0]
xor ecx, ecx
jmp 0x1402a2bc3
movzx ebx, byte [r10 + rdx]
cmp byte [r10 + rax], bl
jne 0x1402a2c54
add rcx, 1
movzx eax, byte [r11 + rcx]
movzx edx, byte [r9 + rcx]
cmp eax, edx
jne 0x1402a2bb0
test eax, eax
jne 0x1402a2bbf
nop dword [rax]
add ebp, 1
add r12, 0x20
cmp edi, ebp
jne 0x1402a2abb
mov rbx, qword [rsp + 0x78]
nop dword [rax]
movzx r12d, word [r14 + 0x3c]
movsxd rbp, edi
shl rbp, 3
add r13, rbp
test r12b, 0x80
je 0x1402a32b5
test r12w, 0x200
setne r12b
movzx r12d, r12b
add r12d, 2
jmp 0x1402a2c68
add r9, 1
cmp byte [r9], 0
je 0x1402a2b92
add r9, 1
cmp byte [r9], 0
jne 0x1402a2c20
jmp 0x1402a2b92
imul rax, qword [rsp + 0x60], 0x68
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx + rax + 0x4c]
cmp dword [rbx + 0x2c], eax
je 0x1402a2bd8
mov rbx, qword [rsp + 0x78]
mov r12d, ebp
cmp edi, r12d
je 0x1402a2bf0
xor ebp, ebp
xor r12d, r12d
xor edi, edi
mov rax, qword [rsp + 0x48]
mov rdx, r13
mov rcx, qword [rax]
call sym.sqlite3DbMallocZero
test rax, rax
mov r14, rax
je 0x1402a3402
lea r10, [rax + rbx*8 + 0x80]
movups xmmword [r14 + 0x60], xmm7
lea rax, [rbx + rbx*2]
mov rbx, qword [rsp + 0x50]
mov qword [r14 + 8], r10
lea r13, [r10 + rax*4]
mov dword [r14 + 0x70], r12d
add rbp, r13
mov qword [r14 + 0x18], r13
mov qword [r14 + 0x20], rbp
mov ebp, dword [rbx + 0x14]
mov dword [r14 + 0x74], 0
mov rax, qword [rbx + 0x20]
test ebp, ebp
jle 0x1402a33ca
xor r12d, r12d
xor edx, edx
xor ebx, ebx
jmp 0x1402a2d32
cmp r9w, 0x40
je 0x1402a2db0
test r11w, 0x180
jne 0x1402a2d98
and r11d, 0x3c
mov byte [r8 + 4], r9b
je 0x1402a2d20
mov rcx, qword [rax]
mov r11, qword [rcx + 0x18]
movzx ecx, byte [r11]
cmp cl, 0xb0
jne 0x1402a2d0e
movzx ecx, byte [r11 + 2]
cmp cl, 0xb1
je 0x1402a32d0
cmp cl, 0x8a
je 0x1402a3208
add ebx, 1
add edx, 1
add rax, 0x38
cmp edx, ebp
je 0x1402a2dc0
movzx ecx, word [rax + 0x12]
test cl, 0x40
je 0x1402a2d23
mov r9d, dword [rax + 0x20]
movsxd r8, ebx
movzx r11d, word [rax + 0x14]
lea r8, [r8 + r8*2]
lea r8, [r10 + r8*4]
mov dword [r8 + 8], edx
mov dword [r8], r9d
mov r9d, r11d
and r9w, 0x3fff
cmp r9w, 1
jne 0x1402a2cd8
test cx, cx
js 0x1402a30d0
cmp ebx, 0x1f
mov r9d, dword [r14 + 0x74]
jg 0x1402a2d8a
mov r11d, 1
mov ecx, ebx
shl r11d, cl
or r9d, r11d
mov dword [r14 + 0x74], r9d
mov byte [r8 + 4], 2
jmp 0x1402a2d20
cmp r9w, 0x100
setne cl
add ecx, 0x47
mov byte [r8 + 4], cl
jmp 0x1402a2d20
movzx ecx, byte [rax + 0x17]
mov byte [r8 + 4], cl
jmp 0x1402a2d20
test edi, edi
mov dword [r14], ebx
je 0x1402a2e5c
lea rbp, [rsp + 0x90]
movsxd rbx, edi
mov qword [rsp + 0x58], rsi
xor edi, edi
shl rbx, 5
mov rsi, rbp
add rbx, r15
mov rbp, rbx
nop word [rax + rax]
mov rbx, qword [r15 + 8]
mov eax, 1
movups xmmword [rsp + 0x98], xmm6
mov word [rsp + 0xb4], ax
mov dword [rsp + 0xb8], 0
test rbx, rbx
je 0x1402a2e4b
mov rdx, rbx
mov rcx, rsi
call sym.walkExpr
cmp word [rsp + 0xb4], 0
jne 0x1402a2e4b
movsxd rax, edi
add edi, 1
lea rdx, [r13 + rax*8]
movsx eax, word [rbx + 0x30]
mov dword [rdx], eax
movzx eax, byte [r15 + 0x18]
and eax, 1
mov byte [rdx + 4], al
add r15, 0x20
cmp rbp, r15
jne 0x1402a2df0
mov rsi, qword [rsp + 0x58]
mov ebx, dword [r14]
mov rax, qword [rsp + 0x48]
mov dword [r14 + 0x10], edi
xor r13d, r13d
xor r15d, r15d
and byte [rsi + 0x1c], 0xfe
mov word [rsi + 0x12], r13w
mov dword [rsi + 0x38], 0x400
mov rbp, qword [rax]
mov word [rsi + 0x3c], r15w
movzx eax, word [rsi + 0x40]
cmp eax, ebx
jge 0x1402a2ee1
lea edi, [rbx + 7]
mov rcx, rbp
and edi, 0xfffffff8
movsxd rdx, edi
shl rdx, 3
call sym.sqlite3DbMallocRawNN
test rax, rax
mov r13, rax
je 0x1402a32db
movzx eax, word [rsi + 0x40]
mov rcx, r13
mov rdx, qword [rsi + 0x48]
lea r8, [rax*8]
call sym.memcpy
mov rdx, qword [rsi + 0x48]
lea rax, [rsi + 0x58]
cmp rdx, rax
je 0x1402a2ed9
mov rcx, rbp
call sym.sqlite3DbFreeNN
mov qword [rsi + 0x48], r13
mov word [rsi + 0x40], di
mov rdx, qword [rsp + 0x138]
movzx ebp, r12w
xor r9d, r9d
mov qword [rsp + 0x20], r14
mov rcx, qword [rsp + 0x130]
lea rax, [rsp + 0x8c]
mov dword [rsp + 0x28], ebp
mov r8, 0xffffffffffffffff
lea r12, [rsp + 0x90]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], r12
call sym.whereLoopAddVirtualOne
mov r11d, dword [rsp + 0x8c]
mov edi, eax
test r11d, r11d
jne 0x1402a3250
test edi, edi
jne 0x1402a30e2
mov r15, qword [rsp + 0x138]
mov r11d, dword [rsp + 0x90]
not r15
mov rax, r15
and rax, qword [rsi]
mov qword [rsp + 0x68], rax
jne 0x1402a329e
test r11d, r11d
je 0x1402a30e2
mov rcx, qword [rsp + 0x130]
mov qword [rsp + 0x30], r12
mov r9d, 1
mov r8, 0xffffffffffffffff
mov rdx, qword [rsp + 0x138]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x20], r14
call sym.whereLoopAddVirtualOne
mov rcx, r15
and rcx, qword [rsi]
sete r11b
test eax, eax
mov qword [rsp + 0x58], rcx
movzx r11d, r11b
jne 0x1402a30e0
test ebx, ebx
jle 0x1402a3418
mov rax, qword [rsp + 0x50]
movsxd rbx, ebx
mov qword [rsp + 0x60], rsi
xor r9d, r9d
lea r13, [rbx + rbx*2]
mov r10, qword [r14 + 8]
mov dword [rsp + 0x78], edi
mov rdi, r15
mov rsi, qword [rsp + 0x68]
shl r13, 2
mov dword [rsp + 0x70], r11d
mov rbx, qword [rsp + 0x138]
mov dword [rsp + 0x68], r11d
mov r8, qword [rax + 0x20]
nop dword [rax]
lea rax, [r10 + 8]
mov r15, 0xffffffffffffffff
lea rcx, [rax + r13]
nop
movsxd rdx, dword [rax]
imul rdx, rdx, 0x38
mov r11, qword [r8 + rdx + 0x28]
and r11, rdi
cmp r11, r15
jae 0x1402a303b
cmp r9, r11
cmovb r15, r11
add rax, 0xc
cmp rcx, rax
jne 0x1402a3020
cmp r15, 0xffffffffffffffff
je 0x1402a34a9
cmp rsi, r15
je 0x1402a30c6
cmp qword [rsp + 0x58], r15
je 0x1402a30c6
mov r8, rbx
xor r9d, r9d
mov qword [rsp + 0x30], r12
mov rdx, rbx
mov rcx, qword [rsp + 0x130]
or r8, r15
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x20], r14
call sym.whereLoopAddVirtualOne
mov rcx, qword [rsp + 0x60]
cmp qword [rcx], rbx
jne 0x1402a30b5
mov r10d, dword [rsp + 0x90]
mov ecx, 1
mov dword [rsp + 0x70], 1
test r10d, r10d
cmovne ecx, dword [rsp + 0x68]
mov dword [rsp + 0x68], ecx
test eax, eax
jne 0x1402a30e0
mov rax, qword [rsp + 0x50]
mov r10, qword [r14 + 8]
mov r8, qword [rax + 0x20]
mov r9, r15
jmp 0x1402a3010
mov byte [r8 + 4], 2
jmp 0x1402a2d20
mov edi, eax
mov r8d, dword [r14 + 0x38]
test r8d, r8d
jne 0x1402a3290
mov rax, qword [rsp + 0x48]
xor esi, esi
mov rbp, qword [rax]
mov eax, dword [r14]
test eax, eax
jg 0x1402a3127
jmp 0x1402a3190
mov rcx, rbx
call sym.sqlite3_free
mov eax, dword [r14]
mov qword [r14 + rsi*8 + 0x80], 0
add rsi, 1
cmp eax, esi
jle 0x1402a3190
mov rbx, qword [r14 + rsi*8 + 0x80]
test rbx, rbx
je 0x1402a3113
test word [rbx + 0x14], 0x9000
jne 0x1402a3143
mov ecx, dword [rbx + 0x20]
test ecx, ecx
je 0x1402a314b
mov rcx, rbx
call sym.vdbeMemClear
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1402a3108
cmp rbx, qword [rcx + 0x1f0]
jae 0x1402a316f
cmp rbx, qword [rcx + 0x1e0]
jae 0x1402a31c8
cmp rbx, qword [rcx + 0x1e8]
jae 0x1402a31e8
cmp qword [rcx + 0x308], 0
je 0x1402a3108
mov rdx, rbx
call sym.measureAllocationSize
mov eax, dword [r14]
jmp 0x1402a3113
mov rdx, r14
mov rcx, rbp
call sym.sqlite3DbFreeNN
nop
movaps xmm6, xmmword [rsp + 0xc0]
mov eax, edi
movaps xmm7, xmmword [rsp + 0xd0]
add rsp, 0xe8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rcx + 0x1d8]
mov qword [rbx], rax
mov eax, dword [r14]
mov qword [rcx + 0x1d8], rbx
jmp 0x1402a3113
mov rax, qword [rcx + 0x1c8]
mov qword [rbx], rax
mov eax, dword [r14]
mov qword [rcx + 0x1c8], rbx
jmp 0x1402a3113
mov rcx, qword [r11 + 0x20]
mov rcx, qword [rcx + 0x20]
mov ecx, dword [rcx]
cmp ecx, 1
jle 0x1402a2d20
cmp ebx, 0xf
jg 0x1402a322e
mov r11d, 1
mov ecx, ebx
shl r11d, cl
or r12d, r11d
cmp r9w, 0x10
je 0x1402a32c3
cmp r9w, 4
jne 0x1402a2d20
mov byte [r8 + 4], 0x20
jmp 0x1402a2d20
mov rdx, qword [rsp + 0x138]
mov qword [rsp + 0x30], r12
xor r9d, r9d
mov r8, 0xffffffffffffffff
mov rcx, qword [rsp + 0x130]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x20], r14
call sym.whereLoopAddVirtualOne
mov edi, eax
jmp 0x1402a2f3a
mov rcx, qword [r14 + 0x30]
call sym.sqlite3_free
jmp 0x1402a30ef
test r11d, r11d
jne 0x1402a2f6f
mov qword [rsp + 0x58], 0
jmp 0x1402a2fc3
shr r12w, 6
and r12d, 1
jmp 0x1402a2c68
mov byte [r8 + 4], 8
jmp 0x1402a2d20
mov rcx, qword [r11 + 0x20]
mov ecx, dword [rcx]
jmp 0x1402a3212
mov rax, qword [rsp + 0x48]
xor esi, esi
mov rdi, qword [rax]
mov eax, dword [r14]
test eax, eax
jg 0x1402a3317
jmp 0x1402a3376
mov rcx, rbx
call sym.sqlite3_free
mov eax, dword [r14]
mov qword [r14 + rsi*8 + 0x80], 0
add rsi, 1
cmp eax, esi
jle 0x1402a3376
mov rbx, qword [r14 + rsi*8 + 0x80]
test rbx, rbx
je 0x1402a3303
test word [rbx + 0x14], 0x9000
jne 0x1402a3333
mov ebp, dword [rbx + 0x20]
test ebp, ebp
je 0x1402a333b
mov rcx, rbx
call sym.vdbeMemClear
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x1402a32f8
cmp rbx, qword [rcx + 0x1f0]
jae 0x1402a335f
cmp rbx, qword [rcx + 0x1e0]
jae 0x1402a338b
cmp rbx, qword [rcx + 0x1e8]
jae 0x1402a33b1
cmp qword [rcx + 0x308], 0
je 0x1402a32f8
mov rdx, rbx
call sym.measureAllocationSize
mov eax, dword [r14]
jmp 0x1402a3303
mov rdx, r14
mov rcx, rdi
call sym.sqlite3DbFreeNN
mov edi, 7
jmp 0x1402a319c
mov rax, qword [rcx + 0x1d8]
mov qword [rbx], rax
mov eax, dword [r14]
mov qword [rcx + 0x1d8], rbx
jmp 0x1402a3303
mov r13d, 0x88
xor ebx, ebx
jmp 0x1402a2a7f
mov rax, qword [rcx + 0x1c8]
mov qword [rbx], rax
mov eax, dword [r14]
mov qword [rcx + 0x1c8], rbx
jmp 0x1402a3303
xor r12d, r12d
test edi, edi
mov dword [r14], 0
jne 0x1402a2dcb
xor eax, eax
xor edx, edx
mov dword [r14 + 0x10], 0
xor ebx, ebx
and byte [rsi + 0x1c], 0xfe
mov word [rsi + 0x12], ax
mov dword [rsi + 0x38], 0x400
mov word [rsi + 0x3c], dx
jmp 0x1402a2ee1
mov rcx, qword [rsp + 0x48]
lea rdx, [0x140313fac]
call sym.sqlite3ErrorMsg
jmp 0x1402a3381
mov ebx, r11d
test r11d, r11d
jne 0x1402a3465
mov r8, qword [rsp + 0x138]
xor r9d, r9d
mov qword [rsp + 0x38], 0
mov rcx, qword [rsp + 0x130]
mov qword [rsp + 0x30], r12
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x20], r14
mov rdx, r8
call sym.whereLoopAddVirtualOne
mov r9d, dword [rsp + 0x90]
mov edi, eax
test r9d, r9d
je 0x1402a30e2
or ebx, edi
jne 0x1402a30e2
mov r8, qword [rsp + 0x138]
mov qword [rsp + 0x30], r12
mov r9d, 1
mov rcx, qword [rsp + 0x130]
mov dword [rsp + 0x28], ebp
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x20], r14
mov rdx, r8
call sym.whereLoopAddVirtualOne
mov edi, eax
jmp 0x1402a30e2
mov r11d, dword [rsp + 0x68]
mov edi, dword [rsp + 0x78]
mov ebx, r11d
mov r11d, dword [rsp + 0x70]
jmp 0x1402a341b
xor r12d, r12d
jmp 0x1402a2c5c