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

Disassembly:
sub esp, 0x50
mov ecx, dword [esp + 0x5c]
mov edx, dword [ecx]
mov dword [esp + 0x20], edx
mov edx, dword [ecx + 4]
push ebx
push ebp
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x2c], edx
mov edx, dword [ecx + 8]
push esi
mov esi, dword [esp + 0x60]
mov eax, dword [esi]
mov dword [esp + 0x34], edx
mov edx, dword [ecx + 0xc]
push edi
mov edi, dword [ebp + 0x3c]
mov dword [esp + 0x3c], edx
cmp dword [edi + 0x38], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], eax
mov dword [esp + 0x20], edi
je 0x44c5e3
movzx eax, byte [ebp + 4]
sub eax, 0x71
je 0x44c5c1
sub eax, 1
je 0x44c5ba
sub eax, 1
je 0x44c5b3
mov eax, str.UNION
jmp 0x44c5c6
mov eax, str.INTERSECT
jmp 0x44c5c6
mov eax, str.EXCEPT
jmp 0x44c5c6
mov eax, str.UNION_ALL
push eax
push str.ORDER_BY_clause_should_come_after__s_not_before
mov edi, esi
call fcn.00408e60
add esp, 8
mov dword [esp + 0x68], 1
jmp 0x44ccd3
cmp dword [edi + 0x48], 0
je 0x44c630
movzx eax, byte [ebp + 4]
sub eax, 0x71
je 0x44c623
sub eax, 1
je 0x44c616
sub eax, 1
je 0x44c609
mov eax, str.UNION
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x44c5cc
mov eax, str.INTERSECT
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x44c5cc
mov eax, str.EXCEPT
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x44c5cc
mov eax, str.UNION_ALL
push eax
push str.LIMIT_clause_should_come_after__s_not_before
jmp 0x44c5cc
mov ebx, dword [esi + 8]
test ebx, ebx
jne 0x44c656
call fcn.00421a40
mov ebx, eax
test ebx, ebx
mov dword [esi + 8], eax
je 0x44c652
push 0x94
call fcn.00421ba0
add esp, 4
mov ecx, dword [esp + 0x6c]
cmp byte [esp + 0x30], 9
jne 0x44c68f
mov eax, dword [ebp]
mov ecx, dword [eax]
mov edx, dword [esp + 0x34]
push ecx
push edx
push 0x2a
mov eax, ebx
call fcn.00421c40
mov eax, dword [ebx + 4]
add esp, 0xc
test eax, eax
je 0x44c686
mov ecx, dword [ebx + 0x1c]
lea ecx, [ecx + ecx*4]
mov byte [eax + ecx*4 - 0x11], 8
mov ecx, dword [esp + 0x6c]
mov byte [esp + 0x30], 8
mov eax, dword [ebp]
mov edx, dword [edi]
mov eax, dword [eax]
cmp eax, dword [edx]
je 0x44c6d0
test byte [ebp + 6], 0x80
je 0x44c6bc
push str.all_VALUES_must_have_the_same_number_of_terms
mov edi, esi
call fcn.00408e60
add esp, 4
mov dword [esp + 0x68], 1
jmp 0x44ccd3
movzx eax, byte [ebp + 4]
call fcn.0044b2c0
push eax
push str.SELECTs_to_the_left_and_right_of__s_do_not_have_the_same_number_of_result_columns
jmp 0x44c5cc
xor edx, edx
cmp dword [ebp + 0x38], edx
je 0x44c6ea
push ecx
push ebp
push esi
call fcn.0044d010
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret
movzx eax, byte [ebp + 4]
sub eax, 0x70
je 0x44c9e1
sub eax, 1
je 0x44c907
sub eax, 1
je 0x44c9e1
mov edi, dword [esi + 0x48]
push 0
lea ecx, [edi + 2]
push edi
push 0x2a
mov eax, ebx
mov dword [esi + 0x48], ecx
call fcn.00421c40
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x44]
or word [eax + 6], 8
mov edx, dword [esi + 0x1e0]
xor eax, eax
add esp, 0xc
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], eax
lea eax, [esp + 0x40]
push eax
push ecx
push esi
mov byte [esp + 0x4c], 1
mov dword [esp + 0x50], edi
mov byte [esp + 0x4d], 0
mov dword [esp + 0x34], edx
call fcn.00450530
add esp, 0xc
test eax, eax
mov dword [esp + 0x68], eax
jne 0x44ccd3
push eax
lea eax, [edi + 1]
push eax
push 0x2a
mov eax, ebx
call fcn.00421c40
mov edx, dword [ebp + 0x48]
mov ecx, dword [ebp + 0x4c]
mov dword [ebp + 0x14], eax
xor eax, eax
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x48], eax
mov dword [ebp + 0x4c], eax
lea eax, [edi + 1]
add esp, 0xc
mov dword [esp + 0x44], eax
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x20], edx
mov edx, dword [esi + 0x1e0]
push ebp
push esi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x30], edx
call fcn.00450530
mov ecx, dword [ebp + 0x3c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x2c]
mov dword [ebp + 0x3c], ecx
fld qword [ecx + 0x20]
fcomp qword [ebp + 0x20]
mov dword [esp + 0x74], eax
add esp, 0xc
fnstsw ax
test ah, 5
jp 0x44c7df
fld qword [ecx + 0x20]
fstp qword [ebp + 0x20]
mov edx, dword [ebp + 0x48]
mov eax, dword [esp + 0x14]
push edx
push eax
call fcn.00430290
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
add esp, 8
cmp byte [esp + 0x30], 5
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x4c], edx
jne 0x44c827
mov eax, dword [ebp + 0x3c]
test eax, eax
mov ecx, ebp
je 0x44c819
mov edi, edi
mov ecx, eax
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x44c810
mov eax, dword [ecx]
push eax
push 0
push esi
call fcn.0044bcd0
add esp, 0xc
mov eax, ebx
call fcn.00421ea0
mov dword [esp + 0x1c], eax
mov eax, ebx
call fcn.00421ea0
mov ecx, dword [esp + 0x1c]
push ecx
mov dword [esp + 0x24], eax
push ebp
mov eax, esi
call fcn.0044c370
mov edx, dword [esp + 0x24]
push edx
push edi
push 0x48
mov eax, ebx
call fcn.00421c40
add esp, 0x14
mov eax, esi
call fcn.00434360
mov esi, eax
push esi
push edi
push 0x3f
mov eax, ebx
call fcn.00421c40
add esp, 0xc
push 0
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x24]
push esi
push eax
lea eax, [edi + 1]
push eax
push 0x33
mov eax, ebx
call fcn.00421df0
mov edx, dword [esp + 0x78]
add esp, 0x14
call fcn.00434380
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
mov eax, dword [ebp]
push esi
push ecx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [eax]
push 0xffffffffffffffff
push 0
push ecx
push edi
push eax
push ebp
push edx
call fcn.0044ada0
mov edx, dword [esp + 0x48]
mov ecx, ebx
call fcn.00421f00
mov edx, dword [esp + 0x54]
push edx
push edi
push 0x5f
mov eax, ebx
call fcn.00421c40
add esp, 0x34
mov edx, esi
mov ecx, ebx
call fcn.00421f00
push 0
lea eax, [edi + 1]
push eax
push 0x2d
mov eax, ebx
call fcn.00421c40
add esp, 0xc
push 0
push edi
push 0x2d
mov eax, ebx
call fcn.00421c40
mov esi, dword [esp + 0x70]
jmp 0x44cbc2
mov eax, dword [ebp + 0x48]
mov dword [edi + 0x48], eax
mov ecx, dword [ebp + 0x4c]
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x68], edx
mov dword [edi + 0x4c], ecx
mov edx, dword [esi + 0x1e0]
push edi
push esi
mov dword [esp + 0x34], edx
call fcn.00450530
xor ecx, ecx
add esp, 0xc
cmp eax, ecx
mov dword [esp + 0x68], eax
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x4c], ecx
jne 0x44ccd3
mov dword [ebp + 0x3c], ecx
mov edx, dword [edi + 8]
mov dword [ebp + 8], edx
mov eax, dword [edi + 0xc]
mov dword [ebp + 0xc], eax
mov eax, edx
cmp eax, ecx
je 0x44c96a
push eax
push 0x7a
mov eax, ebx
call fcn.00421bf0
add esp, 8
mov dword [esp + 0x64], eax
mov ecx, dword [esi + 0x1e0]
lea edx, [esp + 0x30]
push edx
push ebp
push esi
mov dword [esp + 0x30], ecx
call fcn.00450530
mov dword [esp + 0x74], eax
mov eax, dword [ebp + 0x3c]
mov dword [ebp + 0x3c], edi
fld qword [edi + 0x20]
fadd qword [ebp + 0x20]
add esp, 0xc
mov dword [esp + 0x18], eax
fst qword [ebp + 0x20]
mov edi, dword [edi + 0x48]
test edi, edi
je 0x44c9c7
lea ecx, [esp + 0x2c]
push ecx
push edi
call fcn.00430fc0
add esp, 8
test eax, eax
je 0x44c9c7
fild dword [esp + 0x2c]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 5
jp 0x44c9c7
fstp qword [ebp + 0x20]
jmp 0x44c9c9
fstp st(0)
mov eax, dword [esp + 0x64]
test eax, eax
je 0x44cbc5
mov edx, ebx
call fcn.004220d0
jmp 0x44cbc5
cmp byte [esp + 0x30], 1
jne 0x44c9fc
cmp dword [ebp + 0x48], edx
jne 0x44c9fc
cmp dword [ebp + 0x4c], edx
jne 0x44c9fc
mov eax, dword [esp + 0x34]
mov dword [esp + 0x64], eax
jmp 0x44ca24
mov eax, dword [esi + 0x48]
push edx
push eax
lea ecx, [eax + 1]
mov dword [esp + 0x6c], eax
push 0x2a
mov eax, ebx
mov dword [esi + 0x48], ecx
call fcn.00421c40
mov dword [ebp + 0x10], eax
mov eax, dword [ebp + 0x44]
or word [eax + 6], 8
add esp, 0xc
xor edx, edx
mov eax, dword [esp + 0x64]
mov ecx, dword [esi + 0x1e0]
mov dword [esp + 0x58], edx
mov dword [esp + 0x5c], edx
lea edx, [esp + 0x50]
push edx
push edi
push esi
mov byte [esp + 0x5c], 1
mov dword [esp + 0x60], eax
mov byte [esp + 0x5d], 0
mov dword [esp + 0x34], ecx
call fcn.00450530
add esp, 0xc
test eax, eax
mov dword [esp + 0x68], eax
jne 0x44ccd3
cmp byte [ebp + 4], 0x72
mov edx, dword [ebp + 0x48]
sete al
xor ecx, ecx
mov dword [esp + 0x2c], edx
mov edx, dword [ebp + 0x4c]
mov dword [ebp + 0x3c], ecx
mov dword [ebp + 0x48], ecx
mov dword [ebp + 0x4c], ecx
lea ecx, [esp + 0x50]
add al, 1
push ecx
mov byte [esp + 0x54], al
mov eax, dword [esi + 0x1e0]
push ebp
push esi
mov dword [esp + 0x28], edx
mov dword [esp + 0x30], eax
call fcn.00450530
mov edx, dword [ebp + 0x38]
mov edi, dword [esp + 0x20]
add esp, 0xc
push edx
mov dword [esp + 0x6c], eax
call fcn.00430e00
mov eax, dword [ebp + 0x3c]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x24]
xor edi, edi
add esp, 4
cmp byte [ebp + 4], 0x70
mov dword [ebp + 0x3c], eax
mov dword [ebp + 0x38], edi
jne 0x44cad8
fld qword [eax + 0x20]
fadd qword [ebp + 0x20]
fstp qword [ebp + 0x20]
mov ecx, dword [ebp + 0x48]
mov edx, dword [esp + 0x14]
push ecx
push edx
call fcn.00430290
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x24]
mov dword [ebp + 0x48], eax
mov al, byte [esp + 0x38]
add esp, 8
cmp al, 1
mov dword [ebp + 0x4c], ecx
mov dword [ebp + 8], edi
mov dword [ebp + 0xc], edi
je 0x44cbc5
cmp al, 5
jne 0x44cb2d
mov eax, dword [ebp + 0x3c]
test eax, eax
mov ecx, ebp
je 0x44cb1f
mov ecx, eax
mov eax, dword [ecx + 0x3c]
test eax, eax
jne 0x44cb16
mov edx, dword [ecx]
push edx
push 0
push esi
call fcn.0044bcd0
add esp, 0xc
mov eax, ebx
call fcn.00421ea0
mov edi, eax
mov eax, ebx
call fcn.00421ea0
mov dword [esp + 0x20], eax
push edi
push ebp
mov eax, esi
call fcn.0044c370
mov eax, dword [esp + 0x6c]
push edi
push eax
push 0x48
mov eax, ebx
call fcn.00421c40
mov ecx, dword [ebx + 0x1c]
mov edx, dword [esp + 0x34]
mov eax, dword [ebp]
add esp, 0x14
push edi
push edx
mov edx, dword [eax]
mov dword [esp + 0x34], ecx
lea ecx, [esp + 0x38]
push ecx
mov ecx, dword [esp + 0x70]
push 0xffffffffffffffff
push 0
push edx
push ecx
push eax
push ebp
push esi
call fcn.0044ada0
mov edx, dword [esp + 0x48]
mov ecx, ebx
call fcn.00421f00
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x8c]
push edx
push eax
push 0x5f
mov eax, ebx
call fcn.00421c40
add esp, 0x34
mov edx, edi
mov ecx, ebx
call fcn.00421f00
mov ecx, dword [esp + 0x64]
push 0
push ecx
push 0x2d
mov eax, ebx
call fcn.00421c40
add esp, 0xc
mov al, byte [ebp + 4]
mov ecx, dword [esp + 0x24]
xor edx, edx
cmp al, 0x71
setne dl
movzx eax, al
mov edi, esi
push edx
mov edx, dword [esp + 0x2c]
push ecx
push edx
call fcn.0044b330
add esp, 0xc
test byte [ebp + 6], 8
je 0x44ccd3
mov eax, dword [ebp]
mov eax, dword [eax]
mov dword [esp + 0x64], eax
lea edi, [eax + eax*4 + 0x10]
mov eax, dword [esp + 0x14]
call fcn.00406f00
test eax, eax
mov dword [esp + 0x24], eax
jne 0x44cc1c
mov dword [esp + 0x68], 7
jmp 0x44ccd3
mov ecx, dword [esp + 0x14]
mov edx, dword [ecx + 0x10]
mov ecx, dword [edx + 0xc]
mov dl, byte [ecx + 0x4d]
mov ecx, dword [esp + 0x64]
mov byte [eax + 4], dl
mov word [eax + 6], cx
add eax, 0xc
xor edi, edi
test ecx, ecx
mov dword [esp + 0x28], eax
jle 0x44cc6f
push edi
push ebp
push esi
call fcn.0044c500
mov ecx, dword [esp + 0x34]
add esp, 0xc
test eax, eax
mov dword [ecx], eax
jne 0x44cc5f
mov eax, dword [esp + 0x14]
mov edx, dword [eax + 8]
mov dword [ecx], edx
add edi, 1
add ecx, 4
cmp edi, dword [esp + 0x64]
mov dword [esp + 0x28], ecx
jl 0x44cc41
mov edi, ebp
mov dword [esp + 0x28], ebp
xor ebp, ebp
lea esi, [edi + 0x10]
mov eax, dword [esi]
test eax, eax
jl 0x44ccbb
cmp dword [ebx + 0x1c], eax
jbe 0x44cc97
mov edi, dword [esp + 0x64]
mov edx, dword [ebx + 4]
lea ecx, [eax + eax*4]
mov dword [edx + ecx*4 + 8], edi
mov edi, dword [esp + 0x28]
mov ecx, dword [esp + 0x24]
push ecx
push ebx
mov ecx, 0xfffffffa
call fcn.00422230
mov dword [esi], 0xffffffff
add ebp, 1
add esp, 8
add esi, 4
cmp ebp, 2
jl 0x44cc7a
mov edi, dword [edi + 0x3c]
test edi, edi
mov dword [esp + 0x28], edi
jne 0x44cc75
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x14]
call fcn.00406d00
mov eax, dword [esp + 0x6c]
mov esi, dword [esp + 0x18]
test esi, esi
mov edx, dword [esp + 0x38]
mov ecx, dword [esp + 0x3c]
mov dword [eax + 8], edx
mov dword [eax + 0xc], ecx
je 0x44cd04
mov edi, dword [esp + 0x14]
push esi
push edi
call fcn.0044a2a0
add esp, 8
mov eax, esi
mov ecx, edi
call fcn.00406d00
mov eax, dword [esp + 0x68]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x50
ret