Function at 0x14029b660
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 0x14029c0d4
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 0x14029b798
mov rdi, r8
and rdi, qword [rax + 0x28]
jne 0x14029b798
movzx edi, word [rax + 0x14]
and edi, 0xf7ff
je 0x14029b798
and r11d, 0x80
jne 0x14029b798
movzx r11d, byte [r10 + 0x44]
test r11b, 0x58
je 0x14029b788
mov rdi, qword [rax]
mov ebp, dword [rdi + 4]
test bpl, 3
je 0x14029b798
cmp r9d, dword [rdi + 0x34]
jne 0x14029b798
and r11d, 0x18
je 0x14029b788
and ebp, 2
jne 0x14029b798
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 0x14029b728
movsxd rbx, ebx
imul r13, rbx, 0x1c
add r13, 0x88
test r15, r15
je 0x14029b991
mov edi, dword [r15]
test edi, edi
jle 0x14029c1ef
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 0x14029b908
lea rcx, [rsp + 0x90]
mov rdx, rbx
call sym.walkExpr
cmp word [rsp + 0xb4], 0
jne 0x14029b908
test byte [r12 + 0x10], 2
jne 0x14029b984
movzx eax, byte [rbx]
cmp al, 0xa7
je 0x14029b970
cmp al, 0x71
jne 0x14029b984
mov rax, qword [rbx + 0x10]
cmp byte [rax], 0xa7
jne 0x14029b984
mov rcx, qword [rsp + 0x70]
mov ecx, dword [rcx + 0x4c]
cmp dword [rax + 0x2c], ecx
jne 0x14029b984
movsx rax, word [rax + 0x30]
test ax, ax
mov word [rbx + 0x30], ax
js 0x14029b908
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 0x14029b8c6
mov r9, qword [rcx]
cmp byte [r9], 0
je 0x14029b8ba
add r9, 1
cmp byte [r9], 0
jne 0x14029b8b0
test al, 4
jne 0x14029b950
add r9, 1
mov r11, qword [rbx + 8]
test r11, r11
je 0x14029b984
lea r10, [0x14033cae0]
xor ecx, ecx
jmp 0x14029b8f3
movzx ebx, byte [r10 + rdx]
cmp byte [r10 + rax], bl
jne 0x14029b984
add rcx, 1
movzx eax, byte [r11 + rcx]
movzx edx, byte [r9 + rcx]
cmp eax, edx
jne 0x14029b8e0
test eax, eax
jne 0x14029b8ef
nop dword [rax]
add ebp, 1
add r12, 0x20
cmp edi, ebp
jne 0x14029b7eb
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 0x14029bfe5
test r12w, 0x200
setne r12b
movzx r12d, r12b
add r12d, 2
jmp 0x14029b998
add r9, 1
cmp byte [r9], 0
je 0x14029b8c2
add r9, 1
cmp byte [r9], 0
jne 0x14029b950
jmp 0x14029b8c2
imul rax, qword [rsp + 0x60], 0x68
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx + rax + 0x4c]
cmp dword [rbx + 0x2c], eax
je 0x14029b908
mov rbx, qword [rsp + 0x78]
mov r12d, ebp
cmp edi, r12d
je 0x14029b920
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 0x14029c132
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 0x14029c0fa
xor r12d, r12d
xor edx, edx
xor ebx, ebx
jmp 0x14029ba62
cmp r9w, 0x40
je 0x14029bae0
test r11w, 0x180
jne 0x14029bac8
and r11d, 0x3c
mov byte [r8 + 4], r9b
je 0x14029ba50
mov rcx, qword [rax]
mov r11, qword [rcx + 0x18]
movzx ecx, byte [r11]
cmp cl, 0xb0
jne 0x14029ba3e
movzx ecx, byte [r11 + 2]
cmp cl, 0xb1
je 0x14029c000
cmp cl, 0x8a
je 0x14029bf38
add ebx, 1
add edx, 1
add rax, 0x38
cmp edx, ebp
je 0x14029baf0
movzx ecx, word [rax + 0x12]
test cl, 0x40
je 0x14029ba53
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 0x14029ba08
test cx, cx
js 0x14029be00
cmp ebx, 0x1f
mov r9d, dword [r14 + 0x74]
jg 0x14029baba
mov r11d, 1
mov ecx, ebx
shl r11d, cl
or r9d, r11d
mov dword [r14 + 0x74], r9d
mov byte [r8 + 4], 2
jmp 0x14029ba50
cmp r9w, 0x100
setne cl
add ecx, 0x47
mov byte [r8 + 4], cl
jmp 0x14029ba50
movzx ecx, byte [rax + 0x17]
mov byte [r8 + 4], cl
jmp 0x14029ba50
test edi, edi
mov dword [r14], ebx
je 0x14029bb8c
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 0x14029bb7b
mov rdx, rbx
mov rcx, rsi
call sym.walkExpr
cmp word [rsp + 0xb4], 0
jne 0x14029bb7b
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 0x14029bb20
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 0x14029bc11
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 0x14029c00b
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 0x14029bc09
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 0x14029bf80
test edi, edi
jne 0x14029be12
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 0x14029bfce
test r11d, r11d
je 0x14029be12
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 0x14029be10
test ebx, ebx
jle 0x14029c148
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 0x14029bd6b
cmp r9, r11
cmovb r15, r11
add rax, 0xc
cmp rcx, rax
jne 0x14029bd50
cmp r15, 0xffffffffffffffff
je 0x14029c1d9
cmp rsi, r15
je 0x14029bdf6
cmp qword [rsp + 0x58], r15
je 0x14029bdf6
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 0x14029bde5
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 0x14029be10
mov rax, qword [rsp + 0x50]
mov r10, qword [r14 + 8]
mov r8, qword [rax + 0x20]
mov r9, r15
jmp 0x14029bd40
mov byte [r8 + 4], 2
jmp 0x14029ba50
mov edi, eax
mov r8d, dword [r14 + 0x38]
test r8d, r8d
jne 0x14029bfc0
mov rax, qword [rsp + 0x48]
xor esi, esi
mov rbp, qword [rax]
mov eax, dword [r14]
test eax, eax
jg 0x14029be57
jmp 0x14029bec0
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 0x14029bec0
mov rbx, qword [r14 + rsi*8 + 0x80]
test rbx, rbx
je 0x14029be43
test word [rbx + 0x14], 0x9000
jne 0x14029be73
mov ecx, dword [rbx + 0x20]
test ecx, ecx
je 0x14029be7b
mov rcx, rbx
call sym.vdbeMemClear
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14029be38
cmp rbx, qword [rcx + 0x1f0]
jae 0x14029be9f
cmp rbx, qword [rcx + 0x1e0]
jae 0x14029bef8
cmp rbx, qword [rcx + 0x1e8]
jae 0x14029bf18
cmp qword [rcx + 0x308], 0
je 0x14029be38
mov rdx, rbx
call sym.measureAllocationSize
mov eax, dword [r14]
jmp 0x14029be43
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 0x14029be43
mov rax, qword [rcx + 0x1c8]
mov qword [rbx], rax
mov eax, dword [r14]
mov qword [rcx + 0x1c8], rbx
jmp 0x14029be43
mov rcx, qword [r11 + 0x20]
mov rcx, qword [rcx + 0x20]
mov ecx, dword [rcx]
cmp ecx, 1
jle 0x14029ba50
cmp ebx, 0xf
jg 0x14029bf5e
mov r11d, 1
mov ecx, ebx
shl r11d, cl
or r12d, r11d
cmp r9w, 0x10
je 0x14029bff3
cmp r9w, 4
jne 0x14029ba50
mov byte [r8 + 4], 0x20
jmp 0x14029ba50
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 0x14029bc6a
mov rcx, qword [r14 + 0x30]
call sym.sqlite3_free
jmp 0x14029be1f
test r11d, r11d
jne 0x14029bc9f
mov qword [rsp + 0x58], 0
jmp 0x14029bcf3
shr r12w, 6
and r12d, 1
jmp 0x14029b998
mov byte [r8 + 4], 8
jmp 0x14029ba50
mov rcx, qword [r11 + 0x20]
mov ecx, dword [rcx]
jmp 0x14029bf42
mov rax, qword [rsp + 0x48]
xor esi, esi
mov rdi, qword [rax]
mov eax, dword [r14]
test eax, eax
jg 0x14029c047
jmp 0x14029c0a6
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 0x14029c0a6
mov rbx, qword [r14 + rsi*8 + 0x80]
test rbx, rbx
je 0x14029c033
test word [rbx + 0x14], 0x9000
jne 0x14029c063
mov ebp, dword [rbx + 0x20]
test ebp, ebp
je 0x14029c06b
mov rcx, rbx
call sym.vdbeMemClear
mov rcx, qword [rbx + 0x18]
test rcx, rcx
je 0x14029c028
cmp rbx, qword [rcx + 0x1f0]
jae 0x14029c08f
cmp rbx, qword [rcx + 0x1e0]
jae 0x14029c0bb
cmp rbx, qword [rcx + 0x1e8]
jae 0x14029c0e1
cmp qword [rcx + 0x308], 0
je 0x14029c028
mov rdx, rbx
call sym.measureAllocationSize
mov eax, dword [r14]
jmp 0x14029c033
mov rdx, r14
mov rcx, rdi
call sym.sqlite3DbFreeNN
mov edi, 7
jmp 0x14029becc
mov rax, qword [rcx + 0x1d8]
mov qword [rbx], rax
mov eax, dword [r14]
mov qword [rcx + 0x1d8], rbx
jmp 0x14029c033
mov r13d, 0x88
xor ebx, ebx
jmp 0x14029b7af
mov rax, qword [rcx + 0x1c8]
mov qword [rbx], rax
mov eax, dword [r14]
mov qword [rcx + 0x1c8], rbx
jmp 0x14029c033
xor r12d, r12d
test edi, edi
mov dword [r14], 0
jne 0x14029bafb
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 0x14029bc11
mov rcx, qword [rsp + 0x48]
lea rdx, [0x14032a7cc]
call sym.sqlite3ErrorMsg
jmp 0x14029c0b1
mov ebx, r11d
test r11d, r11d
jne 0x14029c195
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 0x14029be12
or ebx, edi
jne 0x14029be12
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 0x14029be12
mov r11d, dword [rsp + 0x68]
mov edi, dword [rsp + 0x78]
mov ebx, r11d
mov r11d, dword [rsp + 0x70]
jmp 0x14029c14b
xor r12d, r12d
jmp 0x14029b98c