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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x74
xor eax, eax
push ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 8]
push esi
movq xmm0, qword [eax]
push edi
mov edi, edx
mov ebx, ecx
mov ecx, dword [edi + 0x34]
mov esi, dword [ebx]
movq qword [esp + 0x44], xmm0
movq xmm0, qword [eax + 8]
mov eax, dword [eax + 0x10]
movq qword [esp + 0x4c], xmm0
mov dword [esp + 0x54], eax
cmp dword [ecx + 0x30], 0
mov dword [esp + 0x24], edi
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x10], esi
mov dword [esp + 0x20], ecx
je 0x49f0ae
movzx eax, byte [edi + 4]
sub eax, 0x74
je 0x49f090
dec eax
je 0x49f089
dec eax
je 0x49f082
mov eax, str.UNION
jmp 0x49f095
mov eax, str.INTERSECT
jmp 0x49f095
mov eax, str.EXCEPT
jmp 0x49f095
mov eax, str.UNION_ALL
push eax
push str.ORDER_BY_clause_should_come_after__s_not_before
push ebx
call fcn.0044fa00
add esp, 0xc
mov ebx, 1
jmp 0x49f8cf
cmp dword [ecx + 0x3c], 0
je 0x49f0f6
movzx eax, byte [edi + 4]
sub eax, 0x74
je 0x49f0d8
dec eax
je 0x49f0d1
dec eax
je 0x49f0ca
mov eax, str.UNION
jmp 0x49f0dd
mov eax, str.INTERSECT
jmp 0x49f0dd
mov eax, str.EXCEPT
jmp 0x49f0dd
mov eax, str.UNION_ALL
push eax
push str.LIMIT_clause_should_come_after__s_not_before
push ebx
call fcn.0044fa00
add esp, 0xc
mov ebx, 1
jmp 0x49f8cf
mov ecx, ebx
call fcn.0049e560
cmp byte [esp + 0x44], 0xc
mov esi, eax
mov dword [esp + 0x18], esi
jne 0x49f183
mov eax, dword [edi]
mov ecx, dword [esi + 0x20]
mov eax, dword [eax]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], eax
mov eax, dword [esi + 0x18]
mov dword [esp + 0x38], ecx
cmp dword [eax + 0x54], ecx
jg 0x49f138
mov ecx, esi
call fcn.0046a3a0
test eax, eax
jne 0x49f16c
mov ecx, dword [esp + 0x38]
mov eax, dword [esi + 4]
inc dword [esi + 0x20]
mov edx, dword [esp + 0x28]
lea ecx, [ecx + ecx*4]
mov dword [eax + ecx*4 + 4], edx
mov edx, dword [esp + 0x3c]
mov word [eax + ecx*4], 0x37
mov byte [eax + ecx*4 + 3], 0
mov dword [eax + ecx*4 + 8], edx
mov dword [eax + ecx*4 + 0xc], 0
mov dword [eax + ecx*4 + 0x10], 0
mov ecx, dword [esi + 4]
test ecx, ecx
je 0x49f17e
mov eax, dword [esi + 0x20]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], 8
mov byte [esp + 0x44], 0xe
mov edx, dword [esp + 0x20]
mov eax, dword [edi]
mov ecx, dword [edx]
mov eax, dword [eax]
cmp eax, dword [ecx]
je 0x49f1d1
test byte [edi + 6], 0x80
je 0x49f1af
push str.all_VALUES_must_have_the_same_number_of_terms
push ebx
call fcn.0044fa00
add esp, 8
mov ebx, 1
jmp 0x49f8cb
movzx ecx, byte [edi + 4]
call fcn.0049d1a0
push eax
push str.SELECTs_to_the_left_and_right_of__s_do_not_have_the_same_number_of_result_columns
push ebx
call fcn.0044fa00
add esp, 0xc
mov ebx, 1
jmp 0x49f8cb
mov eax, 0x800
test word [edi + 6], ax
je 0x49f1f2
lea eax, [esp + 0x44]
push eax
mov edx, edi
mov ecx, ebx
call fcn.0049e9b0
add esp, 4
jmp 0x49f74f
cmp dword [edi + 0x30], 0
je 0x49f20f
mov ecx, dword [ebp + 8]
push ecx
mov edx, edi
mov ecx, ebx
call fcn.0049fdd0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edi + 4]
sub eax, 0x73
je 0x49f555
dec eax
je 0x49f456
dec eax
je 0x49f555
mov ecx, dword [ebx + 0x44]
push 0
lea eax, [ecx + 1]
mov dword [esp + 0x3c], eax
mov dword [esp + 0x2c], ecx
inc eax
push ecx
mov edx, 0x37
mov ecx, esi
mov dword [ebx + 0x44], eax
call fcn.0046a540
mov ecx, edi
mov dword [edi + 0x10], eax
call fcn.0049b4f0
or word [eax + 6], 8
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x64], eax
mov eax, dword [ebx + 0x1d4]
mov dword [esp + 0x38], eax
lea eax, [esp + 0x60]
push eax
mov ecx, ebx
mov word [esp + 0x64], 1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x70], 0
call fcn.004a3e40
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x49f903
push eax
push dword [esp + 0x3c]
lea edx, [eax + 0x37]
mov ecx, esi
call fcn.0046a540
mov dword [edi + 0x14], eax
mov eax, dword [edi + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [edi + 0x40]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x64], eax
mov dword [edi + 0x34], 0
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov eax, dword [ebx + 0x1d4]
mov dword [esp + 0x34], eax
lea eax, [esp + 0x60]
push eax
mov edx, edi
mov ecx, ebx
call fcn.004a3e40
mov dword [esp + 0x20], eax
mov eax, dword [edi + 0x34]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x2c]
mov dword [edi + 0x34], eax
mov ecx, dword [eax + 0x18]
mov eax, dword [eax + 0x1c]
add esp, 0xc
cmp dword [edi + 0x1c], eax
jb 0x49f322
ja 0x49f31c
cmp dword [edi + 0x18], ecx
jbe 0x49f322
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], eax
mov edx, dword [edi + 0x3c]
mov ecx, dword [esp + 0x10]
call fcn.0047bde0
cmp byte [esp + 0x44], 9
mov eax, dword [esp + 0x3c]
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x40]
mov dword [edi + 0x40], eax
jne 0x49f367
mov eax, dword [edi + 0x34]
mov ecx, edi
test eax, eax
je 0x49f359
lea esp, [esp]
mov ecx, eax
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x49f350
push dword [ecx]
xor edx, edx
mov ecx, ebx
call fcn.0049dd20
add esp, 4
mov ecx, esi
call fcn.0046a7d0
mov ecx, dword [esp + 0x18]
mov esi, eax
mov dword [esp + 0x40], esi
call fcn.0046a7d0
mov ecx, dword [esp + 0x1c]
push esi
mov edx, edi
mov ebx, eax
call fcn.0049e5b0
mov ecx, dword [esp + 0x1c]
add esp, 4
mov edx, 0x69
push esi
push dword [esp + 0x2c]
call fcn.0046a540
mov ecx, dword [esp + 0x24]
call fcn.00480ba0
mov ecx, dword [esp + 0x20]
mov esi, eax
push esi
push dword [esp + 0x34]
mov edx, 0x62
call fcn.0046a540
mov ecx, dword [esp + 0x28]
push 0
push esi
push ebx
push dword [esp + 0x54]
mov edx, 0x41
mov edi, eax
call fcn.0046a720
mov ecx, dword [esp + 0x3c]
mov edx, esi
call fcn.00480bc0
mov esi, dword [esp + 0x60]
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x3c]
push esi
push ebx
lea eax, [esp + 0x6c]
push eax
push 0
push 0
push dword [esp + 0x5c]
push dword [edx]
call fcn.0049c3a0
mov ecx, dword [esp + 0x54]
add esp, 0x3c
mov edx, ebx
call fcn.0046a840
mov ebx, dword [esp + 0x28]
push edi
push ebx
mov edx, 9
call fcn.0046a540
mov edx, esi
mov esi, dword [esp + 0x20]
mov ecx, esi
call fcn.0046a840
lea eax, [ebx + 1]
push 0
push eax
mov edx, 0x3a
call fcn.0046a540
push 0
push ebx
mov edx, 0x3a
mov ecx, esi
call fcn.0046a540
add esp, 0x18
jmp 0x49f747
xor eax, eax
mov dword [esp + 0x38], eax
mov eax, dword [edi + 8]
mov dword [edx + 8], eax
mov eax, dword [edi + 0xc]
mov dword [edx + 0xc], eax
mov eax, dword [edi + 0x3c]
mov dword [edx + 0x3c], eax
mov eax, dword [edi + 0x40]
mov dword [edx + 0x40], eax
mov eax, dword [ebx + 0x1d4]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x44]
push eax
mov ecx, ebx
call fcn.004a3e40
mov ecx, eax
add esp, 4
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
test ecx, ecx
jne 0x49f903
mov ecx, dword [esp + 0x20]
mov dword [edi + 0x34], eax
mov eax, dword [ecx + 8]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [edi + 8]
test eax, eax
je 0x49f4d3
push eax
mov edx, 0x88
mov ecx, esi
call fcn.0046a4e0
add esp, 4
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x1d4]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x44]
push eax
mov edx, edi
mov ecx, ebx
call fcn.004a3e40
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
mov eax, dword [edi + 0x34]
mov dword [edi + 0x34], ecx
mov dword [esp + 0x38], eax
mov eax, dword [ecx + 0x18]
add esp, 4
add dword [edi + 0x18], eax
mov eax, dword [ecx + 0x1c]
adc dword [edi + 0x1c], eax
mov ecx, dword [ecx + 0x3c]
test ecx, ecx
je 0x49f53b
lea edx, [esp + 0x40]
call fcn.0047cc60
test eax, eax
je 0x49f53b
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x49f53b
cdq
cmp dword [edi + 0x1c], edx
jb 0x49f53b
ja 0x49f535
cmp dword [edi + 0x18], eax
jbe 0x49f53b
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x49f74f
mov edx, eax
mov ecx, esi
call fcn.0046aa60
jmp 0x49f74f
cmp byte [esp + 0x44], 1
jne 0x49f566
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], eax
jmp 0x49f59c
mov ecx, dword [ebx + 0x44]
push 0
lea eax, [ecx + 1]
mov dword [esp + 0x2c], ecx
push ecx
mov edx, 0x37
mov ecx, esi
mov dword [ebx + 0x44], eax
call fcn.0046a540
add esp, 8
mov ecx, edi
mov dword [edi + 0x10], eax
call fcn.0049b4f0
or word [eax + 6], 8
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x28]
mov dword [esp + 0x70], eax
mov eax, dword [ebx + 0x1d4]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x6c]
push eax
mov ecx, ebx
mov word [esp + 0x70], 1
mov dword [esp + 0x78], 0
mov dword [esp + 0x7c], 0
call fcn.004a3e40
mov ecx, eax
add esp, 4
mov dword [esp + 0x14], ecx
test ecx, ecx
jne 0x49f8c7
cmp byte [edi + 4], 0x75
mov dword [edi + 0x34], ecx
mov ecx, dword [edi + 0x3c]
sete al
inc al
mov dword [esp + 0x40], ecx
mov ecx, dword [edi + 0x40]
mov byte [esp + 0x6c], al
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
mov eax, dword [ebx + 0x1d4]
mov dword [esp + 0x2c], eax
lea eax, [esp + 0x6c]
mov dword [esp + 0x3c], ecx
push eax
mov edx, edi
mov ecx, ebx
call fcn.004a3e40
mov edx, dword [edi + 0x30]
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x14], eax
call fcn.0047caa0
cmp byte [edi + 4], 0x73
mov eax, dword [edi + 0x34]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x34], eax
mov dword [edi + 0x34], ecx
mov dword [edi + 0x30], 0
jne 0x49f65c
mov eax, dword [ecx + 0x18]
add dword [edi + 0x18], eax
mov eax, dword [ecx + 0x1c]
adc dword [edi + 0x1c], eax
mov edx, dword [edi + 0x3c]
mov ecx, dword [esp + 0x10]
call fcn.0047bde0
mov eax, dword [esp + 0x40]
mov dword [edi + 0x3c], eax
mov eax, dword [esp + 0x3c]
mov dword [edi + 0x40], eax
mov al, byte [esp + 0x44]
mov dword [edi + 8], 0
mov dword [edi + 0xc], 0
cmp al, 1
je 0x49f74f
cmp al, 9
jne 0x49f6b7
mov eax, dword [edi + 0x34]
mov ecx, edi
test eax, eax
je 0x49f6a9
lea ecx, [ecx]
mov ecx, eax
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x49f6a0
push dword [ecx]
xor edx, edx
mov ecx, ebx
call fcn.0049dd20
add esp, 4
mov ecx, esi
call fcn.0046a7d0
mov ecx, esi
mov ebx, eax
call fcn.0046a7d0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push ebx
mov edi, eax
call fcn.0049e5b0
add esp, 4
mov edx, 0x69
push ebx
push dword [esp + 0x2c]
mov ecx, esi
call fcn.0046a540
mov ecx, dword [esp + 0x24]
mov esi, dword [esi + 0x20]
push ebx
push edi
lea eax, [esp + 0x54]
push eax
mov eax, dword [esp + 0x38]
push 0
push 0
push dword [esp + 0x44]
mov edx, eax
push dword [eax]
call fcn.0049c3a0
mov ecx, dword [esp + 0x3c]
add esp, 0x24
mov edx, edi
call fcn.0046a840
mov edi, dword [esp + 0x28]
push esi
push edi
mov edx, 9
mov esi, ecx
call fcn.0046a540
mov edx, ebx
mov ecx, esi
call fcn.0046a840
push 0
push edi
mov edx, 0x3a
call fcn.0046a540
add esp, 0x10
mov ebx, dword [esp + 0x1c]
mov edi, dword [esp + 0x24]
movzx edx, byte [edi + 4]
xor eax, eax
cmp byte [edi + 4], 0x74
mov ecx, ebx
setne al
push eax
push dword [esp + 0x30]
push dword [esp + 0x38]
call fcn.0049d220
add esp, 0xc
test byte [edi + 6], 8
je 0x49f8c7
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
push 1
mov edx, eax
mov dword [esp + 0x30], eax
call fcn.0049d090
add esp, 4
mov dword [esp + 0x28], eax
test eax, eax
jne 0x49f7a1
lea ebx, [eax + 7]
jmp 0x49f8cb
cmp dword [esp + 0x2c], 0
lea ecx, [eax + 0x14]
mov dword [esp + 0x30], ecx
jle 0x49f820
mov dword [esp + 0x38], 0
xor esi, esi
lea esp, [esp]
mov edx, dword [edi + 0x34]
test edx, edx
je 0x49f7dc
push esi
mov ecx, ebx
call fcn.0049e840
mov ecx, dword [esp + 0x34]
add esp, 4
test eax, eax
jne 0x49f7f9
jmp 0x49f7de
xor eax, eax
mov edx, dword [edi]
cmp esi, dword [edx]
jge 0x49f7f9
mov edx, dword [edx + 4]
mov eax, dword [esp + 0x38]
mov ecx, ebx
mov edx, dword [edx + eax]
call fcn.0047b200
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
test eax, eax
jne 0x49f808
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov dword [ecx], eax
add dword [esp + 0x38], 0x18
inc esi
add ecx, 4
mov dword [esp + 0x30], ecx
cmp esi, dword [esp + 0x2c]
jl 0x49f7c0
mov esi, dword [esp + 0x18]
nop
lea ebx, [edi + 0x10]
mov edi, dword [esp + 0x28]
mov dword [esp + 0x38], 0
nop
mov eax, dword [ebx]
test eax, eax
js 0x49f8a3
cmp dword [esi + 0x20], eax
jbe 0x49f84d
mov ecx, dword [esi + 4]
mov edi, dword [esp + 0x2c]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 8], edi
mov edi, dword [esp + 0x28]
inc dword [edi]
mov edx, dword [esi + 4]
mov ecx, dword [esi]
test edx, edx
je 0x49f87e
cmp byte [ecx + 0x40], 0
jne 0x49f87e
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx edx, byte [esi + 1]
call fcn.0046aa80
mov dword [esi + 0x10], edi
mov byte [esi + 1], 0xfa
mov esi, dword [esp + 0x1c]
jmp 0x49f889
push edi
mov edx, 0xfffffffa
call fcn.0046aa80
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [ebx], 0xffffffff
add esp, 4
add ebx, 4
mov dword [esp + 0x38], ecx
cmp ecx, 2
jl 0x49f830
mov edi, dword [esp + 0x24]
mov edi, dword [edi + 0x34]
mov dword [esp + 0x24], edi
test edi, edi
jne 0x49f820
mov eax, dword [esp + 0x28]
dec dword [eax]
jne 0x49f8c7
push eax
call fcn.0044d3b0
add esp, 4
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov ecx, dword [ebp + 8]
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0x34]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x50]
mov dword [ecx + 0xc], eax
test edi, edi
je 0x49f8fa
mov edx, edi
mov ecx, esi
call fcn.0049b280
mov edx, edi
mov ecx, esi
call fcn.0044d450
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, eax
jmp 0x49f8cb