Function at 0x140226e80
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, 0x48
lea r15, [0x140344560]
mov rbx, qword [rcx + 0x60]
mov dword [rsp + 0xa0], r8d
mov rbp, rcx
mov r12, rdx
test rbx, rbx
je 0x14022705d
nop word [rax + rax]
mov esi, dword [rbx + 8]
test esi, esi
js 0x140227050
mov eax, dword [rbp + 0x40]
test eax, eax
je 0x140226eda
sub eax, 1
cmp eax, esi
jne 0x140227050
mov esi, 0xffffffff
mov rdi, qword [rbx]
test r12, r12
je 0x140227040
test rdi, rdi
je 0x140227040
mov r14d, dword [r12 + 4]
mov r11d, dword [rdi + 4]
mov r13d, r14d
mov dword [rsp + 0x38], r11d
mov r8d, r14d
or r13d, r11d
test r13d, 0x800
je 0x140227070
and r11d, r14d
and r11d, 0x800
je 0x140227050
mov eax, dword [rdi + 8]
cmp dword [r12 + 8], eax
jne 0x140227050
mov rcx, r12
call sym.sqlite3ExprAffinity
cmp al, 0x41
ja 0x1402271c0
cmp byte [rbx + 0x15], 0x41
jne 0x140227050
cmp byte [rbx + 0x14], 0
mov r13, qword [rbp + 0x10]
mov r8d, dword [rbx + 0xc]
je 0x1402271e0
mov eax, dword [rsp + 0xa0]
mov esi, dword [r13 + 0x90]
mov edx, 0x14
mov rcx, r13
mov dword [rsp + 0x20], eax
lea r9d, [rsi + 3]
call sym.sqlite3VdbeAddOp3
mov r9d, dword [rbx + 0x10]
mov r8d, dword [rbx + 0xc]
mov rcx, r13
mov eax, dword [rsp + 0xa0]
mov edx, 0x5e
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
movsxd rax, dword [r13 + 0x90]
cmp eax, dword [r13 + 0x94]
jge 0x1402273a0
lea edx, [rax + 1]
mov dword [r13 + 0x90], edx
lea rdx, [rax + rax*2]
mov rax, qword [r13 + 0x88]
lea rax, [rax + rdx*8]
mov qword [rax], 9
mov qword [rax + 8], 0
mov qword [rax + 0x10], 0
cmp qword [rbp + 0x10], 0
mov rbx, qword [rbp + 0x60]
mov qword [rbp + 0x60], 0
je 0x14022700a
mov r8d, dword [rsp + 0xa0]
mov rdx, r12
mov rcx, rbp
call sym.sqlite3ExprCode.part.0
mov rcx, qword [r13]
mov qword [rbp + 0x60], rbx
lea rax, [0x1402ba140]
mov edx, dword [r13 + 0x90]
cmp byte [rcx + 0x67], 0
je 0x140227340
mov dword [rax + 8], edx
mov eax, dword [rsp + 0xa0]
jmp 0x140227203
cmp rdi, r12
je 0x140226f31
nop dword [rax]
mov rbx, qword [rbx + 0x18]
test rbx, rbx
jne 0x140226eb8
mov eax, 0xffffffff
jmp 0x140227203
movzx eax, byte [r12]
movzx edx, byte [rdi]
cmp al, 0x47
je 0x140227084
cmp al, dl
je 0x140227238
cmp al, 0x71
je 0x1402272e0
cmp dl, 0x71
je 0x140227318
cmp byte [r12], 0xa9
jne 0x140227050
cmp byte [rdi], 0xa7
jne 0x140227050
mov eax, dword [rdi + 0x2c]
test eax, eax
jns 0x140227050
cmp esi, dword [r12 + 0x2c]
jne 0x140227050
cmp qword [r12 + 8], 0
je 0x1402272d0
mov eax, dword [rdi + 4]
mov r8d, dword [r12 + 4]
mov dword [rsp + 0x38], eax
mov r11d, eax
mov r14d, r8d
nop dword [rax]
xor r11d, r14d
and r11d, 0x404
jne 0x140227050
test r13d, 0x10000
jne 0x140226f31
test r13d, 0x1000
jne 0x140227050
test r13b, 0x20
jne 0x14022711b
mov rdx, qword [r12 + 0x10]
mov r8, qword [rdi + 0x10]
xor ecx, ecx
mov r9d, esi
call sym.sqlite3ExprCompare
test eax, eax
jne 0x140227050
mov rdx, qword [r12 + 0x18]
mov r8, qword [rdi + 0x18]
xor ecx, ecx
mov r9d, esi
call sym.sqlite3ExprCompare
test eax, eax
jne 0x140227050
mov rdx, qword [rdi + 0x20]
mov rcx, qword [r12 + 0x20]
mov r8d, esi
call sym.sqlite3ExprListCompare
test eax, eax
jne 0x140227050
movzx eax, byte [r12]
cmp al, 0x75
je 0x140226f31
cmp al, 0xaa
je 0x140226f31
and r13d, 0x4000
jne 0x140226f31
movzx ecx, word [rdi + 0x30]
cmp word [r12 + 0x30], cx
jne 0x140227050
movzx ecx, byte [rdi + 2]
cmp byte [r12 + 2], cl
je 0x140227194
cmp al, 0xaf
je 0x140227050
cmp al, 0x31
je 0x140226f31
mov eax, dword [r12 + 0x2c]
cmp dword [rdi + 0x2c], eax
je 0x140226f31
cmp esi, eax
je 0x140226f31
jmp 0x140227050
cmp al, 0x42
jne 0x140227218
cmp byte [rbx + 0x15], 0x42
jne 0x140227050
cmp byte [rbx + 0x14], 0
mov r13, qword [rbp + 0x10]
mov r8d, dword [rbx + 0xc]
jne 0x140226f5d
mov eax, dword [rsp + 0xa0]
mov r9d, dword [rbx + 0x10]
mov edx, 0x5e
mov rcx, r13
mov dword [rsp + 0x20], eax
call sym.sqlite3VdbeAddOp3
mov eax, dword [rsp + 0xa0]
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp byte [rbx + 0x15], 0x43
je 0x140226f4b
mov rbx, qword [rbx + 0x18]
test rbx, rbx
jne 0x140226eb8
jmp 0x14022705d
mov r9, qword [r12 + 8]
test r9, r9
je 0x1402270d0
mov edx, eax
and edx, 0xfffffffb
cmp dl, 0xa8
jne 0x140227364
mov r10, qword [rdi + 8]
xor ecx, ecx
jmp 0x140227273
movzx edx, byte [r15 + rdx]
cmp byte [r15 + rax], dl
jne 0x140227050
add rcx, 1
movzx eax, byte [r9 + rcx]
movzx edx, byte [r10 + rcx]
cmp eax, edx
jne 0x140227260
test eax, eax
jne 0x14022726f
mov eax, dword [rsp + 0x38]
and r8d, 0x1000000
setne dl
shr eax, 0x18
and eax, 1
cmp dl, al
jne 0x140227050
test r8d, r8d
je 0x1402270d0
mov rdx, qword [r12 + 0x40]
mov r8, qword [rdi + 0x40]
xor ecx, ecx
mov r9d, 1
call sym.sqlite3WindowCompare
test eax, eax
jne 0x140227050
nop dword [rax + rax]
mov r14d, dword [r12 + 4]
mov r11d, dword [rdi + 4]
jmp 0x1402270d0
mov r10, qword [r12 + 0x10]
test r10, r10
je 0x140227392
xor ecx, ecx
mov r9d, esi
mov r8, rdi
mov rdx, r10
call sym.sqlite3ExprCompare.part.0
cmp eax, 1
jle 0x140227050
movzx edx, byte [rdi]
cmp dl, 0x71
jne 0x140227095
nop dword [rax + rax]
mov r8, qword [rdi + 0x10]
test r8, r8
je 0x140227095
xor ecx, ecx
mov r9d, esi
mov rdx, r12
call sym.sqlite3ExprCompare.part.0
cmp eax, 1
jg 0x140227095
jmp 0x140227050
add esi, 2
mov rax, qword [r13 + 0x88]
movsxd rsi, esi
lea rcx, [rsi + rsi*2]
lea rax, [rax + rcx*8]
mov dword [rax + 8], edx
mov eax, dword [rsp + 0xa0]
jmp 0x140227203
cmp al, 0x79
je 0x140226f31
mov rdx, qword [rdi + 8]
cmp al, 0x71
jne 0x1402273c0
test rdx, rdx
je 0x140227050
mov rcx, r9
call sym.sqlite3_stricmp.part.0
test eax, eax
je 0x1402270d0
jmp 0x140227050
cmp dl, 0x71
jne 0x140227050
jmp 0x140227318
xor r9d, r9d
xor r8d, r8d
mov edx, 9
mov rcx, r13
mov dword [rsp + 0x20], 0
call sym.growOp3
jmp 0x140226fe4
add eax, 0x59
test al, 0xfd
je 0x1402270ca
test rdx, rdx
je 0x1402270ca
mov rcx, r9
mov dword [rsp + 0x3c], r14d
call sym.strcmp
test eax, eax
jne 0x140227050
mov r8d, dword [rsp + 0x3c]
mov r11d, dword [rsp + 0x38]
mov r14d, r8d
jmp 0x1402270d0