Function at 0x665b3230
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
mov ebp, ecx
push esi
push ebx
mov ebx, eax
mov esi, edx
sub esp, 0x9c
movzx eax, word [esp + 0xb0]
mov edi, dword [esp + 0xb4]
test di, di
mov word [esp + 0x6c], ax
mov eax, dword [ebx]
mov eax, dword [eax]
mov dword [esp + 0x5c], eax
je 0x665b326b
test byte [eax + 0x3c], 0x80
jne 0x665b39f4
mov eax, dword [esi]
cmp ax, 0x3f
mov dword [esp + 0x7c], eax
ja 0x665b39f4
movzx eax, ax
xor edx, edx
mov ecx, eax
mov dword [esp + 0x68], eax
xor eax, eax
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x48], eax
mov ecx, edx
mov dword [esp + 0x4c], edx
or ecx, eax
je 0x665b3a27
movzx edi, di
mov dword [esp + 0x1c], esi
mov esi, dword [esp + 0x68]
mov dword [esp + 0x64], edi
movzx edi, word [esp + 0x6c]
mov dword [esp + 0x88], ebp
mov dword [esp + 0x44], ebx
mov dword [esp + 0x54], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x60], 0
and di, 0x300
mov dword [esp + 0x78], 0
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov word [esp + 0x50], di
mov edi, dword [esp + 0x54]
cmp dword [esp + 0x64], edi
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x30], eax
jle 0x665b3334
mov eax, dword [esp + 0x88]
mov eax, dword [eax + 0x18]
mov eax, dword [eax + edi*4]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x24]
test dh, 4
jne 0x665b3a01
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x44]
movzx eax, byte [eax + 0x10]
lea eax, [eax + eax*8]
shl eax, 3
add eax, dword [edi + 4]
test esi, esi
mov eax, dword [eax + 0x34]
mov dword [esp + 0x24], eax
je 0x665b34e5
lea eax, [edi + 0x148]
mov dword [esp + 0x20], esi
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
xor ebp, ebp
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x70]
not eax
mov dword [esp + 0x2c], eax
lea esi, [esi]
mov ecx, ebp
mov eax, esi
mov edx, edi
shrd eax, edi, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
and eax, 1
test eax, eax
jne 0x665b34c5
lea eax, [ebp + ebp*2]
mov edx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov ebx, dword [eax + edx*8]
test ebx, ebx
je 0x665b33e0
mov eax, dword [ebx + 4]
test ah, 0x10
je 0x665b33f5
test eax, 0x40000
je 0x665b33f0
mov eax, dword [ebx + 0x14]
mov eax, dword [eax + 4]
mov ebx, dword [eax]
test ebx, ebx
jne 0x665b33c4
nop
movzx eax, byte [pe_dos_header]
ud2
mov ebx, dword [ebx + 0xc]
jmp 0x665b33c0
cmp byte [ebx], 0x9a
jne 0x665b34c5
mov eax, dword [esp + 0x24]
cmp eax, dword [ebx + 0x1c]
jne 0x665b34c5
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x2c]
movsx ecx, word [ebx + 0x20]
mov dword [esp + 0xc], 0
mov dword [esp + 8], 0x82
not eax
mov dword [esp], edx
mov edx, dword [esp + 0x24]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x28]
call sym._findTerm
test eax, eax
je 0x665b34c5
test byte [eax + 0x12], 2
je 0x665b34a4
cmp word [ebx + 0x20], 0
mov dword [esp + 0x34], eax
js 0x665b34a4
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov edx, dword [eax + edx*8]
mov eax, dword [esp + 0x44]
mov eax, dword [eax]
call sym._sqlite3ExprCollSeq
test eax, eax
mov ecx, dword [esp + 0x34]
je 0x665b3a43
mov ebx, dword [eax]
mov eax, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [eax]
call sym._sqlite3ExprCollSeq
test eax, eax
je 0x665b3a37
mov eax, dword [eax]
mov dword [esp], ebx
mov dword [esp + 4], eax
call sym.libsqlite3_0.dll_sqlite3_stricmp
test eax, eax
jne 0x665b34c5
mov ecx, ebp
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov ecx, esi
mov esi, edi
or ecx, eax
or esi, edx
mov eax, esi
mov esi, ecx
mov edi, eax
add ebp, 1
cmp dword [esp + 0x20], ebp
jne 0x665b3390
mov eax, dword [esp + 0x30]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0x20]
mov dword [esp + 0x14], edi
mov edx, dword [eax + 0x24]
test dh, 0x10
jne 0x665b3855
and dh, 1
jne 0x665b39c7
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x1c]
test eax, eax
mov dword [esp + 0x38], eax
je 0x665b39f4
test byte [eax + 0x34], 4
jne 0x665b39f4
cmp byte [eax + 0x32], 0
movzx edi, word [eax + 0x2e]
movzx eax, word [eax + 0x30]
setne byte [esp + 0x34]
mov word [esp + 0x6e], di
test eax, eax
mov dword [esp + 0x3c], eax
je 0x665b36f4
movzx ecx, byte [esp + 0x54]
xor eax, eax
xor edx, edx
mov dword [esp + 0x20], 0
mov byte [esp + 0x2c], 0
mov ebp, esi
mov byte [esp + 0x5b], 0
mov byte [esp + 0x53], 0
test cl, 0x20
sete al
setne dl
shl edx, cl
shl eax, cl
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], edx
jmp 0x665b35c0
cmp word [edi + 0x2a], 0
jne 0x665b35d0
mov edx, dword [edi + 0x30]
mov edx, dword [edx + esi*4]
movzx edx, word [edx + 0x12]
test dl, 0x82
je 0x665b35d0
movzx esi, byte [esp + 0x34]
and edx, 0x80
mov eax, 0
cmovne esi, eax
add dword [esp + 0x20], 1
mov eax, esi
mov byte [esp + 0x34], al
mov eax, dword [esp + 0x20]
cmp eax, dword [esp + 0x3c]
jge 0x665b3843
mov esi, esi
lea edi, [edi]
mov edi, dword [esp + 0x30]
mov esi, dword [esp + 0x20]
movzx eax, word [edi + 0x18]
cmp eax, esi
jg 0x665b3575
mov esi, dword [esp + 0x38]
test esi, esi
je 0x665b3973
mov edx, dword [esi + 4]
mov ebx, dword [esp + 0x20]
movsx edi, word [edx + ebx*2]
mov edx, dword [esi + 0x1c]
movzx edx, byte [edx + ebx]
mov dword [esp + 0x28], edi
mov byte [esp + 0x52], dl
mov edx, dword [esi + 0xc]
movsx ecx, word [edx + 0x20]
cmp edi, ecx
je 0x665b3978
test edi, edi
js 0x665b362b
test byte [esp + 0x34], 1
je 0x665b362b
cmp eax, ebx
mov byte [esp + 0x34], 1
jg 0x665b362b
mov esi, dword [edx + 4]
lea eax, [edi + edi*2]
lea eax, [esi + eax*8]
cmp byte [eax + 0x14], 0
setne byte [esp + 0x34]
test ebp, ebp
je 0x665b36cc
mov eax, dword [esp + 0x20]
xor ecx, ecx
shl eax, 2
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
cmovne eax, edx
and eax, 1
test eax, eax
jne 0x665b3775
mov eax, dword [esp + 0x1c]
lea esi, [ecx + ecx*2]
shl esi, 3
mov edi, dword [eax + 4]
add edi, esi
mov edx, dword [edi]
test edx, edx
je 0x665b33e0
mov ebx, dword [edx + 4]
mov eax, edx
test bh, 0x10
jne 0x665b369b
jmp 0x665b36b0
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 4]
mov eax, dword [eax]
test eax, eax
je 0x665b33e0
mov ebx, dword [eax + 4]
test bh, 0x10
je 0x665b36b0
and ebx, 0x40000
jne 0x665b3683
mov eax, dword [eax + 0xc]
jmp 0x665b368b
cmp byte [eax], 0x9a
je 0x665b3780
add ecx, 1
cmp word [esp + 0x50], 0
je 0x665b36cc
cmp ebp, ecx
jg 0x665b3640
mov edx, dword [esp + 0x20]
mov esi, ebp
test edx, edx
je 0x665b384a
movzx eax, word [esp + 0x6e]
cmp eax, dword [esp + 0x20]
jg 0x665b384a
cmp byte [esp + 0x2c], 0
jne 0x665b3855
cmp byte [esp + 0x34], 0
jne 0x665b3855
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
mov ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x4c]
mov edx, ebx
mov eax, esi
xor edx, edi
xor eax, ecx
or edx, eax
je 0x665b3a27
mov ecx, dword [esp + 0x68]
sub ecx, 1
test ecx, ecx
jg 0x665b3739
jmp 0x665b39f4
sub ecx, 1
je 0x665b39f4
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
setne dl
shl eax, cl
shl edx, cl
add eax, 0xffffffff
adc edx, 0xffffffff
mov ebx, esi
mov esi, edi
and ebx, eax
and esi, edx
xor edx, esi
xor eax, ebx
or edx, eax
jne 0x665b3730
add esp, 0x9c
mov eax, ecx
pop ebx
pop esi
pop edi
pop ebp
ret
add ecx, 1
jmp 0x665b36c4
mov ebx, dword [esp + 0x24]
cmp ebx, dword [eax + 0x1c]
jne 0x665b36b9
movsx eax, word [eax + 0x20]
cmp eax, dword [esp + 0x28]
jne 0x665b36b9
mov eax, dword [esp + 0x28]
test eax, eax
js 0x665b3abe
mov eax, dword [esp + 0x44]
mov dword [esp + 0x8c], ecx
mov eax, dword [eax]
call sym._sqlite3ExprCollSeq
test eax, eax
mov ecx, dword [esp + 0x8c]
je 0x665b39e8
mov edi, dword [esp + 0x38]
mov dword [esp + 0x8c], ecx
mov edx, dword [edi + 0x20]
mov edi, dword [esp + 0x40]
mov edx, dword [edx + edi]
mov dword [esp + 4], edx
mov eax, dword [eax]
mov dword [esp], eax
call sym.libsqlite3_0.dll_sqlite3_stricmp
test eax, eax
mov ecx, dword [esp + 0x8c]
jne 0x665b36b9
test word [esp + 0x6c], 0x100
je 0x665b3a4f
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
add dword [esp + 0x20], 1
shl eax, cl
shl edx, cl
mov ecx, esi
mov esi, edi
or ecx, eax
mov eax, dword [esp + 0x20]
or esi, edx
cmp eax, dword [esp + 0x3c]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
jl 0x665b35c0
mov esi, ebp
jmp 0x665b36e9
cmp byte [esp + 0x2c], 0
je 0x665b36ff
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x78]
or eax, dword [edx + 0xc]
mov edx, dword [edx + 8]
or dword [esp + 0x60], edx
test esi, esi
mov edi, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x78], edi
mov eax, dword [esp + 0x60]
je 0x665b3928
mov edi, dword [esp + 0x44]
not eax
xor ebx, ebx
mov dword [esp + 0x28], eax
lea ebp, [edi + 0x44]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x20], ebp
mov ebp, esi
mov esi, dword [esp + 0x10]
jmp 0x665b38a3
add ebx, 1
cmp ebp, ebx
je 0x665b391e
mov ecx, ebx
mov edx, edi
mov eax, esi
shrd eax, edx, cl
shr edx, cl
test cl, 0x20
je 0x665b38b5
mov eax, edx
and eax, 1
test eax, eax
jne 0x665b389c
mov edx, dword [esp + 0x1c]
lea eax, [ebx + ebx*2]
shl eax, 3
add eax, dword [edx + 4]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
mov edx, eax
mov eax, dword [esp + 0x20]
call sym._exprTableUsage
mov ecx, edx
or ecx, eax
je 0x665b39aa
and eax, dword [esp + 0x28]
mov ecx, eax
mov eax, dword [esp + 0x24]
not eax
and eax, edx
or eax, ecx
jne 0x665b389c
mov ecx, ebx
xor eax, eax
xor edx, edx
test cl, 0x20
sete al
setne dl
add ebx, 1
shl eax, cl
shl edx, cl
mov ecx, esi
mov esi, edi
or ecx, eax
or esi, edx
cmp ebp, ebx
mov eax, esi
mov esi, ecx
mov edi, eax
jne 0x665b38a3
mov dword [esp + 0x10], esi
mov dword [esp + 0x14], edi
mov esi, ebp
mov ebp, dword [esp + 0x4c]
mov edx, dword [esp + 0x14]
add dword [esp + 0x54], 1
mov edi, dword [esp + 0x48]
mov eax, dword [esp + 0x10]
cmp edx, ebp
jb 0x665b3989
jbe 0x665b3985
mov ecx, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
mov edi, dword [esp + 0x4c]
mov edx, ebx
mov eax, ecx
xor edx, edi
xor eax, esi
or edx, eax
je 0x665b3a27
add esp, 0x9c
mov eax, 0xffffffff
pop ebx
pop esi
pop edi
pop ebp
ret
mov byte [esp + 0x52], 0
mov dword [esp + 0x28], 0xffffffff
jmp 0x665b362b
cmp eax, edi
jae 0x665b3943
mov edi, dword [esp + 0x54]
cmp dword [esp + 0x64], edi
jl 0x665b3a07
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
or dword [esp + 0x70], edx
or dword [esp + 0x74], eax
jmp 0x665b330e
mov eax, dword [esp + 0x10]
xor ecx, ecx
mov edx, 1
call sym._exprIsConst
test eax, eax
je 0x665b389c
jmp 0x665b38f6
xor ebp, ebp
mov dword [esp + 0x3c], 1
mov dword [esp + 0x38], 0
mov word [esp + 0x6e], bp
mov byte [esp + 0x34], 1
jmp 0x665b3536
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 8]
jmp 0x665b37c8
add esp, 0x9c
xor eax, eax
pop ebx
pop esi
pop edi
pop ebp
ret
cmp byte [eax + 0x1d], 0
jne 0x665b3a27
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x4c]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov edx, ebx
mov eax, ecx
xor edx, edi
xor eax, esi
or edx, eax
jne 0x665b3963
movzx eax, byte [esp + 0x7c]
add esp, 0x9c
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 8]
jmp 0x665b3492
mov eax, dword [esp + 0x5c]
mov eax, dword [eax + 8]
jmp 0x665b347b
mov eax, dword [esp + 0x1c]
add esi, dword [eax + 4]
mov edi, esi
cmp byte [esp + 0x53], 0
jne 0x665b3aaa
movzx eax, byte [esp + 0x52]
mov byte [esp + 0x53], 1
xor al, byte [edi + 0xc]
mov byte [esp + 0x5b], al
je 0x665b3a8c
mov esi, dword [esp + 0xbc]
mov eax, dword [esp + 0x80]
mov edx, dword [esp + 0x84]
or dword [esi], eax
or dword [esi + 4], edx
mov eax, dword [esp + 0x28]
movzx edi, byte [esp + 0x2c]
test eax, eax
mov eax, 1
cmovs edi, eax
mov eax, edi
mov byte [esp + 0x2c], al
jmp 0x665b3807
movzx eax, byte [esp + 0x52]
xor al, byte [esp + 0x5b]
cmp al, byte [edi + 0xc]
jne 0x665b36cc
jmp 0x665b3a8c
test word [esp + 0x6c], 0x100
je 0x665b3a58
mov byte [esp + 0x2c], 1
jmp 0x665b3807