Function at 0x4608d0
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 + 0x10], 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 0x46096e
movzx eax, byte [edi + 4]
sub eax, 0x74
je 0x460950
dec eax
je 0x460949
dec eax
je 0x460942
mov eax, str.UNION
jmp 0x460955
mov eax, str.INTERSECT
jmp 0x460955
mov eax, str.EXCEPT
jmp 0x460955
mov eax, str.UNION_ALL
push eax
push str.ORDER_BY_clause_should_come_after__s_not_before
push ebx
call fcn.0040ccf0
add esp, 0xc
mov ebx, 1
jmp 0x4611de
cmp dword [ecx + 0x3c], 0
je 0x4609b6
movzx eax, byte [edi + 4]
sub eax, 0x74
je 0x460998
dec eax
je 0x460991
dec eax
je 0x46098a
mov eax, str.UNION
jmp 0x46099d
mov eax, str.INTERSECT
jmp 0x46099d
mov eax, str.EXCEPT
jmp 0x46099d
mov eax, str.UNION_ALL
push eax
push str.LIMIT_clause_should_come_after__s_not_before
push ebx
call fcn.0040ccf0
add esp, 0xc
mov ebx, 1
jmp 0x4611de
mov esi, dword [ebx + 8]
mov dword [esp + 0x14], esi
test esi, esi
jne 0x4609f6
mov ecx, ebx
call fcn.00427c20
mov esi, eax
mov dword [esp + 0x14], esi
mov dword [ebx + 8], esi
test esi, esi
je 0x4609e1
mov edx, 0x9b
mov ecx, esi
call fcn.00427d80
cmp dword [ebx + 0x198], 0
jne 0x4609f6
mov eax, dword [ebx]
test byte [eax + 0x3c], 8
jne 0x4609f6
mov byte [ebx + 0x17], 1
cmp byte [esp + 0x44], 0xc
jne 0x460a76
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 0x460a2b
mov ecx, esi
call fcn.00427ca0
test eax, eax
jne 0x460a5f
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 0x460a71
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 0x460ac4
test byte [edi + 6], 0x80
je 0x460aa2
push str.all_VALUES_must_have_the_same_number_of_terms
push ebx
call fcn.0040ccf0
add esp, 8
mov ebx, 1
jmp 0x4611da
movzx ecx, byte [edi + 4]
call fcn.0045e600
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.0040ccf0
add esp, 0xc
mov ebx, 1
jmp 0x4611da
mov eax, 0x800
test word [edi + 6], ax
je 0x460b3e
lea eax, [esp + 0x44]
push eax
mov edx, edi
mov ecx, ebx
call fcn.00460210
add esp, 4
mov ebx, dword [esp + 0x14]
movzx edx, byte [edi + 4]
mov ecx, dword [esp + 0x1c]
xor eax, eax
cmp byte [edi + 4], 0x74
setne al
push eax
push dword [esp + 0x30]
push dword [esp + 0x38]
call fcn.0045e720
add esp, 0xc
test byte [edi + 6], 8
je 0x4611d6
mov eax, dword [edi]
mov ecx, dword [esp + 0x10]
mov eax, dword [eax]
push 1
mov edx, eax
mov dword [esp + 0x2c], eax
call fcn.0045e490
mov esi, eax
add esp, 4
mov dword [esp + 0x2c], esi
test esi, esi
jne 0x461099
lea ebx, [eax + 7]
jmp 0x4611da
cmp dword [edi + 0x30], 0
je 0x460b5b
mov ecx, dword [ebp + 8]
push ecx
mov edx, edi
mov ecx, ebx
call fcn.004617e0
add esp, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
movzx eax, byte [edi + 4]
sub eax, 0x73
je 0x460e9f
dec eax
je 0x460da0
dec eax
je 0x460e9f
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.00427e40
mov ecx, edi
mov dword [edi + 0x10], eax
call fcn.0045c850
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.00465e40
mov ecx, eax
add esp, 0xc
test ecx, ecx
jne 0x461212
push eax
push dword [esp + 0x3c]
lea edx, [eax + 0x37]
mov ecx, esi
call fcn.00427e40
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.00465e40
mov dword [esp + 0x24], 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 0x460c6e
ja 0x460c68
cmp dword [edi + 0x18], ecx
jbe 0x460c6e
mov dword [edi + 0x18], ecx
mov dword [edi + 0x1c], eax
mov edx, dword [edi + 0x3c]
mov ecx, dword [esp + 0x10]
call fcn.0043a520
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 0x460caf
mov eax, dword [edi + 0x34]
mov ecx, edi
test eax, eax
je 0x460ca1
mov ecx, eax
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x460c98
push dword [ecx]
xor edx, edx
mov ecx, ebx
call fcn.0045f380
add esp, 4
mov ecx, esi
call fcn.004280d0
mov ecx, dword [esp + 0x14]
mov esi, eax
mov dword [esp + 0x40], esi
call fcn.004280d0
mov ecx, dword [esp + 0x1c]
push esi
mov edx, edi
mov ebx, eax
call fcn.0045fc10
mov ecx, dword [esp + 0x18]
add esp, 4
mov edx, 0x69
push esi
push dword [esp + 0x2c]
call fcn.00427e40
mov ecx, dword [esp + 0x24]
call fcn.0043f570
mov ecx, dword [esp + 0x1c]
mov esi, eax
push esi
push dword [esp + 0x34]
mov edx, 0x62
call fcn.00427e40
mov ecx, dword [esp + 0x24]
push 0
push esi
push ebx
push dword [esp + 0x54]
mov edx, 0x41
mov edi, eax
call fcn.00428020
mov ecx, dword [esp + 0x3c]
mov edx, esi
call fcn.0043f590
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.0045d700
mov edx, ebx
mov ebx, dword [esp + 0x50]
add esp, 0x3c
mov ecx, ebx
call fcn.00428140
push edi
mov edi, dword [esp + 0x2c]
push edi
mov edx, 9
call fcn.00427e40
mov edx, esi
mov ecx, ebx
call fcn.00428140
lea eax, [edi + 1]
push 0
push eax
mov edx, 0x3a
call fcn.00427e40
push 0
push edi
mov edx, 0x3a
mov ecx, ebx
call fcn.00427e40
mov edi, dword [esp + 0x3c]
add esp, 0x18
jmp 0x460ae4
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.00465e40
mov ecx, eax
add esp, 4
mov dword [edi + 0x3c], 0
mov dword [edi + 0x40], 0
test ecx, ecx
jne 0x461212
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 0x460e1d
push eax
mov edx, 0x88
mov ecx, esi
call fcn.00427de0
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.00465e40
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x1c], 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 0x460e85
lea edx, [esp + 0x40]
call fcn.0043b3a0
test eax, eax
je 0x460e85
mov eax, dword [esp + 0x40]
test eax, eax
jle 0x460e85
cdq
cmp dword [edi + 0x1c], edx
jb 0x460e85
ja 0x460e7f
cmp dword [edi + 0x18], eax
jbe 0x460e85
mov dword [edi + 0x18], eax
mov dword [edi + 0x1c], edx
mov eax, dword [esp + 0x38]
test eax, eax
je 0x460ae0
mov edx, eax
mov ecx, esi
call fcn.004283d0
jmp 0x460ae0
cmp byte [esp + 0x44], 1
jne 0x460eb0
mov eax, dword [esp + 0x48]
mov dword [esp + 0x28], eax
jmp 0x460ee6
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.00427e40
add esp, 8
mov ecx, edi
mov dword [edi + 0x10], eax
call fcn.0045c850
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.00465e40
mov ecx, eax
add esp, 4
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x4611d6
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.00465e40
mov edx, dword [edi + 0x30]
mov ecx, dword [esp + 0x14]
add esp, 4
mov dword [esp + 0x18], eax
call fcn.0043b1e0
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 0x460fa6
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.0043a520
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 0x460ae0
cmp al, 9
jne 0x460ffe
mov eax, dword [edi + 0x34]
mov ecx, edi
test eax, eax
je 0x460ff0
mov ecx, eax
mov eax, dword [ecx + 0x34]
test eax, eax
jne 0x460fe7
push dword [ecx]
xor edx, edx
mov ecx, ebx
call fcn.0045f380
add esp, 4
mov ecx, esi
call fcn.004280d0
mov ecx, esi
mov ebx, eax
call fcn.004280d0
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
push ebx
mov edi, eax
call fcn.0045fc10
add esp, 4
mov edx, 0x69
push ebx
push dword [esp + 0x2c]
mov ecx, esi
call fcn.00427e40
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.0045d700
mov ecx, dword [esp + 0x38]
add esp, 0x24
mov edx, edi
call fcn.00428140
push esi
mov esi, dword [esp + 0x2c]
push esi
mov edx, 9
call fcn.00427e40
mov edx, ebx
mov ebx, dword [esp + 0x1c]
mov ecx, ebx
call fcn.00428140
push 0
push esi
mov edx, 0x3a
call fcn.00427e40
mov edi, dword [esp + 0x34]
add esp, 0x10
jmp 0x460ae4
cmp dword [esp + 0x28], 0
lea ecx, [esi + 0x14]
mov dword [esp + 0x30], ecx
jle 0x461130
mov esi, dword [esp + 0x1c]
mov dword [esp + 0x38], 0
xor ebx, ebx
lea esp, [esp]
mov edx, dword [edi + 0x34]
test edx, edx
je 0x4610dc
push ebx
mov ecx, esi
call fcn.0045fff0
mov ecx, dword [esp + 0x34]
add esp, 4
test eax, eax
jne 0x4610f9
jmp 0x4610de
xor eax, eax
mov edx, dword [edi]
cmp ebx, dword [edx]
jge 0x4610f9
mov edx, dword [edx + 4]
mov eax, dword [esp + 0x38]
mov ecx, esi
mov edx, dword [edx + eax]
call fcn.004398a0
mov ecx, dword [esp + 0x30]
mov dword [ecx], eax
test eax, eax
jne 0x461108
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 8]
mov dword [ecx], eax
add dword [esp + 0x38], 0x18
inc ebx
add ecx, 4
mov dword [esp + 0x30], ecx
cmp ebx, dword [esp + 0x28]
jl 0x4610c0
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x2c]
jmp 0x461130
lea eax, [edi + 0x10]
mov dword [esp + 0x38], 0
mov dword [esp + 0x40], eax
mov edi, eax
mov eax, dword [edi]
test eax, eax
js 0x4611b6
cmp dword [ebx + 0x20], eax
jbe 0x46115e
mov ecx, dword [ebx + 4]
mov esi, dword [esp + 0x28]
lea edx, [eax + eax*4]
mov dword [ecx + edx*4 + 8], esi
mov esi, dword [esp + 0x2c]
inc dword [esi]
mov edx, dword [ebx + 4]
mov ecx, dword [ebx]
test edx, edx
je 0x461191
cmp byte [ecx + 0x40], 0
jne 0x461191
lea eax, [eax + eax*4]
push dword [edx + eax*4 + 0x10]
lea esi, [edx + eax*4]
movsx edx, byte [esi + 1]
call fcn.004283f0
mov eax, dword [esp + 0x30]
mov dword [esi + 0x10], eax
mov byte [esi + 1], 0xfa
mov esi, eax
jmp 0x46119c
push esi
mov edx, 0xfffffffa
call fcn.004283f0
mov ecx, dword [esp + 0x3c]
inc ecx
mov dword [edi], 0xffffffff
add esp, 4
add edi, 4
mov dword [esp + 0x38], ecx
cmp ecx, 2
jl 0x461141
mov edi, dword [esp + 0x24]
mov edi, dword [edi + 0x34]
mov dword [esp + 0x24], edi
test edi, edi
jne 0x461130
dec dword [esi]
jne 0x4611d6
push esi
call fcn.0040a630
add esp, 4
mov ebx, dword [esp + 0x18]
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 0x461209
mov edx, edi
mov ecx, esi
call fcn.0045c5e0
mov edx, edi
mov ecx, esi
call fcn.0040a6d0
pop edi
pop esi
mov eax, ebx
pop ebx
mov esp, ebp
pop ebp
ret
mov ebx, eax
jmp 0x4611da