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

Disassembly:
push ebp
push edi
mov edi, eax
push esi
push ebx
sub esp, 0x9c
mov dword [esp + 0x30], eax
mov eax, dword [eax + 0x28]
mov dword [esp + 0x34], edx
mov dword [esp + 0x40], eax
add eax, 1
mov dword [edi + 0x28], eax
mov eax, dword [edi + 8]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], eax
test eax, eax
je 0x66605de0
mov eax, dword [esp + 0x54]
and eax, 4
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xb0]
test eax, eax
je 0x66605e86
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 4]
test esi, 0x800
je 0x66605b20
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 0x1c]
mov ebx, dword [edi]
test ebx, ebx
jle 0x66606230
add edi, 4
xor ebp, ebp
jmp 0x666058ce
add ebp, 1
add edi, 0x14
cmp ebp, ebx
je 0x66605ed6
mov eax, dword [edi]
call fcn.66583070
test eax, eax
je 0x666058c0
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x24]
test edx, edx
jne 0x66605b2f
and esi, 0x20
jne 0x66605b3a
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
mov edi, dword [eax + 0x34]
test edi, edi
jne 0x66605b3a
test byte [eax + 4], 9
jne 0x66605b3a
mov esi, dword [eax + 0x3c]
test esi, esi
jne 0x66605b3a
mov ebx, dword [eax + 0x24]
test ebx, ebx
jne 0x66605b3a
mov edx, dword [eax + 0x20]
cmp dword [edx], 1
jne 0x66605b3a
mov ecx, dword [edx + 0x1c]
test ecx, ecx
jne 0x66605b3a
mov edi, dword [edx + 0x18]
mov ebp, dword [edi + 0x38]
mov dword [esp + 0x38], edi
test ebp, ebp
jne 0x66605b3a
mov eax, dword [eax + 0x1c]
mov ebx, dword [eax]
mov dword [esp + 0x68], eax
mov dword [esp + 0x28], ebx
test ebx, ebx
jle 0x66605977
add eax, 4
xor edx, edx
mov ecx, dword [eax]
cmp byte [ecx], 0xa6
jne 0x66605b3a
add edx, 1
add eax, 0x14
cmp edx, ebx
jne 0x66605962
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x30]
mov ecx, dword [ebx + 0x48]
mov eax, dword [edi]
mov ebx, dword [edi + 0x74]
test ecx, ecx
je 0x66606b64
mov edx, dword [eax + 0x10]
xor ebp, ebp
cmp ecx, dword [edx + 0xc]
je 0x666068a8
lea esi, [esi]
add ebp, 1
mov eax, ebp
shl eax, 4
cmp ecx, dword [edx + eax + 0xc]
jne 0x666059a0
mov eax, 1
mov ecx, ebp
shl eax, cl
test ebx, ebx
cmove ebx, dword [esp + 0x30]
mov ecx, dword [ebx + 0x54]
test ecx, eax
jne 0x66606679
or eax, ecx
mov dword [ebx + 0x54], eax
cmp ebp, 1
je 0x666068b2
mov eax, dword [esp + 0x38]
mov ebx, dword [eax]
mov ecx, dword [eax + 0x1c]
mov eax, ebp
shl eax, 4
mov eax, dword [edx + eax + 4]
cmp byte [eax + 9], 0
je 0x66605a05
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x30]
mov edx, ebp
mov dword [esp], 0
call fcn.665995a0
cmp dword [esp + 0x28], 1
je 0x666066c9
mov edi, dword [esp + 0x28]
test edi, edi
jle 0x66606319
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
movsx edx, word [eax + 0x20]
mov eax, dword [esp + 0x68]
xor ebx, ebx
mov edi, dword [esp + 0x34]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x2c], ebx
lea esi, [eax + 0x18]
jmp 0x66605aaf
mov ecx, dword [esp + 0x38]
lea edx, [edx + edx*4]
shl edx, 2
add edx, dword [ecx + 4]
movzx ebp, byte [edx + 0xd]
call fcn.665833a0
cmp al, 0x40
jle 0x66605af8
mov ecx, ebp
cmp cl, 0x40
jle 0x66606300
cmp cl, 0x42
setg dl
cmp al, 0x42
jg 0x666062f0
test dl, dl
jne 0x666062f0
mov eax, 1
mov edx, 1
add dword [esp + 0x2c], 1
mov ecx, dword [esp + 0x28]
mov ebx, dword [esp + 0x2c]
cmp ebx, ecx
jge 0x6660630d
test dl, dl
je 0x6660630d
mov eax, dword [esi]
add esi, 0x14
movsx edx, word [eax + 0x20]
mov eax, dword [edi + 0xc]
movzx ecx, byte [eax]
mov ebp, ecx
cmp cl, 0xaf
jne 0x66605ac0
movzx ebp, byte [eax + 2]
mov ebx, ebp
cmp bl, 0xb0
je 0x666062e0
cmp bl, 0x89
je 0x666062a0
test dx, dx
jns 0x66605a40
call fcn.665833a0
mov ebp, 0x44
mov edx, 1
mov ecx, eax
mov eax, 1
cmp cl, 0x40
jg 0x66605a89
mov eax, ebp
or eax, 0x40
movsx eax, al
sub eax, 0x41
cmp eax, 1
jbe 0x66605a7f
mov eax, ebp
cmp al, 0x42
setg al
setg dl
movzx eax, al
jmp 0x66605a89
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x24]
test eax, eax
je 0x66605ea8
cmp dword [esp + 0x54], 3
je 0x66605e00
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0x5c]
mov edi, dword [eax + 0x84]
mov dword [esp + 0x50], edi
test ebp, ebp
jne 0x66605eb8
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x3c], 0
test edi, edi
je 0x66605b85
mov edi, dword [esp + 0x30]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x28], eax
add eax, 1
mov dword [edi + 0x2c], eax
mov edi, dword [esp + 0xb0]
mov dword [esp + 0x3c], eax
mov dword [edi], eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp + 0x34]
mov ebx, dword [edi + 8]
mov eax, dword [eax + 4]
mov ecx, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x70]
mov dword [esp + 0x2c], ecx
test al, 0x20
jne 0x66605ecf
mov esi, dword [edi + 0x34]
test esi, esi
jne 0x66605ecf
test eax, 0x2000000
jne 0x666067f4
mov edi, dword [esp + 0x34]
mov ecx, dword [esp + 0x30]
or eax, 0x2000000
mov dword [edi + 4], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x28], eax
add eax, 1
mov dword [ecx + 0x2c], eax
mov dword [edi + 0x30], eax
cmp edx, dword [esp + 0x2c]
jle 0x66606a34
mov edi, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x68]
lea esi, [edi + edi*4]
lea ebp, [edi + 1]
lea ecx, [ecx + esi*4]
mov dword [ebx + 0x6c], ebp
mov edi, ebp
mov dword [ecx + 8], eax
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov dword [ecx], 0x45
mov dword [ecx + 4], 0
mov eax, dword [esp + 0x34]
mov dword [eax + 0x2c], ebp
cmp edi, edx
jge 0x66606a06
mov ecx, dword [ebx + 0x68]
lea eax, [edi + 1]
mov dword [ebx + 0x6c], eax
mov dword [esp + 0x2c], eax
lea eax, [edi + edi*4]
lea eax, [ecx + eax*4]
mov dword [eax], 0x11
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov eax, dword [esp + 0x34]
mov ebp, dword [eax + 0xc]
movzx eax, byte [ebp]
cmp al, 0xaf
jne 0x66605c6f
movzx eax, byte [ebp + 2]
cmp al, 0xb0
je 0x66606226
mov esi, 1
cmp al, 0x89
jne 0x66605c88
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x1c]
mov esi, dword [eax]
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x40]
mov dword [eax + 0x1c], ecx
cmp edx, dword [esp + 0x2c]
jle 0x66606249
mov ecx, dword [esp + 0x2c]
mov edx, dword [ebx + 0x68]
lea eax, [ecx + 1]
mov dword [ebx + 0x6c], eax
lea eax, [ecx + ecx*4]
mov ecx, dword [esp + 0x40]
lea eax, [edx + eax*4]
mov dword [eax + 4], ecx
mov dword [eax + 8], esi
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov dword [eax], 0x65
mov eax, dword [esp + 0x30]
mov ecx, 1
mov edx, esi
mov eax, dword [eax]
call fcn.6658bec0
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x48], eax
test byte [ecx + 5], 8
je 0x66605ef5
mov ecx, dword [ecx + 0x14]
test edi, edi
mov eax, 0x6667d542
mov edx, dword [ecx + 0x1c]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x28], edx
mov edx, dword [ecx + 0x10]
mov ecx, str.CORRELATED
cmove eax, ecx
mov dword [esp + 8], str._sLIST_SUBQUERY__d
mov dword [esp + 0x10], edx
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], 1
mov dword [esp], eax
call fcn.665bd1e0
mov edx, dword [esp + 0x28]
cmp dword [edx], esi
je 0x666068be
mov eax, dword [esp + 0x48]
test eax, eax
je 0x66605d5e
mov dword [esp], 0xfffffff7
mov edx, dword [esp + 0x2c]
mov ecx, eax
mov eax, ebx
call fcn.6659aa70
test edi, edi
jne 0x66606179
mov edi, dword [esp + 0x3c]
test edi, edi
jne 0x66606163
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x50]
mov ebx, 2
mov esi, dword [esp + 0xb4]
mov dword [eax + 0x84], edi
test esi, esi
je 0x66605dbf
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0xc]
movzx eax, byte [esi]
cmp al, 0xaf
jne 0x66605da2
movzx eax, byte [esi + 2]
cmp al, 0xb0
je 0x6660621f
cmp al, 0x89
je 0x666061f3
mov eax, dword [esp + 0xb4]
mov dword [eax], 0
mov eax, dword [esp + 0xb8]
mov edi, dword [esp + 0x40]
mov dword [eax], edi
add esp, 0x9c
mov eax, ebx
pop ebx
pop esi
pop edi
pop ebp
ret
mov eax, dword [edi + 0x74]
test eax, eax
je 0x6660614e
mov eax, dword [esp + 0x30]
call fcn.6659fe10
mov dword [esp + 0x58], eax
jmp 0x66605874
mov eax, dword [esp + 0x34]
test byte [eax + 5], 8
jne 0x66605b3a
mov edi, dword [esp + 0x34]
mov ecx, 1
lea eax, [esp + 0x74]
mov dword [esp + 0x78], 0x6659dc30
mov word [esp + 0x88], cx
mov esi, dword [edi + 0xc]
mov edx, edi
mov dword [edi + 0xc], 0
mov dword [esp + 0x7c], 0x66582ff0
mov dword [esp + 0x8c], 0
call fcn.665a6500
mov dword [edi + 0xc], esi
cmp word [esp + 0x88], 0
je 0x66605e6d
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
cmp dword [eax], 2
jg 0x66605b3a
mov eax, dword [esp + 0xb4]
mov ebx, 5
test eax, eax
jne 0x66605d97
jmp 0x66605dbf
mov eax, dword [esp + 0x30]
mov ebp, dword [eax + 0x24]
test ebp, ebp
jne 0x66605b2f
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 4]
test esi, 0x800
jne 0x666058e8
cmp dword [esp + 0x54], 3
jne 0x66605b3a
jmp 0x66605e0e
mov dword [eax + 0x84], 0
mov dword [esp + 0x3c], 0
jmp 0x66605b85
xor edi, edi
jmp 0x66605c5c
mov dword [esp + 0xb0], 0
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x24]
test edx, edx
jne 0x66605b2f
jmp 0x666058e8
mov eax, dword [esp + 0x34]
mov esi, dword [eax + 0x14]
test esi, esi
je 0x66605d42
mov eax, ebp
call fcn.665833a0
cmp al, 0x40
jg 0x66606285
mov byte [esp + 0x73], 0x41
mov ebp, dword [esp + 0x48]
test ebp, ebp
je 0x66605f33
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
call fcn.665b4ee0
mov dword [ebp + 0x14], eax
mov eax, dword [esp + 0x30]
movzx eax, byte [eax + 0x13]
test al, al
je 0x666069d6
mov ebp, dword [esp + 0x30]
lea edx, [eax - 1]
movzx ecx, dl
mov byte [ebp + 0x13], dl
mov ebp, dword [ebp + ecx*4 + 0x94]
test dl, dl
je 0x66606b71
mov ecx, dword [esp + 0x30]
sub eax, 2
mov byte [ecx + 0x13], al
movzx eax, al
mov eax, dword [ecx + eax*4 + 0x94]
mov dword [esp + 0x38], eax
mov eax, dword [esi]
lea ecx, [esi + 4]
mov dword [esp + 0x28], ecx
mov dword [esp + 0x4c], eax
test eax, eax
jle 0x666067a5
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0x30]
jmp 0x666060a2
mov eax, dword [edi + 8]
test eax, eax
je 0x66605fd7
mov ecx, ebp
mov edx, esi
mov eax, edi
call fcn.6660ea60
mov ecx, eax
cmp eax, ebp
je 0x66605fd7
mov eax, dword [edi + 8]
xor edx, edx
test byte [esi + 6], 0x20
mov dword [esp], ebp
mov dword [esp + 4], 0
sete dl
add edx, 0x4d
call fcn.6659fdb0
mov eax, dword [ebx + 0x6c]
cmp eax, dword [ebx + 0x70]
jge 0x666066a7
mov ecx, dword [ebx + 0x68]
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
lea edx, [eax + eax*4]
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x38]
mov dword [edx + 4], ebp
mov dword [edx + 8], 1
mov dword [edx + 0xc], ecx
mov dword [edx + 0x10], 0
mov dword [edx], 0x5c
mov edx, dword [ebx]
cmp byte [edx + 0x53], 0
jne 0x6660603d
test eax, eax
jns 0x66606022
mov eax, dword [ebx + 0x6c]
sub eax, 1
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
mov dword [esp], 1
lea ecx, [esp + 0x73]
lea edx, [eax + edx*4]
mov eax, ebx
call fcn.6659ab00
mov eax, dword [ebx + 0x6c]
cmp eax, dword [ebx + 0x70]
jge 0x66606687
mov ecx, dword [ebx + 0x68]
lea edx, [eax + 1]
mov dword [ebx + 0x6c], edx
lea edx, [eax + eax*4]
lea edx, [ecx + edx*4]
mov ecx, dword [esp + 0x40]
mov dword [edx + 0xc], ebp
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x38]
mov dword [edx + 0x10], 0
mov dword [edx + 8], ecx
mov dword [edx], 0x85
mov edx, dword [ebx]
cmp byte [edx + 0x53], 0
jne 0x66606092
lea edx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
lea eax, [eax + edx*4]
mov byte [eax + 1], 0xfd
mov dword [eax + 0x10], 1
add dword [esp + 0x28], 0x14
sub dword [esp + 0x4c], 1
je 0x666067a1
mov eax, dword [esp + 0x28]
mov esi, dword [eax]
mov eax, dword [esp + 0x44]
test eax, eax
je 0x66605fa0
mov eax, 1
mov dword [esp + 0x78], 0x6659dc30
mov word [esp + 0x88], ax
mov dword [esp + 0x7c], 0x66582ff0
mov dword [esp + 0x8c], 0
test esi, esi
je 0x66605fa0
mov edx, esi
lea eax, [esp + 0x74]
call fcn.665a6500
cmp word [esp + 0x88], 0
jne 0x66605fa0
mov eax, dword [ebx]
cmp byte [eax + 0x53], 0
jne 0x66606136
mov ecx, dword [esp + 0x44]
mov edx, dword [ebx + 0x68]
lea ecx, [ecx + ecx*4]
lea edx, [edx + ecx*4]
mov dword [esp + 0x44], edx
mov ecx, dword [edx + 0x10]
movsx edx, byte [edx + 1]
call fcn.6659a7d0
mov edx, dword [esp + 0x44]
mov eax, 0xb0
mov dword [edx + 0x10], 0
mov word [edx], ax
mov eax, dword [esp + 0x34]
mov dword [esp + 0x44], 0
and dword [eax + 4], 0xfdffffff
jmp 0x66605fa0
mov eax, dword [edi]
test byte [eax + 0x4c], 8
jne 0x66605deb
mov byte [edi + 0x17], 1
jmp 0x66605deb
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
call fcn.665a0cf0
jmp 0x66605d72
mov eax, dword [ebx + 0x6c]
mov ecx, dword [ebx]
lea edx, [eax - 1]
cmovs edi, edx
cmp byte [ecx + 0x53], 0
mov edx, 0x666b004c
je 0x66606277
mov edi, dword [esp + 0x34]
mov dword [edx + 8], eax
mov edx, 0x41
mov eax, ebx
mov ecx, dword [edi + 0x30]
mov dword [esp + 4], 0
mov dword [esp], 0
call fcn.6659fdb0
mov eax, dword [ebx + 0x6c]
mov esi, dword [ebx]
mov ecx, 0x666b004c
lea edx, [eax - 1]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x28], eax
sub eax, 1
cmovs eax, edx
cmp byte [esi + 0x53], 0
je 0x66606269
mov eax, dword [esp + 0x30]
mov dword [ecx + 4], edx
mov byte [eax + 0x13], 0
mov dword [eax + 0x1c], 0
jmp 0x66605d66
mov eax, dword [esi + 0x14]
mov eax, dword [eax + 0x1c]
mov edx, dword [eax]
test edx, edx
jle 0x66605dbf
mov ecx, dword [esp + 0xb4]
xor eax, eax
lea esi, [esi]
mov dword [ecx + eax*4], eax
add eax, 1
cmp eax, edx
jne 0x66606210
jmp 0x66605dbf
mov eax, dword [esi + 0x14]
mov edx, dword [eax]
jmp 0x666061fb
mov eax, dword [ebp + 0x14]
mov esi, dword [eax]
jmp 0x66605c88
mov eax, 0
cmovne eax, dword [esp + 0xb0]
mov dword [esp + 0xb0], eax
jmp 0x666058d9
mov dword [esp + 4], 0
mov edx, 0x65
mov eax, ebx
mov dword [esp], esi
call fcn.6659fd40
mov dword [esp + 0x2c], eax
jmp 0x66605cce
lea ecx, [eax + eax*4]
mov eax, dword [ebx + 0x68]
lea ecx, [eax + ecx*4]
jmp 0x666061dc
mov edx, dword [ebx + 0x68]
lea ecx, [edi + edi*4]
lea edx, [edx + ecx*4]
jmp 0x66606193
cmp al, 0x45
mov edx, 0x43
cmove eax, edx
mov byte [esp + 0x73], al
jmp 0x66605f18
mov ebp, dword [eax + 0x14]
mov ebp, dword [ebp + 0x1c]
mov ebp, dword [ebp]
cmp ebp, 1
jle 0x66605ad4
mov ebp, dword [eax + 0x14]
cmp byte [eax + 2], 0x89
mov eax, dword [esp + 0x2c]
lea eax, [eax + eax*4]
je 0x666062d0
cmp cl, 0x89
je 0x666062d0
mov eax, dword [ebp + eax*4 + 4]
jmp 0x66605ad4
mov ecx, dword [ebp + 0x1c]
lea eax, [ecx + eax*4]
mov eax, dword [eax + 4]
jmp 0x66605ad4
mov ebp, dword [eax + 0x14]
mov ebp, dword [ebp]
jmp 0x666062a9
movzx eax, dl
jmp 0x66605a89
cmp al, 0x40
jg 0x66605afd
jmp 0x66605af8
mov ebp, dword [esp + 0x3c]
test eax, eax
je 0x66605b2f
mov eax, dword [esp + 0x38]
mov esi, dword [eax + 8]
test esi, esi
je 0x66605b2f
movzx ecx, byte [esp + 0x28]
xor eax, eax
xor edx, edx
mov dword [esp + 0x6c], ebp
mov ebp, esi
test cl, 0x20
sete al
setne dl
shl eax, cl
shl edx, cl
add eax, 0xffffffff
adc edx, 0xffffffff
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], edx
jmp 0x6660637b
movzx eax, word [ebp + 0x32]
cmp eax, edi
jg 0x66606370
cmp edx, edi
jle 0x6660639c
cmp byte [ebp + 0x36], 0
jne 0x6660639c
lea esi, [esi]
lea esi, [esi]
mov ebp, dword [ebp + 0x14]
test ebp, ebp
je 0x66605b2f
movzx edx, word [ebp + 0x34]
mov edi, dword [esp + 0x28]
cmp edx, edi
jl 0x66606370
mov ecx, dword [ebp + 0x24]
test ecx, ecx
jne 0x66606370
cmp dx, 0x3e
ja 0x66606370
mov eax, dword [esp + 0x5c]
test eax, eax
jne 0x66606354
mov edi, dword [esp + 0x28]
test edi, edi
jle 0x66606b1b
mov eax, dword [esp + 0x68]
mov dword [esp + 0x48], 0
xor edi, edi
mov dword [esp + 0x4c], 0
add eax, 4
mov dword [esp + 0x50], eax
mov eax, ebp
mov ebp, edi
mov edi, eax
lea esi, [esi]
nop
mov eax, dword [esp + 0x34]
mov edx, dword [eax + 0xc]
movzx eax, byte [edx]
mov ecx, eax
cmp al, 0xaf
jne 0x666063e4
movzx ecx, byte [edx + 2]
cmp cl, 0xb0
je 0x66606672
cmp cl, 0x89
je 0x66606630
mov eax, dword [esp + 0x50]
mov ebx, dword [eax]
mov eax, dword [esp + 0x30]
mov ecx, ebx
call fcn.665b5090
xor ecx, ecx
mov dword [esp + 0x44], eax
mov eax, dword [edi + 4]
mov dword [esp + 0x2c], eax
movzx eax, word [ebx + 0x20]
mov word [esp + 0x38], ax
mov eax, dword [esp + 0x2c]
movzx esi, word [esp + 0x38]
cmp word [eax + ecx*2], si
jne 0x66606614
mov esi, dword [esp + 0x44]
test esi, esi
je 0x6660647b
mov eax, dword [edi + 0x20]
mov edx, dword [esi]
mov dword [esp + 0x3c], ecx
mov ebx, dword [eax + ecx*4]
jmp 0x66606469
movzx ecx, byte [esi + 0x66690a80]
cmp byte [eax + 0x66690a80], cl
jne 0x66606610
add edx, 1
add ebx, 1
movzx eax, byte [edx]
movzx esi, byte [ebx]
cmp eax, esi
jne 0x66606450
test eax, eax
jne 0x66606463
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x28], ecx
je 0x666064d1
xor eax, eax
xor edx, edx
test cl, 0x20
mov ebx, dword [esp + 0x48]
sete al
setne dl
mov esi, dword [esp + 0x4c]
shl eax, cl
shl edx, cl
and ebx, eax
and esi, edx
or esi, ebx
jne 0x666064d1
or dword [esp + 0x48], eax
mov eax, dword [esp + 0xb4]
or dword [esp + 0x4c], edx
test eax, eax
je 0x666064bf
mov eax, dword [esp + 0xb4]
mov dword [eax + ebp*4], ecx
add dword [esp + 0x50], 0x14
add ebp, 1
cmp ebp, dword [esp + 0x28]
jne 0x666063d0
mov ebp, edi
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x60]
mov edi, dword [esp + 0x64]
mov edx, dword [esp + 0x4c]
xor eax, esi
xor edx, edi
or edx, eax
jne 0x66606370
mov eax, dword [esp + 0x58]
mov esi, ebp
mov ebp, dword [esp + 0x6c]
mov edi, dword [eax + 0x6c]
cmp edi, dword [eax + 0x70]
jge 0x66606b30
mov ebx, dword [esp + 0x58]
lea eax, [edi + 1]
mov edx, dword [ebx + 0x68]
mov dword [ebx + 0x6c], eax
lea eax, [edi + edi*4]
lea eax, [edx + eax*4]
mov dword [eax], 0x11
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov eax, dword [esi]
mov ebx, dword [esp + 0x30]
mov dword [esp + 8], str.USING_INDEX__s_FOR_IN_OPERATOR
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov dword [esp], ebx
call fcn.665bd1e0
mov dword [esp + 4], ebp
mov eax, dword [esi + 0x2c]
mov ebp, ebx
mov ecx, dword [esp + 0x40]
mov edx, 0x61
mov dword [esp], eax
mov eax, dword [esp + 0x58]
call fcn.6659fdb0
mov eax, ebx
mov edx, esi
call fcn.665b4220
mov eax, dword [esi + 0x1c]
movzx ebx, byte [eax]
mov eax, dword [esp + 0xb0]
add ebx, 3
test eax, eax
je 0x666065b8
mov ecx, dword [ebp + 0x2c]
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x2c], ecx
add ecx, 1
cmp dword [esp + 0x28], 1
mov dword [ebp + 0x2c], ecx
mov dword [eax], ecx
je 0x66606b52
mov esi, dword [esp + 0x58]
test edi, edi
mov edx, dword [esi + 0x6c]
mov ecx, dword [esi]
lea eax, [edx - 1]
cmovs edi, eax
cmp byte [ecx + 0x53], 0
mov eax, 0x666b004c
jne 0x666065dd
mov eax, dword [esi + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
mov eax, dword [esp + 0xb4]
test eax, eax
je 0x66605dbf
cmp ebx, 3
je 0x66605dbf
cmp ebx, 4
je 0x66605dbf
jmp 0x66605d90
mov ecx, dword [esp + 0x3c]
add ecx, 1
cmp ecx, dword [esp + 0x28]
jne 0x6660641d
jmp 0x666064d1
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx + 0x1c]
mov ecx, dword [ecx]
cmp ecx, 1
jle 0x666063f6
cmp byte [edx + 2], 0x89
mov ecx, dword [edx + 0x14]
je 0x66606660
cmp al, 0x89
je 0x66606660
lea eax, [ebp + ebp*4]
mov edx, dword [ecx + eax*4 + 4]
jmp 0x666063f6
mov esi, dword [ecx + 0x1c]
lea eax, [ebp + ebp*4]
lea eax, [esi + eax*4]
mov edx, dword [eax + 4]
jmp 0x666063f6
mov ecx, dword [edx + 0x14]
mov ecx, dword [ecx]
jmp 0x66606638
cmp ebp, 1
jne 0x666059d7
jmp 0x66605a05
mov eax, dword [esp + 0x38]
mov dword [esp + 4], ebp
mov edx, 0x85
mov ecx, dword [esp + 0x40]
mov dword [esp], eax
mov eax, ebx
call fcn.6659fd40
jmp 0x66606076
mov eax, dword [esp + 0x38]
mov dword [esp], 1
mov ecx, ebp
mov edx, 0x5c
mov dword [esp + 4], eax
mov eax, ebx
call fcn.6659fd40
jmp 0x66606010
mov eax, dword [esp + 0x68]
mov eax, dword [eax + 4]
movsx edx, word [eax + 0x20]
test dx, dx
jns 0x66605a27
mov eax, dword [esp + 0x58]
mov ebx, dword [eax + 0x6c]
cmp ebx, dword [eax + 0x70]
jge 0x66606acc
mov edi, dword [esp + 0x58]
lea eax, [ebx + 1]
mov edx, dword [edi + 0x68]
mov dword [edi + 0x6c], eax
lea eax, [ebx + ebx*4]
lea eax, [edx + eax*4]
mov dword [eax], 0x11
mov dword [eax + 4], 0
mov dword [eax + 8], 0
mov dword [eax + 0xc], 0
mov dword [eax + 0x10], 0
mov edi, dword [esp + 0x38]
mov esi, dword [esp + 0x30]
mov dword [esp + 4], 0x61
mov ecx, ebp
mov edx, dword [esp + 0x40]
mov dword [esp], edi
mov eax, esi
call fcn.665b4280
mov eax, dword [edi]
mov dword [esp + 8], str.USING_ROWID_SEARCH_ON_TABLE__s_FOR_IN_OPERATOR
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov dword [esp], esi
call fcn.665bd1e0
mov edi, dword [esp + 0x58]
test ebx, ebx
mov edx, dword [edi + 0x6c]
mov ecx, dword [edi]
lea eax, [edx - 1]
cmovs ebx, eax
cmp byte [ecx + 0x53], 0
mov eax, 0x666b004c
jne 0x66606785
mov eax, dword [edi + 0x68]
lea ecx, [ebx + ebx*4]
lea eax, [eax + ecx*4]
mov esi, dword [esp + 0xb4]
mov dword [eax + 8], edx
mov ebx, 1
test esi, esi
je 0x66605dbf
jmp 0x66605d90
mov edi, dword [esp + 0x44]
test ebp, ebp
je 0x666067c6
mov ecx, dword [esp + 0x30]
movzx eax, byte [ecx + 0x13]
cmp al, 7
ja 0x66605d42
lea edx, [eax + 1]
mov byte [ecx + 0x13], dl
mov dword [ecx + eax*4 + 0x94], ebp
mov esi, dword [esp + 0x38]
test esi, esi
je 0x66605d42
mov ecx, dword [esp + 0x30]
movzx eax, byte [ecx + 0x13]
cmp al, 7
ja 0x66605d42
lea edx, [eax + 1]
mov byte [ecx + 0x13], dl
mov dword [ecx + eax*4 + 0x94], esi
jmp 0x66605d42
cmp edx, ecx
jle 0x66606aee
mov edi, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x68]
lea edx, [edi + 1]
mov dword [ebx + 0x6c], edx
lea edx, [edi + edi*4]
lea edx, [ecx + edx*4]
mov dword [edx], 0x11
mov dword [edx + 4], 0
mov dword [edx + 8], 0
mov dword [edx + 0xc], 0
mov dword [edx + 0x10], 0
test ah, 8
jne 0x66606a5b
mov edi, dword [esp + 0x34]
mov edx, 0xc
mov ecx, dword [edi + 0x30]
mov dword [esp + 4], 0
mov eax, dword [edi + 0x2c]
mov dword [esp], eax
mov eax, ebx
call fcn.6659fdb0
mov ecx, dword [esp + 0x40]
mov edx, 0x63
mov dword [esp + 4], 0
mov eax, dword [edi + 0x1c]
mov dword [esp], eax
mov eax, ebx
call fcn.6659fdb0
mov edi, dword [esp + 0x2c]
mov edx, dword [ebx + 0x6c]
mov ecx, dword [ebx]
test edi, edi
lea eax, [edx - 1]
cmovns eax, edi
cmp byte [ecx + 0x53], 0
mov edi, eax
mov eax, 0x666b004c
jne 0x666068a0
mov eax, dword [ebx + 0x68]
lea ecx, [edi + edi*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], edx
jmp 0x66605d66
mov eax, 1
jmp 0x666059b7
mov eax, ebx
call fcn.66605410
jmp 0x66605a05
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov byte [esp + 0x74], 0xb
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 0x88], 0
mov dword [esp + 0x80], 0
mov eax, dword [eax]
mov dword [esp + 0x84], 0
call fcn.6659ad80
mov edx, dword [esp + 0x38]
lea ecx, [esp + 0x74]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 8], 0
call fcn.6660adb0
mov edx, dword [esp + 0x88]
mov dword [esp + 0x38], eax
test eax, eax
jne 0x66606a91
test edx, edx
je 0x66606944
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
call fcn.665926e0
mov eax, dword [esp + 0x28]
add eax, 4
test esi, esi
jle 0x66605d42
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x44], edi
mov edi, eax
jmp 0x66606980
mov ecx, dword [edi]
mov eax, dword [esp + 0x30]
add edi, 0x14
call fcn.665b5090
mov ecx, dword [esp + 0x48]
mov dword [ecx + ebx*4 + 0x14], eax
add ebx, 1
cmp ebx, esi
je 0x666069f9
movzx eax, byte [ebp]
mov ecx, eax
cmp al, 0xaf
jne 0x6660698e
movzx ecx, byte [ebp + 2]
cmp cl, 0xb0
je 0x666069cf
mov edx, ebp
cmp cl, 0x89
jne 0x66606963
mov edx, dword [ebp + 0x14]
mov edx, dword [edx + 0x1c]
mov edx, dword [edx]
cmp edx, 1
jle 0x66606a8a
cmp byte [ebp + 2], 0x89
mov edx, dword [ebp + 0x14]
je 0x666069c1
cmp al, 0x89
je 0x666069c1
lea eax, [ebx + ebx*4]
mov edx, dword [edx + eax*4 + 4]
jmp 0x66606963
mov ecx, dword [edx + 0x1c]
lea eax, [ebx + ebx*4]
lea eax, [ecx + eax*4]
mov edx, dword [eax + 4]
jmp 0x66606963
mov edx, dword [ebp + 0x14]
mov edx, dword [edx]
jmp 0x666069a2
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x2c]
lea ebp, [eax + 1]
mov dword [esp + 0x28], eax
mov eax, ebp
mov ecx, dword [esp + 0x30]
add eax, 1
mov dword [esp + 0x38], eax
mov dword [ecx + 0x2c], eax
jmp 0x66605f77
mov ebx, dword [esp + 0x28]
mov edi, dword [esp + 0x44]
jmp 0x66605d42
mov dword [esp], 0
mov edx, 0x11
xor ecx, ecx
mov eax, ebx
mov dword [esp + 4], 0
call fcn.6659fd40
mov edx, dword [ebx + 0x70]
mov edi, eax
mov eax, dword [ebx + 0x6c]
mov dword [esp + 0x2c], eax
jmp 0x66605c5c
mov dword [esp], eax
mov edx, 0x45
xor ecx, ecx
mov eax, ebx
mov dword [esp + 4], 0
call fcn.6659fd40
mov edi, dword [ebx + 0x6c]
mov edx, dword [ebx + 0x70]
lea ebp, [eax + 1]
jmp 0x66605c18
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 0x14]
mov eax, dword [eax + 0x10]
mov dword [esp + 8], str.REUSE_LIST_SUBQUERY__d
mov dword [esp + 4], 0
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.665bd1e0
jmp 0x6660683a
mov edx, ebp
jmp 0x66606963
test edx, edx
je 0x66606aa0
mov eax, dword [esp + 0x30]
mov eax, dword [eax]
call fcn.665926e0
mov edi, dword [esp + 0x48]
test edi, edi
je 0x66605d66
mov eax, dword [edi]
mov dword [esp + 0x28], eax
sub eax, 1
mov dword [edi], eax
jne 0x66605d66
mov eax, dword [edi + 0xc]
mov edx, edi
call fcn.665926e0
jmp 0x66605d66
mov dword [esp + 4], 0
xor ecx, ecx
mov edx, 0x11
mov dword [esp], 0
call fcn.6659fd40
mov ebx, eax
jmp 0x66606722
mov dword [esp], 0
xor ecx, ecx
mov edx, 0x11
mov eax, ebx
mov dword [esp + 4], 0
call fcn.6659fd40
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x34]
mov eax, dword [eax + 4]
jmp 0x66606831
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
jmp 0x666064d3
mov dword [esp + 4], 0
xor ecx, ecx
mov edx, 0x11
mov dword [esp], 0
call fcn.6659fd40
mov edi, eax
jmp 0x6660653a
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x58]
call fcn.665a0cf0
jmp 0x666065b8
mov edx, dword [eax + 0x10]
mov ebp, 0xffff8000
jmp 0x666059d7
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x2c]
jmp 0x666069e6