Function at 0x100a66a0
Capabilities:
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0xcc
push ebx
push ebp
push esi
mov esi, dword [esp + 0xdc]
mov ebx, dword [esp + 0xe0]
push edi
mov eax, dword [esi + 0x1dc]
mov ebp, dword [esi]
mov dword [esp + 0xa0], eax
mov eax, dword [esi + 0x1e0]
mov dword [esi + 0x1dc], eax
inc eax
test ebx, ebx
mov dword [esp + 0x50], 1
mov dword [esi + 0x1e0], eax
mov dword [esp + 0x44], ebp
je 0x100a7880
mov al, byte [ebp + 0x36]
test al, al
jne 0x100a7880
mov eax, dword [esi + 0x44]
test eax, eax
jne 0x100a7880
push 0
push 0
push 0
push 0x15
push esi
call fcn.1009b170
add esp, 0x14
test eax, eax
jne 0x100a7880
mov ecx, 0xa
lea edi, [esp + 0x78]
rep stosd dword es:[edi], eax
mov ecx, dword [esp + 0xe8]
cmp byte [ecx], 4
ja 0x100a674e
mov edx, dword [ebx + 0x38]
push edx
push ebp
call fcn.1008c810
add esp, 8
and word [ebx + 6], 0xfffe
mov dword [ebx + 0x38], 0
push 0
push ebx
push esi
call fcn.100a5ba0
mov eax, dword [ebx + 0x38]
mov ecx, dword [ebx + 0x28]
mov edx, dword [ebx]
mov dword [esp + 0x24], eax
mov eax, dword [esi + 0x44]
add esp, 0xc
test eax, eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x28], edx
jne 0x100a781c
mov eax, dword [esp + 0x44]
mov cl, byte [eax + 0x36]
test cl, cl
jne 0x100a781c
mov cl, byte [ebx + 6]
push esi
shr ecx, 2
and ecx, 1
mov dword [esp + 0x18], ecx
call fcn.100a5af0
mov ebp, eax
add esp, 4
test ebp, ebp
je 0x100a781c
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0xe8]
mov eax, dword [edx]
push eax
push ecx
push esi
call fcn.100a7cc0
add esp, 0xc
test eax, eax
jne 0x100a781c
mov dword [esp + 0x30], eax
mov eax, dword [ebx + 0x3c]
test eax, eax
jne 0x100a6985
mov edx, dword [esp + 0x58]
mov ecx, dword [esp + 0x30]
movsx eax, word [edx]
cmp ecx, eax
jge 0x100a6985
shl ecx, 6
mov eax, dword [ecx + edx + 0x18]
lea edi, [ecx + edx + 8]
test eax, eax
mov dword [esp + 0x10], eax
je 0x100a6971
mov eax, dword [edi + 0x14]
test eax, eax
je 0x100a681d
push eax
mov eax, dword [edi + 0x18]
push eax
push 2
push ebp
call fcn.10095b10
add esp, 0x10
jmp 0x100a6971
push ebx
call fcn.100a7890
mov edx, dword [esi + 0x1d8]
mov ecx, dword [esp + 0x14]
add edx, eax
mov dword [esi + 0x1d8], edx
mov al, byte [ecx + 6]
mov edx, dword [esp + 0x18]
shr eax, 2
and eax, 1
mov dword [esp + 0x40], eax
push eax
mov eax, dword [esp + 0x38]
push edx
push eax
push ebx
push esi
call fcn.100a9e00
add esp, 0x18
test eax, eax
je 0x100a687c
mov eax, dword [esp + 0x3c]
test eax, eax
je 0x100a686f
or byte [ebx + 6], 4
mov dword [esp + 0x14], 1
mov dword [esp + 0x30], 0xffffffff
jmp 0x100a6931
mov eax, dword [esi + 0x4c]
mov dword [esp + 0x24], 0
inc eax
push eax
push 0
push 7
mov dword [esi + 0x4c], eax
push ebp
mov dword [edi + 0x18], eax
call fcn.10095b10
add esp, 0x10
mov dword [esp + 0x3c], eax
inc eax
mov dword [edi + 0x14], eax
mov al, byte [edi + 0x1e]
test al, al
jne 0x100a68b8
push esi
call fcn.10097ed0
add esp, 4
mov dword [esp + 0x24], eax
mov ecx, dword [edi + 0x20]
lea edx, [esp + 0xcc]
push ecx
push 9
push edx
call fcn.100a5360
mov edx, dword [esp + 0x1c]
mov al, byte [esi + 0x1e0]
lea ecx, [esp + 0xd8]
mov byte [edi + 0x1f], al
push ecx
push edx
push esi
call fcn.100a66a0
mov eax, dword [esp + 0x28]
add esp, 0x18
fld qword [eax + 0x20]
call fcn.100cda38
mov ecx, dword [edi + 0xc]
mov dword [ecx + 0x18], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x100a6910
mov edx, eax
push edx
push ebp
call fcn.10095b30
add esp, 8
mov eax, dword [edi + 0x18]
push eax
push 3
push ebp
call fcn.100965a0
mov ecx, dword [esp + 0x48]
push eax
push ecx
push ebp
call fcn.10089870
push esi
call fcn.100a7cb0
add esp, 0x1c
mov edx, dword [esp + 0x44]
mov al, byte [edx + 0x36]
test al, al
jne 0x100a781c
push ebx
call fcn.100a7890
mov ecx, dword [esi + 0x1d8]
add esp, 4
sub ecx, eax
mov dword [esi + 0x1d8], ecx
mov eax, dword [ebx + 0x28]
mov ecx, dword [esp + 0xe8]
mov dword [esp + 0x58], eax
cmp byte [ecx], 4
jbe 0x100a6971
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x18], edx
mov ecx, dword [esp + 0x30]
mov eax, dword [ebx + 0x3c]
inc ecx
test eax, eax
mov dword [esp + 0x30], ecx
je 0x100a67d7
mov ecx, dword [ebx + 0x2c]
mov eax, dword [ebx]
mov edx, dword [ebx + 0x34]
mov dword [esp + 0x48], ecx
mov cl, byte [ebx + 6]
mov dword [esp + 0x28], eax
mov eax, dword [ebx + 0x30]
and ecx, 1
mov dword [esp + 0x40], ecx
mov ecx, dword [ebx + 0x3c]
test ecx, ecx
mov dword [esp + 0x20], eax
mov dword [esp + 0x3c], edx
je 0x100a6a1a
mov eax, dword [ebx + 0x44]
test eax, eax
jne 0x100a69f0
xor ecx, ecx
xor edx, edx
mov eax, ebx
mov dword [eax + 0x40], ecx
mov dword [eax + 0x44], ebx
mov ecx, eax
mov eax, dword [eax + 0x3c]
inc edx
test eax, eax
jne 0x100a69be
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x100a69f0
cmp edx, eax
jle 0x100a69f0
push str.too_many_terms_in_compound_SELECT
push esi
call fcn.100896b0
add esp, 8
jmp 0x100a781c
mov ecx, dword [esp + 0xe8]
push ecx
push ebx
push esi
call fcn.100a89f0
mov edx, dword [esp + 0xac]
add esp, 0xc
mov dword [esi + 0x1dc], edx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
mov ecx, dword [esp + 0x18]
push ecx
push eax
call fcn.1009af20
add esp, 8
test eax, eax
jne 0x100a6a3e
mov edx, dword [esp + 0x44]
test byte [edx + 0x18], 0x20
jne 0x100a6a3e
xor eax, eax
mov dword [esp + 0x18], eax
jmp 0x100a6a42
mov eax, dword [esp + 0x18]
mov cl, byte [ebx + 6]
and cl, 5
cmp cl, 1
jne 0x100a6b3b
mov edx, dword [ebx]
push edx
push eax
call fcn.1009af20
add esp, 8
test eax, eax
jne 0x100a6b37
mov ecx, dword [esp + 0x44]
and word [ebx + 6], 0xfffe
push eax
mov eax, dword [ebx]
push eax
push ecx
call fcn.1009a930
add esp, 0xc
mov dword [ebx + 0x30], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], 0
or edi, 0xffffffff
mov dword [esp + 0x10], edi
mov ecx, dword [esp + 0xe8]
cmp byte [ecx], 9
jne 0x100a6ab4
mov edx, dword [esp + 0x28]
mov eax, dword [edx]
mov edx, dword [ecx + 4]
push eax
push edx
push 0x2a
push ebp
call fcn.10095b10
add esp, 0x10
push ebp
call fcn.100965c0
push eax
push ebx
mov dword [ebx + 0x20], 0
push esi
mov dword [esp + 0xb4], eax
mov dword [ebx + 0x24], 0x43e00000
call fcn.100a88a0
mov eax, dword [ebx + 8]
add esp, 0x10
test eax, eax
jne 0x100a6af6
test edi, edi
jl 0x100a6af6
push edi
push ebp
call fcn.100a1f80
add esp, 8
mov byte [eax], 0x2b
or byte [ebx + 6], 0x40
test byte [ebx + 6], 1
je 0x100a6b87
mov edi, dword [esi + 0x48]
mov dword [esp + 0x60], edi
lea eax, [edi + 1]
mov dword [esi + 0x48], eax
mov ecx, dword [ebx]
push ecx
push esi
call fcn.100a8280
push 0xfffffffffffffff0
push eax
push 0
push 0
push edi
push 0x2a
push ebp
call fcn.10095130
push 8
push ebp
mov dword [esp + 0x58], eax
call fcn.10096040
add esp, 0x2c
jmp 0x100a6b92
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100a6a8b
push eax
push esi
call fcn.100a8280
mov ecx, dword [esp + 0x20]
mov edx, dword [esi + 0x48]
push 0xfffffffffffffff0
push eax
mov dword [ecx + 4], edx
mov edx, dword [esi + 0x48]
mov eax, dword [esp + 0x28]
inc edx
mov dword [esi + 0x48], edx
push 0
mov edx, dword [eax]
mov eax, dword [eax + 4]
add edx, 2
push edx
push eax
push 0x2a
push ebp
call fcn.10095130
mov edi, eax
add esp, 0x24
mov dword [esp + 0x10], edi
mov dword [ebx + 0x18], edi
jmp 0x100a6a92
or eax, 0xffffffff
mov dword [esp + 0x2c], eax
mov dword [esp + 0x60], eax
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x20]
xor eax, eax
cmp ecx, eax
jne 0x100a6dc2
cmp edx, eax
jne 0x100a6dc2
cmp dword [esp + 0x40], eax
je 0x100a6bb4
mov eax, dword [ebx]
mov ecx, dword [esp + 0x58]
push 0
push eax
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x20]
push edx
push eax
push ecx
push esi
call fcn.100ad1d0
mov edi, eax
add esp, 0x18
test edi, edi
mov dword [esp + 0x48], edi
je 0x100a781c
fld qword [edi + 0x30]
fcomp qword [ebx + 0x20]
fnstsw ax
test ah, 1
je 0x100a6bf6
mov edx, dword [edi + 0x30]
mov dword [ebx + 0x20], edx
mov eax, dword [edi + 0x34]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x100a6c1b
mov eax, dword [esp + 0x18]
test eax, eax
jne 0x100a6c1b
mov ecx, dword [esp + 0x10]
push ecx
push ebp
call fcn.100898d0
add esp, 8
mov dword [ebx + 0x18], 0xffffffff
mov al, byte [edi + 8]
test al, al
je 0x100a6d8a
mov edx, dword [esp + 0x2c]
push edx
push ebp
call fcn.100a1f80
mov cl, byte [edi + 8]
add esp, 8
cmp cl, 2
mov dword [esp + 0x60], 0xffffffff
jne 0x100a6d87
mov edx, dword [esi + 0x4c]
mov ecx, dword [esp + 0x28]
inc edx
push 1
mov edi, edx
mov dword [esi + 0x4c], edx
mov ecx, dword [ecx]
mov dword [esp + 0x70], edi
lea edx, [edi + 1]
mov dword [esp + 0x28], edx
add edx, ecx
lea ecx, [edi + ecx*2]
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x28]
mov dword [esi + 0x4c], ecx
mov byte [eax], 7
mov dword [eax + 4], 1
mov dword [eax + 8], edi
mov eax, dword [esp + 0x2c]
push edx
push eax
push esi
call fcn.10098970
push ebp
call fcn.10096630
mov ecx, dword [esp + 0x3c]
mov edx, dword [ecx]
lea eax, [eax + edx + 3]
mov dword [esp + 0x60], eax
dec eax
push eax
push edi
push 0x1b
push ebp
call fcn.10095b10
mov eax, dword [esp + 0x4c]
add esp, 0x24
mov dword [esp + 0x3c], 0
cmp dword [eax], 0
jle 0x100a6d48
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x2c]
sub eax, edi
mov dword [esp + 0x10], 0
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x10]
mov edx, dword [ecx + 8]
mov ecx, dword [eax + edx]
push ecx
push esi
call fcn.10097460
mov edx, dword [esp + 0x5c]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x54]
add edx, edi
push edx
push eax
push edi
push 0x4b
push ebp
call fcn.10095170
mov ecx, dword [esp + 0x78]
push 0xfffffffffffffffc
push ecx
push 0xffffffffffffffff
push ebp
call fcn.10089920
push 0x80
push ebp
call fcn.10096040
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x70]
add ecx, 0x14
add esp, 0x34
mov dword [esp + 0x10], ecx
mov ecx, dword [edx]
inc eax
inc edi
cmp eax, ecx
mov dword [esp + 0x3c], eax
jl 0x100a6cda
mov edi, dword [esp + 0x6c]
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + 0x14]
push ecx
push 0
push 1
push ebp
call fcn.10095b10
push edi
push 0
push 7
push ebp
call fcn.10095b10
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x4c]
mov eax, dword [edx]
mov edx, dword [esp + 0x44]
push eax
push ecx
push edx
push 0xd
push ebp
call fcn.10095170
mov edi, dword [esp + 0x7c]
add esp, 0x34
jmp 0x100a6d8a
mov byte [eax], 0x95
mov eax, dword [edi + 0x18]
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0xe8]
push eax
mov eax, dword [esp + 0x64]
push ecx
mov ecx, dword [esp + 0x20]
push edx
mov edx, dword [esp + 0x34]
push eax
push ecx
push 0
push 0
push edx
push ebx
push esi
call fcn.100a7d00
push edi
call fcn.100b25c0
add esp, 0x2c
jmp 0x100a77c0
cmp edx, eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x38], eax
je 0x100a6e22
mov eax, dword [ebx]
mov ecx, dword [eax]
mov eax, dword [eax + 8]
test ecx, ecx
jle 0x100a6deb
add eax, 0x10
mov word [eax], 0
add eax, 0x14
dec ecx
jne 0x100a6ddc
mov edx, dword [esp + 0x20]
mov ecx, dword [edx]
mov edx, dword [edx + 8]
test ecx, ecx
jle 0x100a6e02
lea eax, [edx + 0x10]
mov word [eax], 0
add eax, 0x14
dec ecx
jne 0x100a6df7
fld qword [ebx + 0x20]
fcomp qword [0x100fbda8]
fnstsw ax
test ah, 0x41
jne 0x100a6e2c
mov dword [ebx + 0x20], 0
mov dword [ebx + 0x24], 0x40590000
jmp 0x100a6e2c
mov dword [ebx + 0x20], eax
mov dword [ebx + 0x24], 0x3ff00000
push ebp
call fcn.100965c0
mov dword [esp + 0x6c], eax
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xac]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x5c]
add esp, 4
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x78]
mov dword [esp + 0xa8], esi
test eax, eax
mov dword [esp + 0xc4], ecx
je 0x100a6e7a
mov edx, dword [eax]
inc edx
mov dword [esp + 0x84], edx
jmp 0x100a6e85
mov dword [esp + 0x84], 0
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x28]
lea ecx, [esp + 0xa8]
push eax
push ecx
call fcn.100a7c70
mov edx, dword [esp + 0x20]
lea eax, [esp + 0xb0]
push edx
push eax
call fcn.100a7c70
mov eax, dword [esp + 0x4c]
xor edi, edi
add esp, 0x10
cmp eax, edi
je 0x100a6ece
lea ecx, [esp + 0xa8]
push eax
push ecx
call fcn.100a7940
add esp, 8
mov eax, dword [esp + 0x9c]
mov edx, dword [esp + 0x90]
cmp eax, edi
mov dword [esp + 0x94], edx
mov dword [esp + 0x30], edi
jle 0x100a6f20
mov eax, dword [esp + 0x98]
mov ecx, dword [edi + eax]
lea eax, [esp + 0xa8]
mov edx, dword [ecx + 0x10]
push edx
push eax
call fcn.100a7c70
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0xa4]
add esp, 8
inc eax
add edi, 0x10
cmp eax, ecx
mov dword [esp + 0x30], eax
jl 0x100a6eeb
mov ecx, dword [esp + 0x44]
mov al, byte [ecx + 0x36]
test al, al
jne 0x100a781c
mov ecx, dword [esp + 0x20]
test ecx, ecx
je 0x100a7556
mov eax, dword [esi + 0x48]
push ecx
mov dword [esp + 0x80], eax
inc eax
push esi
mov dword [esi + 0x48], eax
call fcn.100a8280
mov edx, dword [esp + 0x8c]
push 0xfffffffffffffff0
mov dword [esp + 0x70], eax
push eax
mov eax, dword [esp + 0x8c]
push 0
push edx
push eax
push 0x2b
push ebp
call fcn.10095130
mov dword [esp + 0x98], eax
mov eax, dword [esi + 0x4c]
inc eax
push ebp
mov dword [esp + 0x7c], eax
lea edi, [eax + 1]
mov dword [esp + 0x74], edi
inc edi
mov dword [esi + 0x4c], edi
call fcn.100965c0
mov dword [esp + 0x98], eax
mov eax, dword [esi + 0x4c]
inc eax
push ebp
mov ecx, eax
mov dword [esi + 0x4c], eax
mov dword [esp + 0x98], ecx
call fcn.100965c0
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x58], eax
mov eax, dword [esi + 0x4c]
lea edx, [eax + 1]
mov dword [esp + 0x88], edx
mov edx, dword [ecx]
add eax, edx
mov dword [esi + 0x4c], eax
mov ecx, dword [ecx]
lea edx, [eax + 1]
add ecx, eax
mov dword [esp + 0x50], edx
mov edx, dword [esp + 0x78]
push edx
push 0
push 7
push ebp
mov dword [esi + 0x4c], ecx
call fcn.10095b10
mov eax, dword [esp + 0x90]
push eax
push 0
push 7
push ebp
call fcn.10095b10
mov ecx, dword [esp + 0x6c]
mov eax, dword [esp + 0xa8]
add esp, 0x4c
mov edx, dword [ecx]
lea ecx, [edx + eax - 1]
push ecx
push eax
push 0
push 0xa
push ebp
call fcn.10095170
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x80]
push edx
push eax
push 2
push ebp
call fcn.10095b10
push 0
push 0
mov edx, dword [esp + 0x74]
mov eax, dword [esp + 0x84]
lea ecx, [esp + 0x4c]
push ecx
push edx
push eax
push esi
call fcn.100ad1d0
add esp, 0x3c
mov dword [esp + 0x48], eax
test eax, eax
je 0x100a781c
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x100a7075
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x10], 0
mov dword [esp + 0x20], ecx
jmp 0x100a7299
mov eax, dword [esp + 0x40]
test eax, eax
je 0x100a7088
test byte [ebx + 6], 1
mov eax, str.DISTINCT
je 0x100a708d
mov eax, str.GROUP_BY
push eax
push esi
call fcn.100a8320
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x98]
add esp, 8
mov dword [esp + 0x10], 1
mov eax, dword [edx]
mov dword [esp + 0x38], eax
inc eax
test ecx, ecx
mov dword [esp + 0x34], eax
mov dword [esp + 0x50], eax
jle 0x100a70e7
mov edx, dword [esp + 0x8c]
mov dword [esp + 0x14], ecx
add edx, 0xc
cmp dword [edx], eax
jl 0x100a70d9
mov ecx, dword [esp + 0x50]
inc ecx
inc eax
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x14]
add edx, 0x18
dec ecx
mov dword [esp + 0x14], ecx
jne 0x100a70cb
mov eax, dword [esp + 0x50]
push eax
push esi
call fcn.10099050
push esi
mov dword [esp + 0x4c], eax
call fcn.100a78b0
mov ecx, dword [esp + 0x4c]
mov edx, dword [esp + 0x2c]
push 0
push ecx
push edx
push esi
call fcn.10098970
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x98]
add eax, ecx
push eax
push edx
push 0x37
push ebp
call fcn.10095b10
mov eax, dword [esp + 0x60]
add esp, 0x2c
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x90]
test eax, eax
mov dword [esp + 0x30], 0
jle 0x100a71e1
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x8c]
add ecx, edx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x14], 0
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x34]
cmp dword [edx + eax + 0xc], ecx
jl 0x100a71c2
mov ecx, dword [esp + 0x38]
push ecx
mov ecx, edx
mov edx, dword [ecx + eax + 4]
push edx
mov edx, dword [ecx + eax + 8]
mov eax, dword [ecx + eax]
push edx
push eax
push esi
call fcn.10098760
mov ecx, dword [esp + 0x4c]
add esp, 0x14
cmp ecx, eax
je 0x100a71a9
push ecx
push eax
push 0xf
push ebp
call fcn.10095b10
add esp, 0x10
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x38]
inc ecx
inc eax
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x34], ecx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x30]
add edx, 0x18
inc ecx
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x90]
cmp ecx, edx
mov dword [esp + 0x30], ecx
jl 0x100a7168
push esi
call fcn.10095b50
mov edx, dword [esp + 0x54]
mov dword [esp + 0x18], eax
push eax
mov eax, dword [esp + 0x48]
push edx
push eax
push 0x1f
push ebp
call fcn.10095170
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x94]
push ecx
push edx
push 0x60
push ebp
call fcn.10095b10
mov eax, dword [esp + 0x3c]
push eax
push esi
call fcn.10095b80
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x70]
push ecx
push edx
push esi
call fcn.10099080
mov eax, dword [esp + 0x84]
push eax
call fcn.100b25c0
mov eax, dword [esi + 0x48]
add esp, 0x40
mov dword [esp + 0x14], eax
mov dword [esp + 0x80], eax
inc eax
push esi
mov dword [esi + 0x48], eax
call fcn.10095b50
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x18]
push ecx
push eax
push edx
push 0x2c
push ebp
mov dword [esp + 0x50], eax
call fcn.10095170
mov eax, dword [esp + 0x80]
mov ecx, dword [esp + 0x94]
push eax
push ecx
push 0x46
push ebp
call fcn.10095b10
push esi
mov byte [esp + 0xa5], 1
call fcn.100a78b0
add esp, 0x2c
push ebp
call fcn.10096630
push esi
mov dword [esp + 0x48], eax
call fcn.100a78b0
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
je 0x100a72c9
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x7c]
push edx
push eax
push 0x3e
push ebp
call fcn.10095b10
add esp, 0x10
mov eax, dword [esp + 0x20]
mov dword [esp + 0x34], 0
cmp dword [eax], 0
jle 0x100a734a
mov ecx, dword [esp + 0x10]
test ecx, ecx
je 0x100a7314
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
lea edx, [eax + ecx]
push edx
push eax
mov eax, dword [esp + 0x1c]
push eax
push 0x1d
push ebp
call fcn.10095170
mov eax, dword [esp + 0x48]
add esp, 0x14
test eax, eax
jne 0x100a7337
push 0x20
push ebp
call fcn.10096040
add esp, 8
jmp 0x100a7337
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x24]
add edx, ecx
mov byte [esp + 0x78], 1
push edx
mov edx, dword [eax + 8]
lea ecx, [ecx + ecx*4]
mov eax, dword [edx + ecx*4]
push eax
push esi
call fcn.10096870
add esp, 0xc
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x34]
inc ecx
mov edx, dword [eax]
mov dword [esp + 0x34], ecx
cmp ecx, edx
jl 0x100a72da
mov ecx, dword [esp + 0x64]
mov edx, dword [eax]
mov eax, dword [esp + 0x24]
push 0xfffffffffffffffa
push ecx
mov ecx, dword [esp + 0x64]
push edx
push eax
push ecx
push 0x18
push ebp
call fcn.10095130
push ebp
call fcn.10096630
mov dword [esp + 0x84], eax
inc eax
push eax
push 0
push eax
push 0x19
push ebp
call fcn.10095170
mov edx, dword [esp + 0x54]
mov ecx, dword [esp + 0x90]
mov eax, dword [edx]
mov edx, dword [esp + 0x58]
push eax
push ecx
push edx
push esi
call fcn.100a78f0
mov eax, dword [esp + 0xb4]
add esp, 0x44
push eax
push edi
push 2
push ebp
call fcn.10095b10
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x5c]
push ecx
push edx
push 0x78
push ebp
call fcn.10095b10
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x8c]
push eax
push ecx
push 2
push ebp
call fcn.10095b10
mov edx, dword [esp + 0x94]
push edx
push ebp
call fcn.10095b30
lea eax, [esp + 0xb0]
push eax
push esi
call fcn.100aa7c0
mov ecx, dword [esp + 0x94]
add esp, 0x40
push ecx
push 1
push 7
push ebp
call fcn.10095b10
mov eax, dword [esp + 0x20]
add esp, 0x10
test eax, eax
je 0x100a7428
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x7c]
push edx
push eax
push 0x51
push ebp
call fcn.10095b10
add esp, 0x10
jmp 0x100a7440
mov ecx, dword [esp + 0x48]
push ecx
call fcn.100b25c0
mov edx, dword [esp + 0x78]
push edx
push ebp
call fcn.100898d0
add esp, 0xc
mov eax, dword [esp + 0x70]
push eax
push edi
push 2
push ebp
call fcn.10095b10
mov ecx, dword [esp + 0x78]
push ecx
push 0
push 1
push ebp
call fcn.10095b10
push ebp
call fcn.10096630
mov edx, dword [esp + 0x70]
mov dword [esp + 0x98], eax
push edx
push 1
push 7
push ebp
call fcn.10095b10
push edi
push 3
push ebp
call fcn.100965a0
mov eax, dword [esp + 0xb0]
add esp, 0x40
push eax
push ebp
call fcn.10096610
push ebp
call fcn.10096630
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x7c], eax
add eax, 2
push eax
push ecx
push 0x78
push ebp
call fcn.10095b10
push edi
push 3
push ebp
call fcn.100965a0
lea edx, [esp + 0xa0]
push edx
push esi
call fcn.100aa760
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0x6c]
inc eax
push 8
push eax
push ecx
push esi
mov dword [esp + 0xa4], eax
call fcn.100989e0
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x128]
add esp, 0x40
push edx
mov edx, dword [esp + 0x64]
push eax
mov eax, dword [esp + 0x20]
push ecx
mov ecx, dword [ebx]
push edx
push eax
push 0
push 0
push ecx
push ebx
push esi
call fcn.100a7d00
push edi
push 3
push ebp
call fcn.100965a0
mov edx, dword [esp + 0x60]
push edx
push ebp
call fcn.10096610
lea eax, [esp + 0xb4]
push eax
push esi
call fcn.100aa690
mov ecx, dword [esp + 0xb0]
add esp, 0x44
push ecx
push 3
push ebp
call fcn.100965a0
mov edi, dword [esp + 0x74]
add esp, 0xc
jmp 0x100a77b6
lea edx, [esp + 0x78]
mov dword [esp + 0x4c], 0
push edx
push ebx
call fcn.100aa630
mov edi, eax
add esp, 8
test edi, edi
je 0x100a767d
mov eax, dword [edi + 0x44]
mov ecx, dword [esi]
push eax
push ecx
call fcn.1008f800
mov ecx, dword [esi + 0x48]
push eax
mov dword [esp + 0x60], ecx
inc ecx
mov dword [esi + 0x48], ecx
mov edx, dword [edi + 0x14]
xor ecx, ecx
push esi
mov dword [esp + 0x6c], eax
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x20], ecx
mov dword [esp + 0x34], edx
call fcn.1009e7b0
mov eax, dword [edi]
mov ecx, dword [edi + 0x14]
mov edx, dword [esp + 0x6c]
push eax
push 0
push ecx
push edx
push esi
call fcn.1009b220
mov eax, dword [edi + 0x10]
add esp, 0x24
test eax, eax
je 0x100a7612
mov ecx, dword [esp + 0x10]
mov dl, byte [eax + 0x2e]
test dl, dl
jne 0x100a75e0
test ecx, ecx
je 0x100a75de
mov edx, dword [eax + 0x24]
cmp edx, dword [ecx + 0x24]
jge 0x100a75e0
mov ecx, eax
mov eax, dword [eax + 0x14]
test eax, eax
jne 0x100a75cb
test ecx, ecx
mov dword [esp + 0x10], ecx
je 0x100a7612
mov eax, dword [ecx + 0x24]
mov ecx, dword [edi + 8]
cmp eax, ecx
jge 0x100a7612
mov eax, dword [esp + 0x10]
push eax
push esi
mov ecx, dword [eax + 0x28]
mov dword [esp + 0x2c], ecx
call fcn.1009ebb0
add esp, 8
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x54]
push edx
push eax
push ecx
push 0x27
push ebp
call fcn.10095170
mov eax, dword [esp + 0x40]
add esp, 0x14
test eax, eax
je 0x100a7644
mov edx, eax
push 0xfffffffffffffff0
push edx
push 0xffffffffffffffff
push ebp
call fcn.10089920
add esp, 0x10
mov eax, dword [esp + 0x98]
mov edx, dword [esp + 0x54]
mov ecx, dword [eax + 8]
push ecx
push edx
push 0x20
push ebp
call fcn.10095b10
mov eax, dword [esp + 0x64]
push eax
push 0x2d
push ebp
call fcn.100965a0
mov ecx, dword [esp + 0x2c]
push ecx
push edi
push esi
call fcn.100aa9d0
add esp, 0x28
jmp 0x100a776b
push ebx
mov dword [esp + 0x14], 0
call fcn.100aa5b0
add esp, 4
mov byte [esp + 0x1f], al
test al, al
je 0x100a76df
mov edx, dword [ebx]
mov edi, dword [esp + 0x44]
push 0
mov eax, dword [edx + 8]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x10]
push edx
push edi
call fcn.1009a930
add esp, 0xc
mov dword [esp + 0x10], eax
test eax, eax
mov dword [esp + 0x4c], eax
je 0x100a76df
mov cl, byte [edi + 0x36]
test cl, cl
jne 0x100a76df
mov cl, byte [esp + 0x1f]
mov edx, dword [eax + 8]
cmp cl, 1
setne cl
mov byte [edx + 0xc], cl
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 8]
mov edx, dword [ecx]
mov byte [edx], 0x98
lea eax, [esp + 0x78]
push eax
push esi
call fcn.100aa690
movzx cx, byte [esp + 0x27]
mov eax, dword [esp + 0x50]
push ecx
mov ecx, dword [esp + 0x64]
lea edx, [esp + 0x1c]
push 0
push edx
push eax
push ecx
push esi
call fcn.100ad1d0
mov edi, eax
add esp, 0x20
test edi, edi
jne 0x100a7728
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x44]
push edx
push eax
call fcn.1008c810
add esp, 8
jmp 0x100a781c
lea ecx, [esp + 0x78]
push ecx
push esi
call fcn.100aa7c0
mov eax, dword [esp + 0x18]
add esp, 8
test eax, eax
jne 0x100a7757
mov al, byte [esp + 0x1f]
test al, al
je 0x100a7757
mov edx, dword [edi + 0x18]
push edx
push 0
push 1
push ebp
call fcn.10095b10
add esp, 0x10
push edi
call fcn.100b25c0
lea eax, [esp + 0x7c]
push eax
push esi
call fcn.100aa760
add esp, 0xc
mov edi, dword [esp + 0x68]
mov ecx, dword [esp + 0x3c]
push 8
push edi
push ecx
push esi
mov dword [esp + 0x28], 0
call fcn.100989e0
mov edx, dword [esp + 0xf8]
mov eax, dword [ebx]
push edi
push edi
push edx
push 0xffffffffffffffff
push 0
push 0
push 0
push eax
push ebx
push esi
call fcn.100a7d00
mov ecx, dword [esp + 0x84]
mov edx, dword [esp + 0x7c]
push ecx
push edx
call fcn.1008c810
add esp, 0x40
push edi
push ebp
call fcn.10096610
add esp, 8
mov eax, dword [esp + 0x60]
test eax, eax
jl 0x100a77d6
push str.DISTINCT
push esi
call fcn.100a8320
add esp, 8
mov eax, dword [esp + 0x18]
test eax, eax
je 0x100a7803
push str.ORDER_BY
push esi
call fcn.100a8320
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + 0xf0]
push eax
mov edx, dword [ecx]
push edx
push ebp
push ebx
push esi
call fcn.100a8370
add esp, 0x1c
mov eax, dword [esp + 0xa4]
push eax
push ebp
call fcn.10096610
add esp, 8
mov dword [esp + 0x50], 0
mov edi, dword [esp + 0x50]
mov ecx, dword [esp + 0xa0]
test edi, edi
mov dword [esi + 0x1dc], ecx
jne 0x100a7850
mov edx, dword [esp + 0xe8]
cmp byte [edx], 5
jne 0x100a7850
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x58]
push eax
push ecx
push esi
call fcn.100a8690
add esp, 0xc
mov edx, dword [esp + 0x8c]
mov esi, dword [esp + 0x44]
push edx
push esi
call fcn.1006aec0
mov eax, dword [esp + 0xa0]
push eax
push esi
call fcn.1006aec0
add esp, 0x10
mov eax, edi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xcc
ret
pop edi
pop esi
pop ebp
mov eax, 1
pop ebx
add esp, 0xcc
ret