Function at 0x14026d070
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, 0xa8
mov eax, dword [rsp + 0x110]
mov qword [rsp + 0xf8], rdx
mov rdx, qword [rcx]
mov rbp, rcx
mov dword [rsp + 0x68], r9d
mov esi, dword [rsp + 0x68]
mov qword [rsp + 0x100], r8
mov rdx, qword [rdx]
mov word [rsp + 0x54], si
mov word [rsp + 0x9a], ax
test ax, ax
je 0x14026d0cb
test byte [rdx + 0x60], 0x40
je 0x14026d0cb
xor eax, eax
jmp 0x14026d70c
mov rax, qword [rsp + 0xf8]
mov eax, dword [rax]
mov dword [rsp + 0x48], eax
cmp word [rsp + 0x48], 0x3f
ja 0x14026d0c4
movzx eax, word [rsp + 0x48]
mov cl, byte [rsp + 0x48]
mov bl, 1
mov dword [rsp + 0x4c], eax
mov eax, 1
shl rax, cl
dec rax
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x68]
and ax, 0x803
cmp ax, 1
sbb eax, eax
xor r10d, r10d
xor esi, esi
mov dword [rsp + 0x58], eax
add word [rsp + 0x58], 0x183
mov qword [rsp + 0x38], r10
mov qword [rsp + 0x78], r10
mov qword [rsp + 0x70], r10
mov qword [rsp + 0x30], r10
mov rdi, qword [rsp + 0x80]
cmp qword [rsp + 0x30], rdi
jae 0x14026d6bc
test bl, 1
je 0x14026d6bc
movzx eax, word [rsp + 0x9a]
mov edx, dword [rsp + 0x38]
cmp eax, edx
jl 0x14026d6b8
cmp qword [rsp + 0x38], 0
je 0x14026d176
mov rsi, qword [rsi + 8]
or qword [rsp + 0x78], rsi
cmp eax, edx
jle 0x14026d1a0
mov rax, qword [rsp + 0x100]
mov rsi, qword [rsp + 0x38]
mov bl, 1
mov rax, qword [rax + 0x18]
mov rsi, qword [rax + rsi*8]
test word [rsp + 0x54], 0x800
jne 0x14026d6ae
jmp 0x14026d1a8
mov rsi, qword [rsp + 0x118]
test byte [rsi + 0x39], 4
je 0x14026d1d3
cmp byte [rsi + 0x20], 0
mov al, 0xff
je 0x14026d70c
mov edx, dword [rsp + 0x68]
and dx, 0x280
cmp dx, 0x80
jne 0x14026d6cb
jmp 0x14026d70c
mov eax, dword [rsp + 0x54]
and ax, 0x80
mov word [rsp + 0x98], ax
je 0x14026d1eb
mov word [rsi + 0x1e], 0
movzx eax, byte [rsi + 0x10]
xor ebx, ebx
imul rax, rax, 0x68
add rax, qword [rbp + 8]
mov eax, dword [rax + 0x4c]
mov dword [rsp + 0x50], eax
mov rax, qword [rsp + 0xf8]
add rax, 8
mov qword [rsp + 0x88], rax
mov rdi, rax
mov eax, dword [rsp + 0x4c]
cmp ebx, eax
je 0x14026d31e
mov r12, qword [rsp + 0x30]
mov ecx, ebx
shr r12, cl
and r12d, 1
jne 0x14026d313
mov rcx, qword [rdi]
call sym.sqlite3ExprSkipCollateAndLikely
mov r13, rax
test rax, rax
je 0x14026d313
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x14026d313
mov eax, dword [rsp + 0x50]
cmp dword [r13 + 0x2c], eax
jne 0x14026d313
movzx eax, word [rsp + 0x58]
xor r9d, r9d
mov edx, dword [rsp + 0x50]
lea rcx, [rbp + 0x70]
movsx r8d, word [r13 + 0x30]
mov qword [rsp + 0x28], r9
mov dword [rsp + 0x20], eax
mov r9, qword [rsp + 0x78]
not r9
call sym.sqlite3WhereFindTerm
mov r14, rax
test rax, rax
je 0x14026d313
mov eax, dword [rax + 0x14]
cmp ax, 1
jne 0x14026d2d5
movzx eax, word [rsi + 0x3c]
cmp eax, r12d
jle 0x14026d313
mov rdx, qword [rsi + 0x48]
lea rcx, [r12 + 1]
cmp qword [rdx + r12*8], r14
je 0x14026d2bf
mov r12, rcx
jmp 0x14026d2a6
cmp eax, r12d
jle 0x14026d313
mov eax, 1
mov ecx, ebx
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14026d313
test al, 0x82
je 0x14026d2c4
cmp word [r13 + 0x30], 0
js 0x14026d2c4
mov r13, qword [rbp]
mov rdx, qword [rdi]
mov rcx, r13
call sym.sqlite3ExprNNCollSeq
mov rdx, qword [r14]
mov rcx, r13
mov r12, rax
call sym.sqlite3ExprCompareCollSeq
test rax, rax
je 0x14026d313
mov rdx, qword [rax]
mov rcx, qword [r12]
call sym.sqlite3StrICmp
test eax, eax
je 0x14026d2c4
inc ebx
add rdi, 0x20
jmp 0x14026d217
mov eax, dword [rsi + 0x38]
bt eax, 0xc
jb 0x14026d62d
bt eax, 8
jb 0x14026d371
mov r12, qword [rsi + 0x20]
test r12, r12
je 0x14026d0c4
test byte [r12 + 0x64], 4
jne 0x14026d0c4
mov di, word [r12 + 0x5e]
xor ebx, ebx
cmp byte [r12 + 0x62], 0
mov edx, dword [r12 + 0x60]
mov word [rsp + 0x6e], di
je 0x14026d382
shr eax, 0xf
xor eax, 1
and eax, 1
mov ebx, eax
jmp 0x14026d382
mov word [rsp + 0x6e], 0
xor r12d, r12d
mov edx, 1
mov bl, 1
mov cl, byte [rsp + 0x38]
mov eax, 1
mov byte [rsp + 0x57], 0
xor r13d, r13d
mov byte [rsp + 0x6d], 0
shl rax, cl
mov byte [rsp + 0x6c], 0
mov qword [rsp + 0x90], rax
movzx eax, dx
mov dword [rsp + 0x9c], eax
mov r14d, r13d
cmp dword [rsp + 0x9c], r13d
jle 0x14026d623
movzx edx, word [rsi + 0x18]
cmp edx, r13d
jle 0x14026d419
movzx eax, word [rsi + 0x3e]
cmp eax, r14d
jg 0x14026d419
mov r8, qword [rsi + 0x48]
mov r11, qword [r8 + r13*8]
mov ecx, dword [r11 + 0x14]
test word [rsp + 0x58], cx
je 0x14026d3f7
xor eax, eax
test cx, 0x180
cmovne ebx, eax
jmp 0x14026d619
and cl, 1
mov al, 1
je 0x14026d41b
mov rcx, qword [r11]
lea rax, [r13 + 1]
cmp edx, eax
jle 0x14026d419
mov r11, qword [r8 + rax*8]
inc rax
cmp qword [r11], rcx
jne 0x14026d405
xor eax, eax
jmp 0x14026d41b
mov al, 1
test r12, r12
je 0x14026d462
mov r8, qword [r12 + 0x38]
mov rcx, qword [r12 + 8]
mov dil, byte [r8 + r13]
mov r8, qword [r12 + 0x18]
movsx rcx, word [rcx + r13*2]
and edi, 1
cmp cx, word [r8 + 0x34]
je 0x14026d464
movsx r15d, cx
test bl, bl
je 0x14026d473
test r15d, r15d
js 0x14026d46c
cmp edx, r14d
jg 0x14026d473
imul rcx, rcx, 0x18
add rcx, qword [r8 + 8]
test byte [rcx + 8], 0xf
jmp 0x14026d470
xor edi, edi
or r15d, 0xffffffff
test bl, bl
je 0x14026d473
cmp r15d, 0xfffffffe
setne bl
mov rdx, qword [rsp + 0x88]
mov dword [rsp + 0x5c], r13d
mov qword [rsp + 0x60], rdx
xor edx, edx
mov dword [rsp + 0x44], edx
mov ecx, dword [rsp + 0x4c]
cmp dword [rsp + 0x44], ecx
jge 0x14026d600
test al, al
je 0x14026d600
mov rax, qword [rsp + 0x30]
mov edx, dword [rsp + 0x44]
bt rax, rdx
jb 0x14026d57a
mov rax, qword [rsp + 0x60]
mov rcx, qword [rax]
call sym.sqlite3ExprSkipCollateAndLikely
mov rcx, rax
test rax, rax
je 0x14026d57a
cmp r15d, 0xffffffff
jl 0x14026d4fb
mov al, byte [rax]
add eax, 0x59
test al, 0xfd
jne 0x14026d4ee
mov eax, dword [rsp + 0x50]
cmp dword [rcx + 0x2c], eax
jne 0x14026d4ee
movsx eax, word [rcx + 0x30]
cmp eax, r15d
je 0x14026d543
test byte [rsp + 0x54], 0xc0
setne al
jmp 0x14026d57c
movsxd rax, dword [rsp + 0x5c]
mov r8d, dword [rsp + 0x50]
shl rax, 5
add rax, qword [r12 + 0x50]
mov rdx, qword [rax + 8]
call sym.sqlite3ExprCompareSkip
test eax, eax
jne 0x14026d4ee
mov rax, qword [rsp + 0x60]
mov rcx, qword [rbp]
mov rdx, qword [rax]
call sym.sqlite3ExprNNCollSeq
mov rdx, qword [r12 + 0x40]
mov rcx, qword [rax]
mov rdx, qword [rdx + r13*8]
call sym.sqlite3StrICmp
test eax, eax
je 0x14026d549
jmp 0x14026d4ee
cmp r15d, 0xffffffff
jne 0x14026d51b
cmp word [rsp + 0x98], 0
je 0x14026d55c
lea eax, [r13 + 1]
mov word [rsi + 0x1e], ax
movsxd rax, dword [rsp + 0x44]
mov rdx, qword [rsp + 0xf8]
shl rax, 5
mov dl, byte [rdx + rax + 0x18]
test byte [rsp + 0x54], 0x40
je 0x14026d58b
jmp 0x14026d5c7
mov al, 1
inc dword [rsp + 0x44]
add qword [rsp + 0x60], 0x20
jmp 0x14026d48b
mov eax, edx
and eax, 1
cmp byte [rsp + 0x6c], 0
je 0x14026d5a3
xor dil, byte [rsp + 0x6d]
cmp dil, al
je 0x14026d5c7
jmp 0x14026d600
cmp dil, al
je 0x14026d5bb
mov rcx, qword [rsp + 0x120]
mov r10, qword [rsp + 0x90]
or qword [rcx], r10
xor edi, eax
mov byte [rsp + 0x6c], 1
mov byte [rsp + 0x6d], dil
and dl, 2
je 0x14026d5dc
movzx eax, word [rsi + 0x18]
cmp eax, r14d
jne 0x14026d600
or dword [rsi + 0x38], 0x80000
mov al, byte [rsp + 0x57]
inc r15d
mov dil, 1
mov cl, byte [rsp + 0x44]
cmove eax, edi
mov byte [rsp + 0x57], al
mov eax, 1
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14026d619
cmp dword [rsp + 0x5c], 0
je 0x14026d621
movzx eax, word [rsp + 0x6e]
mov edi, dword [rsp + 0x5c]
cmp eax, edi
mov al, 0
cmovg ebx, eax
jmp 0x14026d623
inc r13
jmp 0x14026d3b2
xor ebx, ebx
or bl, byte [rsp + 0x57]
je 0x14026d6ae
mov rbx, qword [rsi + 8]
or qword [rsp + 0x70], rbx
xor r15d, r15d
lea r12, [rbp + 0x258]
mov r13, qword [rsp + 0x70]
mov r14d, 1
not r13
mov edi, r15d
cmp dword [rsp + 0x4c], r15d
jle 0x14026d6ac
mov rax, qword [rsp + 0x30]
bt rax, r15
jb 0x14026d6a7
mov rbx, qword [rsp + 0xf8]
mov rax, r15
mov rcx, r12
shl rax, 5
mov rbx, qword [rbx + rax + 8]
mov rdx, rbx
call sym.sqlite3WhereExprUsage
test rax, rax
jne 0x14026d6a2
mov rcx, rbx
call sym.sqlite3ExprIsConstant
test eax, eax
je 0x14026d6a7
mov rax, r14
mov ecx, edi
shl rax, cl
or qword [rsp + 0x30], rax
jmp 0x14026d6a7
test r13, rax
je 0x14026d693
inc r15
jmp 0x14026d64e
mov bl, 1
inc qword [rsp + 0x38]
jmp 0x14026d135
mov al, 0xff
jmp 0x14026d70c
mov rsi, qword [rsp + 0x80]
cmp qword [rsp + 0x30], rsi
jne 0x14026d6d1
mov al, byte [rsp + 0x48]
jmp 0x14026d70c
mov al, 0xff
test bl, bl
jne 0x14026d70c
mov eax, dword [rsp + 0x4c]
mov r8d, 1
dec eax
test eax, eax
jle 0x14026d0c4
cmp eax, 0x3f
jg 0x14026d70c
mov ecx, eax
mov rdx, r8
shl rdx, cl
mov rcx, qword [rsp + 0x30]
dec rdx
not rcx
test rcx, rdx
je 0x14026d70c
dec eax
jmp 0x14026d6e3
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret