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

Disassembly:
sub esp, 0x24
push ebx
push ebp
mov ebp, dword [esp + 0x34]
xor ecx, ecx
cmp ebp, ecx
push esi
push edi
mov edi, dword [esp + 0x38]
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x1c], ecx
je 0x440b36
mov eax, dword [ebp + 0x20]
cmp eax, ecx
mov dword [esp + 0x14], eax
je 0x440b36
cmp dword [eax + 0x1c], ecx
je 0x440b4a
movzx eax, byte [ebp + 4]
sub eax, 0x6b
je 0x440b21
dec eax
je 0x440b1a
dec eax
je 0x440b13
mov eax, str.UNION
jmp 0x440b26
mov eax, str.INTERSECT
jmp 0x440b26
mov eax, str.EXCEPT
jmp 0x440b26
mov eax, str.UNION_ALL
push eax
push str.ORDER_BY_clause_should_come_after__s_not_before
mov esi, edi
call fcn.0041e420
add esp, 8
mov dword [esp + 0x3c], 1
mov eax, dword [esp + 0x3c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
cmp dword [eax + 0x28], ecx
je 0x440b60
movzx eax, byte [ebp + 4]
call fcn.004142c0
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x440b2c
mov esi, dword [edi + 0xc]
cmp esi, ecx
jne 0x440b77
mov ebx, dword [edi]
call fcn.0041aee0
mov esi, eax
test esi, esi
mov dword [edi + 0xc], eax
je 0x440b36
mov ebx, dword [esp + 0x40]
cmp ebx, 8
jne 0x440ba6
mov eax, dword [esp + 0x44]
push 0
push eax
push 0x7a
call fcn.0041f960
mov ebx, 7
add esp, 0xc
mov dword [esp + 0x2c], eax
mov dword [esp + 0x1c], 1
mov dword [esp + 0x40], ebx
mov al, byte [ebp + 4]
mov edx, dword [ebp + 0x1c]
movzx ecx, al
add ecx, 0xffffff96
cmp ecx, 3
mov dword [esp + 0x10], edx
ja case.default.0x440bbf
jmp dword [ecx*4 + 0x441328]
test edx, edx
jne case.0x440bbf.106
mov eax, dword [esp + 0x48]
mov ecx, dword [ebp + 0x28]
mov ebx, dword [esp + 0x14]
push eax
push 0
push 0
mov dword [esp + 0x2c], edx
mov dword [ebx + 0x28], ecx
mov edx, dword [ebp + 0x2c]
mov ecx, dword [esp + 0x50]
push 0
push ecx
mov dword [ebx + 0x2c], edx
mov edx, dword [esp + 0x54]
push edx
push ebx
push edi
call fcn.00441560
xor ecx, ecx
add esp, 0x20
cmp eax, ecx
mov dword [esp + 0x3c], eax
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], ecx
jne 0x440b3e
mov dword [ebp + 0x20], ecx
mov eax, dword [ebx + 0x30]
test eax, eax
mov dword [ebp + 0x30], eax
mov ecx, dword [ebx + 0x34]
mov dword [ebp + 0x34], ecx
jl 0x440c39
push 0
push eax
push 0x78
call fcn.0041f960
add esp, 0xc
mov dword [esp + 0x20], eax
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
push edx
push 0
push 0
push 0
push eax
push ecx
push ebp
push edi
call fcn.00441560
add esp, 0x20
test eax, eax
mov dword [esp + 0x3c], eax
mov dword [ebp + 0x20], ebx
jne 0x440b3e
mov eax, dword [esp + 0x20]
test eax, eax
je case.default.0x440bbf
mov ecx, esi
call fcn.004127a0
jmp case.default.0x440bbf
xor ecx, ecx
cmp al, 0x6b
setne cl
mov dword [esp + 0x18], 0
dec ecx
and ecx, 6
inc ecx
mov eax, ecx
cmp ebx, eax
mov dword [esp + 0x20], eax
jne 0x440cb5
test edx, edx
jne 0x440cb5
mov eax, dword [ebp + 0x28]
test eax, eax
jne 0x440cb5
mov eax, dword [ebp + 0x2c]
test eax, eax
jne 0x440cb5
mov ebx, dword [esp + 0x44]
jmp 0x440d1a
mov ebx, dword [edi + 0x1c]
mov eax, dword [esp + 0x10]
test eax, eax
lea edx, [ebx + 1]
mov dword [edi + 0x1c], edx
je 0x440cdc
push 1
push ebx
push eax
push ebp
push edi
call fcn.00440870
add esp, 0x14
test eax, eax
jne 0x440b36
push 0
push ebx
push 0x7a
call fcn.0041f960
mov ecx, dword [esp + 0x2c]
add esp, 0xc
cmp ecx, 7
jne 0x440d01
mov ecx, dword [esp + 0x1c]
mov dword [esp + ecx*4 + 0x2c], eax
inc ecx
mov dword [esp + 0x1c], ecx
jmp 0x440d0b
mov ecx, dword [ebp + 0x24]
mov dword [ebp + 0x38], eax
mov byte [ecx + 8], 1
mov eax, dword [esp + 0x10]
push ebp
mov ecx, edi
call fcn.004256b0
add esp, 4
mov edx, dword [esp + 0x48]
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x14]
push edx
push 0
push 0
push 0
push ebx
push eax
push ecx
push edi
call fcn.00441560
add esp, 0x20
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x440b3e
movzx eax, byte [ebp + 4]
sub eax, 0x6a
je 0x440d68
dec eax
je 0x440d5e
dec eax
jne 0x440d70
mov dword [esp + 0x18], 2
jmp 0x440d70
mov dword [esp + 0x18], 7
jmp 0x440d70
mov dword [esp + 0x18], 1
mov ecx, dword [ebp + 0x28]
mov edi, dword [esp + 0x10]
xor eax, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x48]
push ecx
push eax
cmp edi, eax
push eax
setne dl
push eax
mov byte [ebp + 9], dl
mov edx, dword [ebp + 0x2c]
mov dword [esp + 0x38], edx
mov edx, dword [esp + 0x28]
push ebx
push edx
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x1c], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x50]
push ebp
push eax
call fcn.00441560
mov edi, dword [ebp + 0x1c]
mov dword [esp + 0x5c], eax
call fcn.004176f0
mov eax, dword [ebp + 0x28]
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x30]
push eax
mov dword [ebp + 0x20], ecx
mov dword [ebp + 0x1c], edx
call fcn.0041b910
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x4c]
or eax, 0xffffffff
mov dword [ebp + 0x30], eax
mov dword [ebp + 0x34], eax
mov eax, dword [esp + 0x60]
add esp, 0x24
test eax, eax
mov dword [ebp + 0x28], ecx
mov dword [ebp + 0x2c], edx
jne 0x440b3e
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x20]
jne 0x440e0e
cmp ebx, dword [esp + 0x44]
je case.default.0x440bbf
cmp dword [esp + 0x40], 4
jne 0x440e3a
mov eax, dword [ebp + 0x20]
test eax, eax
mov ecx, ebp
je 0x440e29
mov edi, edi
mov ecx, eax
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x440e20
mov ecx, dword [ecx]
push ecx
mov ecx, dword [esp + 0x3c]
push 0
call fcn.0041d290
add esp, 8
mov eax, esi
call fcn.0041fa10
mov edi, eax
mov eax, esi
call fcn.0041fa10
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x38]
push edi
push ebp
call fcn.004360e0
push edi
push ebx
push 0x80
call fcn.0041f960
mov edx, dword [esi + 0xc]
mov ecx, dword [esp + 0x34]
mov eax, dword [ebp]
push 0
push edi
push ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x64]
push edx
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [esp + 0x60]
push 0xffffffffffffffff
push edx
push ebx
push eax
mov eax, dword [eax]
push ebp
push ecx
call fcn.00424eb0
add esp, 0x40
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x440b36
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.00412740
mov edx, dword [esp + 0x28]
push edx
push ebx
push 0x6f
call fcn.0041f960
mov edx, edi
mov ecx, esi
call fcn.00412740
push 0
push ebx
push 0x1f
call fcn.0041f960
add esp, 0x18
jmp case.default.0x440bbf
mov ebx, dword [edi + 0x1c]
lea eax, [ebx + 2]
mov dword [edi + 0x1c], eax
mov eax, dword [esp + 0x10]
test eax, eax
je 0x440f02
push 1
push ebx
mov ecx, eax
push ecx
push ebp
push edi
call fcn.00440870
add esp, 0x14
test eax, eax
jne 0x440b36
mov eax, dword [esp + 0x10]
push ebp
mov ecx, edi
call fcn.004256b0
push 0
push ebx
push 0x7a
call fcn.0041f960
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 0x24]
mov dword [ebp + 0x38], eax
mov eax, dword [esp + 0x58]
push eax
push 0
push 0
push 0
push ebx
push 1
push ecx
push edi
mov byte [edx + 8], 1
call fcn.00441560
add esp, 0x30
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x440b3e
push eax
lea eax, [ebx + 1]
push eax
push 0x7a
call fcn.0041f960
mov edx, dword [ebp + 0x28]
mov ecx, dword [ebp + 0x2c]
mov dword [esp + 0x34], edx
mov edx, dword [esp + 0x54]
push edx
mov dword [ebp + 0x3c], eax
xor eax, eax
push eax
push eax
push eax
mov dword [ebp + 0x20], eax
mov dword [ebp + 0x28], eax
mov dword [ebp + 0x2c], eax
lea eax, [ebx + 1]
push eax
push 1
push ebp
push edi
mov dword [esp + 0x50], ecx
call fcn.00441560
mov ecx, dword [ebp + 0x28]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
push ecx
mov dword [ebp + 0x20], eax
call fcn.0041b910
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [ebp + 0x2c], eax
mov eax, dword [esp + 0x6c]
add esp, 0x30
test eax, eax
mov dword [ebp + 0x28], edx
jne 0x440b3e
cmp dword [esp + 0x40], 4
jne 0x440fe0
mov eax, dword [ebp + 0x20]
test eax, eax
mov ecx, ebp
je 0x440fd1
mov ecx, eax
mov eax, dword [ecx + 0x20]
test eax, eax
jne 0x440fc8
mov ecx, dword [ecx]
push ecx
push 0
mov ecx, edi
call fcn.0041d290
add esp, 8
mov eax, esi
call fcn.0041fa10
mov dword [esp + 0x18], eax
mov eax, esi
call fcn.0041fa10
mov edx, dword [esp + 0x18]
push edx
mov dword [esp + 0x24], eax
push ebp
mov eax, edi
call fcn.004360e0
mov eax, dword [esp + 0x20]
push eax
push ebx
push 0x80
call fcn.0041f960
push 0
push ebx
push 8
call fcn.0041f960
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x48], eax
push ecx
lea eax, [ebx + 1]
push eax
push 0x22
call fcn.0041f960
mov edx, dword [esp + 0x44]
mov ecx, dword [esp + 0x4c]
mov eax, dword [ebp]
push 0
push edx
mov edx, dword [esp + 0x78]
push ecx
mov ecx, dword [esp + 0x78]
push edx
mov edx, dword [esp + 0x4c]
push ecx
push 0xffffffffffffffff
push edx
push ebx
push eax
mov eax, dword [eax]
push ebp
push edi
call fcn.00424eb0
add esp, 0x58
test eax, eax
mov dword [esp + 0x3c], eax
jne 0x440b36
mov edx, dword [esp + 0x20]
mov ecx, esi
call fcn.00412740
mov eax, dword [esp + 0x28]
push eax
push ebx
push 0x6f
call fcn.0041f960
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.00412740
push 0
lea eax, [ebx + 1]
push eax
push 0x1f
call fcn.0041f960
push 0
push ebx
push 0x1f
call fcn.0041f960
add esp, 0x24
mov ecx, dword [ebp]
mov edx, dword [esp + 0x14]
mov edi, dword [ecx]
mov eax, dword [edx]
cmp edi, dword [eax]
mov dword [esp + 0x18], edi
je 0x4410d3
movzx eax, byte [ebp + 4]
call fcn.004142c0
mov esi, dword [esp + 0x38]
push eax
push str.SELECTs_to_the_left_and_right_of__s_do_not_have_the_same_number_of_result_columns
jmp 0x440b2e
mov edx, dword [esp + 0x1c]
test edx, edx
je 0x441100
jmp 0x4410e0
mov eax, dword [esp + edx*4 + 0x28]
dec edx
test eax, eax
jl 0x4410fc
cmp dword [esi + 0xc], eax
jle 0x4410fc
mov ecx, dword [esi + 0x14]
test ecx, ecx
je 0x4410fc
lea eax, [eax + eax*4]
mov dword [ecx + eax*4 + 8], edi
test edx, edx
jne 0x4410e0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x44113e
mov al, byte [ebp + 8]
test al, al
je 0x440b3e
xor eax, eax
add eax, edi
lea eax, [eax + eax*4 + 0x10]
call fcn.00418290
mov ebx, eax
test ebx, ebx
mov dword [esp + 0x28], ebx
jne 0x441142
pop edi
pop esi
mov dword [esp + 0x34], 7
mov eax, dword [esp + 0x34]
pop ebp
pop ebx
add esp, 0x24
ret
mov eax, dword [eax]
jmp 0x441115
mov ecx, dword [esp + 0x38]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
mov ecx, dword [eax + 0x14]
mov dl, byte [ecx + 0x79]
mov ecx, dword [esp + 0x18]
xor edi, edi
test ecx, ecx
lea eax, [ebx + 0xc]
mov byte [ebx], dl
mov dword [ebx + 4], ecx
mov dword [esp + 0x14], eax
jle 0x4411a3
mov eax, dword [esp + 0x38]
push edi
push ebp
push eax
call fcn.0042bb90
mov ecx, dword [esp + 0x20]
add esp, 0xc
test eax, eax
mov dword [ecx], eax
jne 0x44118f
mov edx, dword [esp + 0x38]
mov eax, dword [edx]
mov ecx, dword [eax + 0x1c]
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
inc edi
add ecx, 4
cmp edi, eax
mov dword [esp + 0x14], ecx
jl 0x441167
mov dword [esp + 0x20], ebp
jmp 0x4411b0
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], 0
add edi, 0x38
nop
mov edx, dword [edi]
test edx, edx
jl 0x441208
cmp dword [esi + 0xc], edx
jle 0x4411e1
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4411e1
mov ebx, dword [esp + 0x18]
lea ecx, [edx + edx*4]
mov dword [eax + ecx*4 + 8], ebx
mov ebx, dword [esp + 0x28]
push esi
mov eax, 0xfffffffa
mov ecx, ebx
call fcn.0041b050
mov eax, dword [esp + 0x20]
add esp, 4
inc eax
mov dword [edi], 0xffffffff
add edi, 4
cmp eax, 2
mov dword [esp + 0x1c], eax
jl 0x4411c0
mov edx, dword [esp + 0x20]
mov eax, dword [edx + 0x20]
test eax, eax
mov dword [esp + 0x20], eax
jne 0x4411b0
mov eax, dword [esp + 0x10]
test eax, eax
je 0x441310
mov ecx, dword [eax + 0xc]
mov edi, dword [eax]
mov eax, dword [esp + 0x18]
shl eax, 2
mov dword [esp + 0x1c], ecx
lea ecx, [ebx + edi*4 + 0xc]
lea edx, [eax + ecx]
push eax
lea eax, [ebx + 0xc]
push eax
push ecx
mov dword [esp + 0x34], edx
mov dword [ebx + 8], edx
call dword [sym.imp.MSVCR71.dll_memmove]
lea eax, [ebx + 0xc]
mov dword [esp + 0x20], eax
add esp, 0xc
xor eax, eax
test edi, edi
jle 0x4412aa
lea ecx, [ecx]
mov edx, dword [esp + 0x1c]
mov ecx, dword [edx]
test byte [ecx + 3], 1
je 0x441271
mov ecx, dword [ecx + 4]
jmp 0x44127b
mov edx, dword [ecx + 0x28]
lea ecx, [ebx + edi*4 + 0xc]
mov ecx, dword [ecx + edx*4]
mov edx, dword [esp + 0x14]
mov dword [edx], ecx
mov ecx, dword [esp + 0x1c]
mov dl, byte [ecx + 8]
mov ecx, dword [esp + 0x28]
mov byte [ecx + eax], dl
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x14]
inc eax
add ecx, 0xc
add edx, 4
cmp eax, edi
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x14], edx
jl 0x441260
mov edx, dword [ebp + 0x40]
test edx, edx
mov dword [esp + 0x28], edx
jl 0x4412d4
cmp dword [esi + 0xc], edx
jle 0x4412d4
mov eax, dword [esi + 0x14]
test eax, eax
je 0x4412d4
mov ecx, dword [ebp + 0x1c]
mov ecx, dword [ecx]
lea edx, [edx + edx*4]
add ecx, 2
mov dword [eax + edx*4 + 8], ecx
mov edx, dword [esp + 0x28]
push esi
mov eax, 0xfffffff7
mov ecx, ebx
mov dword [ebx + 4], edi
call fcn.0041b050
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x44]
mov edx, dword [ebp]
push eax
mov eax, dword [edx]
push ecx
mov ecx, dword [esp + 0x44]
push eax
push ebp
push ecx
mov eax, esi
call fcn.00425300
mov eax, dword [esp + 0x54]
add esp, 0x18
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret
push ebx
call dword [sym.imp.MSVCR71.dll_free]
mov eax, dword [esp + 0x40]
add esp, 4
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret