Function at 0x1008a8b0
Capabilities:
Contain obfuscated stackstrings

Disassembly:
sub esp, 0x50
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x54]
mov edx, dword [ecx]
mov dword [esp + 4], edx
mov edx, dword [eax]
push ebx
mov dword [esp + 0x24], edx
mov edx, dword [eax + 4]
push ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 8]
mov eax, dword [eax + 0xc]
push esi
mov esi, dword [ebp + 0x3c]
xor ebx, ebx
mov dword [esp + 0x34], edx
mov dword [esp + 0x38], eax
push edi
mov dword [esp + 0x18], ebx
cmp dword [esi + 0x38], ebx
je 0x1008a93c
movzx eax, byte [ebp + 4]
sub eax, 0x71
je 0x1008a91a
sub eax, 1
je 0x1008a913
sub eax, 1
je 0x1008a90c
mov eax, str.UNION
jmp 0x1008a91f
mov eax, str.INTERSECT
jmp 0x1008a91f
mov eax, str.EXCEPT
jmp 0x1008a91f
mov eax, str.UNION_ALL
push eax
push str.ORDER_BY_clause_should_come_after__s_not_before
mov edi, ecx
call fcn.10041f80
add esp, 8
mov dword [esp + 0x10], 1
jmp 0x1008b2ae
cmp dword [esi + 0x48], ebx
je 0x1008a988
movzx eax, byte [ebp + 4]
sub eax, 0x71
je 0x1008a97b
sub eax, 1
je 0x1008a96e
sub eax, 1
je 0x1008a961
mov eax, str.UNION
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x1008a925
mov eax, str.INTERSECT
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x1008a925
mov eax, str.EXCEPT
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x1008a925
mov eax, str.UNION_ALL
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x1008a925
mov edi, dword [ecx + 8]
cmp edi, ebx
jne 0x1008a9b2
mov eax, dword [esp + 0x14]
call fcn.1005b4e0
mov ecx, dword [esp + 0x64]
mov edi, eax
mov dword [ecx + 8], eax
cmp edi, ebx
je 0x1008a9b2
push 0x94
call fcn.1005b710
add esp, 4
mov cl, byte [esp + 0x30]
cmp cl, 9
jne 0x1008aa26
mov edx, dword [ebp]
mov eax, dword [edx]
mov ecx, dword [esp + 0x34]
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x1c]
cmp dword [edi + 0x20], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x68], eax
jg 0x1008a9e5
call fcn.1005b630
test eax, eax
jne 0x1008aa0e
mov eax, dword [esp + 0x68]
inc dword [edi + 0x1c]
mov ecx, dword [esp + 0x2c]
lea edx, [eax + eax*4]
mov eax, dword [edi + 4]
lea eax, [eax + edx*4]
mov edx, dword [esp + 0x28]
mov byte [eax], 0x33
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov ecx, dword [edi + 4]
cmp ecx, ebx
je 0x1008aa20
mov eax, dword [edi + 0x1c]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 8
mov cl, 8
mov byte [esp + 0x30], cl
mov eax, dword [ebp]
mov edx, dword [esi]
mov eax, dword [eax]
cmp eax, dword [edx]
je 0x1008aa7d
test byte [ebp + 6], 0x80
je 0x1008aa55
mov edi, dword [esp + 0x64]
push str.all_VALUES_must_have_the_same_number_of_terms
call fcn.10041f80
add esp, 4
mov dword [esp + 0x10], 1
jmp 0x1008b2ae
movzx eax, byte [ebp + 4]
call fcn.10089330
mov edi, dword [esp + 0x64]
push eax
push str.SELECTs_to_the_left_and_right_of__s_do_not_have_the_same_number_of_result_columns
call fcn.10041f80
add esp, 8
mov dword [esp + 0x10], 1
jmp 0x1008b2ae
cmp dword [ebp + 0x38], ebx
je 0x1008aa9d
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0x64]
push ecx
push ebp
push edx
call 0x1008b760
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
movzx eax, byte [ebp + 4]
sub eax, 0x70
je 0x1008af0e
sub eax, 1
je 0x1008ae15
sub eax, 1
je 0x1008af0e
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x48]
mov dword [esp + 0x68], eax
add eax, 2
mov dword [ecx + 0x48], eax
mov ecx, dword [edi + 0x1c]
cmp dword [edi + 0x20], ecx
mov dword [esp + 0x2c], ecx
jg 0x1008aaed
call fcn.1005b630
test eax, eax
je 0x1008aae9
mov ecx, 1
jmp 0x1008ab12
mov ecx, dword [esp + 0x2c]
mov edx, dword [edi + 4]
inc dword [edi + 0x1c]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x68]
mov byte [eax], 0x33
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [ebp + 0x44]
mov dword [ebp + 0x10], ecx
or word [eax + 6], 8
mov eax, dword [esp + 0x68]
lea edx, [esp + 0x40]
push edx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 0x1e8]
push esi
push eax
mov byte [esp + 0x4c], 1
mov byte [esp + 0x4d], bl
mov dword [esp + 0x54], ebx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x30], ecx
call fcn.1008ea30
add esp, 0xc
mov dword [esp + 0x10], eax
cmp eax, ebx
jne 0x1008b2ae
mov ecx, dword [edi + 0x1c]
cmp dword [edi + 0x20], ecx
mov dword [esp + 0x2c], ecx
jg 0x1008ab7f
call fcn.1005b630
test eax, eax
je 0x1008ab7b
mov eax, 1
jmp 0x1008aba7
mov ecx, dword [esp + 0x2c]
mov edx, dword [edi + 4]
inc dword [edi + 0x1c]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x68]
inc edx
mov byte [eax], 0x33
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], ebx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, ecx
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x14], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x28], ecx
inc eax
lea ecx, [esp + 0x40]
push ecx
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x68]
mov dword [ebp + 0x3c], ebx
mov dword [ebp + 0x48], ebx
mov dword [ebp + 0x4c], ebx
mov edx, dword [eax + 0x1e8]
push ebp
push eax
mov dword [esp + 0x2c], edx
call fcn.1008ea30
mov edx, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x24]
mov dword [ebp + 0x3c], esi
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x20]
mov esi, dword [esi + 0x24]
add esp, 0xc
mov dword [esp + 0x18], edx
cmp ecx, esi
jb 0x1008ac11
ja 0x1008ac0b
mov edx, dword [ebp + 0x20]
cmp edx, eax
jbe 0x1008ac11
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x24], esi
mov eax, dword [ebp + 0x48]
mov ecx, dword [esp + 0x14]
push eax
push ecx
call fcn.1006ad60
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
add esp, 8
cmp byte [esp + 0x30], 5
mov dword [ebp + 0x48], edx
mov dword [ebp + 0x4c], eax
jne 0x1008ac5a
mov eax, dword [ebp + 0x3c]
mov ecx, ebp
cmp eax, ebx
je 0x1008ac49
mov ecx, eax
mov eax, dword [ecx + 0x3c]
cmp eax, ebx
jne 0x1008ac40
mov ecx, dword [ecx]
mov edx, dword [esp + 0x64]
push ecx
push ebx
push edx
call fcn.10089f20
add esp, 0xc
mov eax, edi
call fcn.1005b940
mov esi, eax
mov eax, edi
mov dword [esp + 0x1c], esi
call fcn.1005b940
push esi
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x68]
push ebp
push eax
call fcn.1008a5e0
mov esi, dword [edi + 0x1c]
add esp, 0xc
cmp dword [edi + 0x20], esi
jg 0x1008ac92
call fcn.1005b630
test eax, eax
jne 0x1008acbb
mov edx, dword [edi + 4]
inc dword [edi + 0x1c]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x1c]
mov byte [eax], 0x65
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [esp + 0x64]
call fcn.1006f9d0
mov ecx, dword [edi + 0x1c]
cmp dword [edi + 0x20], ecx
mov esi, eax
mov dword [esp + 0x2c], ecx
jg 0x1008ace9
call fcn.1005b630
test eax, eax
je 0x1008ace5
mov dword [esp + 0x2c], 1
jmp 0x1008ad12
mov ecx, dword [esp + 0x2c]
mov edx, dword [edi + 4]
inc dword [edi + 0x1c]
lea eax, [ecx + ecx*4]
lea eax, [edx + eax*4]
mov edx, dword [esp + 0x68]
mov byte [eax], 0x5c
mov byte [eax + 3], bl
mov dword [eax + 4], edx
mov dword [eax + 8], esi
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov dword [esp + 0x2c], ecx
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x28]
push ebx
push 0x3c
push edi
mov eax, esi
inc edx
call fcn.1005b8d0
mov edx, dword [esp + 0x70]
add esp, 0xc
call fcn.1006f9f0
mov ecx, dword [esp + 0x1c]
mov esi, dword [esp + 0x28]
mov eax, dword [ebp]
push ecx
mov ecx, dword [eax]
push esi
lea edx, [esp + 0x38]
push edx
mov edx, dword [esp + 0x74]
push ebx
push ebx
push ecx
push edx
push eax
mov eax, dword [esp + 0x84]
push ebp
push eax
call fcn.100889d0
push esi
mov edx, edi
call fcn.1005b9a0
mov esi, dword [edi + 0x1c]
add esp, 0x2c
cmp dword [edi + 0x20], esi
jg 0x1008ad79
call fcn.1005b630
test eax, eax
jne 0x1008ada2
mov edx, dword [edi + 4]
inc dword [edi + 0x1c]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x2c]
mov byte [eax], 7
mov byte [eax + 3], bl
mov dword [eax + 4], ecx
mov dword [eax + 8], edx
mov dword [eax + 0xc], ebx
mov dword [eax + 0x10], ebx
mov byte [eax + 1], bl
mov eax, dword [esp + 0x1c]
push eax
mov edx, edi
call fcn.1005b9a0
mov esi, dword [edi + 0x1c]
add esp, 4
cmp dword [edi + 0x20], esi
jg 0x1008adc2
call fcn.1005b630
test eax, eax
jne 0x1008ade8
mov edx, dword [edi + 4]
inc dword [edi + 0x1c]
lea ecx, [esi + esi*4]
lea eax, [edx + ecx*4]
mov ecx, dword [esp + 0x68]
inc ecx
mov byte [eax], 0x55
push ebp
add esi, ebx
movsb byte es:[edi], byte [esi]
or dword [eax + 1], edi
adc al, 0x53
inc ebp
fistp word [ecx - 0x3a]
inc ebp
loopne 0x1008b2ff
mov byte [ebp - 0x1f], 0x59
mov byte [ebp - 0x1e], 0x52
mov byte [ebp - 0x1d], 0x6a
mov byte [ebp - 0x1c], 0x2b
call fcn.1008ae74
push eax
push esi
push dword [ebp + 8]
call fcn.1008ae29
add esp, 0x30
mov dword [ebp - 0xb8], eax
call fcn.1008ae64
pop ecx
lcall 0xff7c, 0x9d88f3d8
invalid
mov byte [ebp - 0x80], 0x51
mov byte [ebp - 0x7f], 0x73
mov byte [ebp - 0x7e], 0x62
mov byte [ebp - 0x7d], 0x5b
mov byte [ebp - 0x7c], 0x79
mov byte [ebp - 0x7b], 0x72
mov byte [ebp - 0x7a], 0x63
mov byte [ebp - 0x79], 0x7a
mov byte [ebp - 0x78], 0x73
mov byte [ebp - 0x77], 0x5e
mov byte [ebp - 0x76], 0x77
mov byte [ebp - 0x75], 0x78
mov byte [ebp - 0x74], 0x72
mov byte [ebp - 0x73], 0x7a
mov byte [ebp - 0x72], 0x73
mov byte [ebp - 0x71], 0x57
mov byte [ebp - 0x70], 0x16
call fcn.1008ae64
mov ecx, 0x8d6ca20e
test dword [edi + edi*8 - 1], edi
call dword [eax - 0x18]
sbb al, 0xfb
invalid