Function at 0x140196860
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 rax, [dbg.sqlite3SelectWalkFail]
lea rsi, [dbg.exprNodeIsConstant]
movq xmm0, rax
mov r9, qword [rcx]
movq xmm6, rsi
mov rsi, qword [rcx + 0x10]
punpcklqdq xmm6, xmm0
mov rax, qword [r9]
mov qword [rsp + 0x130], rcx
mov rdi, qword [r9 + 8]
mov qword [rsp + 0x138], rdx
mov dword [rsp + 0x8c], 0
mov r15, qword [r9 + 0x10]
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 8]
movzx ecx, byte [rsi + 0x10]
mov qword [rsp + 0x58], rdi
movq xmm7, rax
mov qword [rsp + 0x50], rax
imul r11, rcx, 0x68
movhps xmm7, qword [rsp + 0x48]
mov qword [rsp + 0x60], rcx
add r11, rdi
mov rdi, qword [r11 + 0x28]
mov qword [rsp + 0x68], rdi
mov rdi, rax
mov rax, qword [rax + 0x20]
mov edx, dword [rdi + 0x14]
test edx, edx
jle 0x1401971ef
movsxd rcx, edx
mov r10d, dword [r11 + 0x4c]
xor r12d, r12d
imul rcx, rcx, 0x38
add rcx, rax
nop dword [rax]
movzx ebx, word [rax + 0x12]
mov edx, ebx
and edx, 0xffffffbf
cmp dword [rax + 0x1c], r10d
mov word [rax + 0x12], dx
jne 0x140196990
mov rdi, r8
and rdi, qword [rax + 0x28]
jne 0x140196990
movzx edi, word [rax + 0x14]
and edi, 0xf7ff
je 0x140196990
and ebx, 0x80
jne 0x140196990
movzx ebx, byte [r11 + 0x44]
test bl, 0x58
je 0x140196980
mov rdi, qword [rax]
mov ebp, dword [rdi + 4]
test bpl, 3
je 0x140196990
cmp r10d, dword [rdi + 0x34]
jne 0x140196990
and ebx, 0x18
je 0x140196980
and ebp, 2
jne 0x140196990
nop
or edx, 0x40
add r12d, 1
mov word [rax + 0x12], dx
nop dword [rax + rax]
add rax, 0x38
cmp rax, rcx
jne 0x140196928
movsxd r12, r12d
imul r13, r12, 0x1c
add r13, 0x88
test r15, r15
je 0x140196ae8
mov edi, dword [r15]
test edi, edi
jle 0x1401972a4
imul rbx, qword [rsp + 0x60], 0x68
xor r14d, r14d
mov qword [rsp + 0x70], rsi
mov rax, qword [rsp + 0x58]
lea rbp, [r15 + 8]
mov qword [rsp + 0x78], r12
mov rsi, rbp
mov ebp, r14d
mov r14, r9
add rbx, rax
mov r12, qword [rsi]
mov eax, 1
movups xmmword [rsp + 0x98], xmm6
mov word [rsp + 0xb4], ax
mov dword [rsp + 0xb8], 0
test r12, r12
je 0x140196c80
lea rcx, [rsp + 0x90]
mov rdx, r12
call dbg.walkExpr
cmp word [rsp + 0xb4], 0
jne 0x140196c80
test byte [rsi + 0x10], 2
jne 0x140196acf
movzx eax, byte [r12]
cmp al, 0xa7
je 0x140196c60
cmp al, 0x71
jne 0x140196acf
mov rax, qword [r12 + 0x10]
cmp byte [rax], 0xa7
jne 0x140196acf
mov ecx, dword [rbx + 0x4c]
cmp dword [rax + 0x2c], ecx
jne 0x140196acf
movsx rax, word [rax + 0x30]
test ax, ax
mov word [r12 + 0x30], ax
js 0x140196c80
lea rcx, [rax + rax*2]
mov rax, qword [rsp + 0x68]
mov rax, qword [rax + 8]
lea rcx, [rax + rcx*8]
movzx r10d, word [rcx + 0x12]
mov rax, qword [rcx]
lea rcx, str.BINARY
test r10w, 0x200
jne 0x140196aa4
jmp 0x140196ab7
add rax, 1
cmp byte [rax], 0
jne 0x140196aa0
and r10d, 4
jne 0x140196c40
lea rcx, [rax + 1]
mov rax, qword [r12 + 8]
mov rdx, rcx
mov rcx, rax
call sym.sqlite3_stricmp
test eax, eax
je 0x140196c80
mov rsi, qword [rsp + 0x70]
mov r9, r14
mov r14d, ebp
mov r12, qword [rsp + 0x78]
cmp edi, r14d
je 0x140196ca0
xor ebx, ebx
xor ebp, ebp
xor edi, edi
mov rax, qword [rsp + 0x48]
mov rcx, qword [rax]
test rcx, rcx
je 0x140196ce0
mov rdx, r13
call sym.sqlite3DbMallocRawNN
mov r14, rax
test r14, r14
je 0x140196cf4
xor edx, edx
mov r8, r13
mov rcx, r14
call sym.memset
lea rax, [r12 + r12*2]
movups xmmword [r14 + 0x60], xmm7
xor edx, edx
lea r13, [r14 + r12*8 + 0x80]
mov dword [r14 + 0x70], ebp
xor ebp, ebp
lea r12, [r13 + rax*4]
mov qword [r14 + 8], r13
add rbx, r12
mov qword [r14 + 0x18], r12
mov qword [r14 + 0x20], rbx
mov rbx, qword [rsp + 0x50]
mov dword [r14 + 0x74], 0
mov r11d, dword [rbx + 0x14]
mov rax, qword [rbx + 0x20]
xor ebx, ebx
test r11d, r11d
jg 0x140196bd3
jmp 0x140196d38
cmp r9w, 0x40
je 0x140196d28
test r10w, 0x180
jne 0x140196d10
and r10d, 0x3c
mov byte [r8 + 4], r9b
je 0x140196bc0
mov rcx, qword [rax]
mov r10, qword [rcx + 0x18]
movzx ecx, byte [r10]
cmp cl, 0xb0
jne 0x140196ba6
movzx ecx, byte [r10 + 2]
cmp cl, 0xb1
je 0x1401970f8
cmp cl, 0x8a
je 0x1401970b0
nop dword [rax + rax]
add ebx, 1
add edx, 1
add rax, 0x38
cmp edx, r11d
je 0x140196d38
movzx ecx, word [rax + 0x12]
test cl, 0x40
je 0x140196bc3
mov r9d, dword [rax + 0x20]
movsxd r8, ebx
movzx r10d, word [rax + 0x14]
lea r8, [r8 + r8*2]
lea r8, [r13 + r8*4]
mov dword [r8 + 8], edx
mov dword [r8], r9d
mov r9d, r10d
and r9w, 0x3fff
cmp r9w, 1
jne 0x140196b70
test cx, cx
js 0x140197000
cmp ebx, 0x1f
mov r9d, dword [r14 + 0x74]
jg 0x140196c2c
mov r10d, 1
mov ecx, ebx
shl r10d, cl
or r9d, r10d
mov dword [r14 + 0x74], r9d
mov byte [r8 + 4], 2
jmp 0x140196bc0
add rax, 1
cmp byte [rax], 0
je 0x140196ab3
add rax, 1
cmp byte [rax], 0
jne 0x140196c40
jmp 0x140196ab3
imul rax, qword [rsp + 0x60], 0x68
mov rcx, qword [rsp + 0x58]
mov eax, dword [rcx + rax + 0x4c]
cmp dword [r12 + 0x2c], eax
jne 0x140196acf
nop word [rax + rax]
add ebp, 1
add rsi, 0x20
cmp edi, ebp
jne 0x1401969e3
mov rsi, qword [rsp + 0x70]
mov r9, r14
mov r12, qword [rsp + 0x78]
nop dword [rax]
movzx ebp, word [r9 + 0x3c]
movsxd rbx, edi
shl rbx, 3
add r13, rbx
test bpl, 0x80
je 0x140197171
mov rax, qword [rsp + 0x48]
test bp, 0x200
setne bpl
movzx ebp, bpl
add ebp, 2
mov rcx, qword [rax]
test rcx, rcx
jne 0x140196aff
nop word [rax + rax]
mov rcx, r13
call sym.sqlite3Malloc
mov r14, rax
test r14, r14
jne 0x140196b13
mov rcx, qword [rsp + 0x48]
lea rdx, [0x14033729c]
call dbg.sqlite3ErrorMsg
mov edi, 7
jmp 0x140197081
cmp r9w, 0x100
setne cl
add ecx, 0x47
mov byte [r8 + 4], cl
jmp 0x140196bc0
movzx ecx, byte [rax + 0x17]
mov byte [r8 + 4], cl
jmp 0x140196bc0
test edi, edi
mov dword [r14], ebx
je 0x140196dd4
lea r13, [rsp + 0x90]
movsxd rbx, edi
mov qword [rsp + 0x58], rsi
xor edi, edi
shl rbx, 5
mov rsi, r13
mov r13, r12
add rbx, r15
mov r12, rbx
nop dword [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 0x140196dc3
mov rdx, rbx
mov rcx, rsi
call dbg.walkExpr
cmp word [rsp + 0xb4], 0
jne 0x140196dc3
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 r15, r12
jne 0x140196d68
mov rsi, qword [rsp + 0x58]
mov ebx, dword [r14]
mov rax, qword [rsp + 0x48]
mov dword [r14 + 0x10], edi
xor r12d, r12d
xor edi, edi
and byte [rsi + 0x1c], 0xfe
mov word [rsi + 0x12], di
mov r8d, ebx
mov rdx, rsi
mov dword [rsi + 0x38], 0x400
mov rcx, qword [rax]
mov word [rsi + 0x3c], r12w
call dbg.whereLoopResize
test eax, eax
jne 0x140197180
mov rdx, qword [rsp + 0x138]
movzx ebp, bp
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 r10d, dword [rsp + 0x8c]
mov edi, eax
test r10d, r10d
jne 0x140197100
test edi, edi
jne 0x140197012
mov r15, qword [rsp + 0x138]
mov r11d, dword [rsp + 0x90]
not r15
mov rax, r15
and rax, qword [rsi]
mov qword [rsp + 0x78], rax
jne 0x14019715a
test r11d, r11d
je 0x140197012
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 0x140197010
test ebx, ebx
jle 0x1401971fd
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 + 0x70], r11d
mov rsi, qword [rsp + 0x78]
shl r13, 2
mov dword [rsp + 0x78], edi
mov rdi, r15
mov rbx, qword [rsp + 0x138]
mov dword [rsp + 0x68], r11d
mov r8, qword [rax + 0x20]
nop dword [rax + rax]
lea rax, [r10 + 8]
mov r15, 0xffffffffffffffff
lea rcx, [rax + r13]
nop word [rax + rax]
movsxd rdx, dword [rax]
imul rdx, rdx, 0x38
mov r11, qword [r8 + rdx + 0x28]
and r11, rdi
cmp r11, r15
jae 0x140196f6b
cmp r9, r11
cmovb r15, r11
add rax, 0xc
cmp rax, rcx
jne 0x140196f50
cmp r15, 0xffffffffffffffff
je 0x14019728e
cmp rsi, r15
je 0x140196ff6
cmp qword [rsp + 0x58], r15
je 0x140196ff6
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 0x140196fe5
mov r9d, dword [rsp + 0x90]
mov ecx, 1
mov dword [rsp + 0x70], 1
test r9d, r9d
cmovne ecx, dword [rsp + 0x68]
mov dword [rsp + 0x68], ecx
test eax, eax
jne 0x140197010
mov rax, qword [rsp + 0x50]
mov r10, qword [r14 + 8]
mov r8, qword [rax + 0x20]
mov r9, r15
jmp 0x140196f38
mov byte [r8 + 4], 2
jmp 0x140196bc0
mov edi, eax
mov ecx, dword [r14 + 0x38]
test ecx, ecx
jne 0x140197140
mov edx, dword [r14]
xor ebx, ebx
mov rax, qword [rsp + 0x48]
test edx, edx
mov rbp, qword [rax]
jle 0x140197075
nop
mov rsi, qword [r14 + rbx*8 + 0x80]
test rsi, rsi
je 0x140197060
test word [rsi + 0x14], 0x9000
jne 0x14019704c
mov eax, dword [rsi + 0x20]
test eax, eax
je 0x140197054
mov rcx, rsi
call dbg.vdbeMemClear
mov rcx, qword [rsi + 0x18]
mov rdx, rsi
call sym.sqlite3DbFreeNN
mov qword [r14 + rbx*8 + 0x80], 0
add rbx, 1
cmp dword [r14], ebx
jg 0x140197030
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 rcx, qword [r10 + 0x20]
mov rcx, qword [rcx + 0x20]
mov ecx, dword [rcx]
cmp ecx, 1
jle 0x140196bc0
cmp ebx, 0xf
jg 0x1401970d6
mov r10d, 1
mov ecx, ebx
shl r10d, cl
or ebp, r10d
cmp r9w, 0x10
je 0x140197150
cmp r9w, 4
jne 0x140196bc0
mov byte [r8 + 4], 0x20
jmp 0x140196bc0
mov rcx, qword [r10 + 0x20]
mov ecx, dword [rcx]
jmp 0x1401970ba
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 0x140196e64
mov rcx, qword [r14 + 0x30]
call sym.sqlite3_free
jmp 0x14019701e
mov byte [r8 + 4], 8
jmp 0x140196bc0
test r11d, r11d
jne 0x140196e99
mov qword [rsp + 0x58], 0
jmp 0x140196eed
shr bp, 6
and ebp, 1
jmp 0x140196aee
mov esi, dword [r14]
xor ebx, ebx
mov rax, qword [rsp + 0x48]
test esi, esi
mov rdi, qword [rax]
jle 0x1401971df
nop dword [rax]
mov rsi, qword [r14 + rbx*8 + 0x80]
test rsi, rsi
je 0x1401971ca
test word [rsi + 0x14], 0x9000
jne 0x1401971b6
mov r11d, dword [rsi + 0x20]
test r11d, r11d
je 0x1401971be
mov rcx, rsi
call dbg.vdbeMemClear
mov rcx, qword [rsi + 0x18]
mov rdx, rsi
call sym.sqlite3DbFreeNN
mov qword [r14 + rbx*8 + 0x80], 0
add rbx, 1
cmp dword [r14], ebx
jg 0x140197198
mov rdx, r14
mov rcx, rdi
call sym.sqlite3DbFreeNN
jmp 0x140196d05
mov r13d, 0x88
xor r12d, r12d
jmp 0x1401969a7
mov ebx, r11d
test r11d, r11d
jne 0x14019724a
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 r8d, dword [rsp + 0x90]
mov edi, eax
test r8d, r8d
je 0x140197012
or ebx, edi
jne 0x140197012
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 0x140197012
mov r11d, dword [rsp + 0x68]
mov edi, dword [rsp + 0x78]
mov ebx, r11d
mov r11d, dword [rsp + 0x70]
jmp 0x140197200
xor r14d, r14d
jmp 0x140196adf