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

Disassembly:
sub esp, 0x78
push ebx
push ebp
mov ebp, dword [esp + 0x88]
xor eax, eax
push esi
mov esi, dword [esp + 0x90]
push edi
mov ebx, dword [ebp + 0x34]
lea edi, [esp + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x8c]
push 7
pop ecx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [eax]
mov esi, dword [esp + 0x8c]
push esi
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ebx
call fcn.0056a013
cmp byte [esp + 0x38], 0xc
mov edi, eax
pop ecx
mov dword [esp + 0x10], edi
jne 0x54bef0
mov ecx, dword [ebp + 0x1c]
push dword [ecx]
push dword [esp + 0x3c]
push 0x76
push edi
call fcn.0057b76b
add esp, 0x10
mov byte [esp + 0x34], 0xe
test dword [ebp + 4], 0x400
je 0x54bf16
lea eax, [esp + 0x34]
push eax
push ebp
push esi
call fcn.0054cdb2
mov ebx, eax
add esp, 0xc
test ebx, ebx
jns 0x54c53b
mov ebx, dword [esp + 0x1c]
mov ecx, 0x2000
test dword [ebp + 4], ecx
je 0x54bf4c
mov eax, ebp
test dword [eax + 4], ecx
je 0x54bf2e
mov eax, dword [eax + 0x34]
test eax, eax
jne 0x54bf22
test eax, eax
je 0x54bf4c
lea eax, [esp + 0x34]
push eax
push ebp
push esi
call fcn.00543ff8
add esp, 0xc
xor ebx, ebx
mov dword [esp + 0x14], ebx
jmp 0x54c448
xor edx, edx
cmp dword [ebp + 0x30], edx
je 0x54bf69
push dword [esp + 0x94]
push ebp
push esi
call fcn.0054c5b5
add esp, 0xc
jmp 0x54c569
cmp dword [ebx + 0x34], edx
jne 0x54bf8d
push str.COMPOUND_QUERY
push 1
push esi
call fcn.00582490
push str.LEFT_MOST_SUBQUERY
push 1
push esi
call fcn.00582490
add esp, 0x18
xor edx, edx
movzx eax, byte [ebp]
sub eax, 0x86
je 0x54c290
sub eax, 1
je 0x54c176
sub eax, 1
je 0x54c290
mov ecx, dword [esi + 0x28]
push edx
push ecx
push 0x76
lea eax, [ecx + 1]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x34], eax
inc eax
push edi
mov dword [esi + 0x28], eax
call fcn.0057b76b
mov dword [ebp + 0x14], eax
add esp, 0x10
mov ecx, dword [ebp + 0x38]
mov eax, ebp
jmp 0x54bfdc
mov eax, ecx
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x54bfd7
or dword [eax + 4], 0x20
mov eax, dword [esp + 0x18]
mov dword [esp + 0x54], eax
xor eax, eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], eax
lea eax, [esp + 0x50]
push eax
push ebx
push esi
mov byte [esp + 0x5c], 1
call fcn.005752c1
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x54c53b
mov ebx, dword [esp + 0x28]
push eax
push ebx
push 0x76
push edi
call fcn.0057b76b
mov dword [ebp + 0x18], eax
mov eax, dword [ebp + 0x3c]
and dword [ebp + 0x34], 0
and dword [ebp + 0x3c], 0
mov dword [esp + 0x3c], eax
movzx eax, byte [ebp]
push eax
mov dword [esp + 0x68], ebx
call fcn.00577153
push eax
push str._s_USING_TEMP_B_TREE
push 1
push esi
call fcn.00582490
lea eax, [esp + 0x74]
push eax
push ebp
push esi
call fcn.005752c1
mov ebx, eax
add esp, 0x30
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov dword [ebp + 0x34], eax
mov dword [esp + 0x14], ebx
movzx eax, word [eax + 2]
cmp word [ebp + 2], ax
jle 0x54c089
mov word [ebp + 2], ax
cmp dword [ebp + 0x3c], 0
je 0x54c09d
push dword [ebp + 0x3c]
push dword [esp + 0x24]
call fcn.0056485a
pop ecx
pop ecx
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x3c], eax
test ebx, ebx
jne 0x54c43b
mov ebp, dword [esi + 0x38]
dec ebp
push ebp
push dword [esp + 0x94]
lea ebx, [ebp - 1]
push esi
mov dword [esi + 0x38], ebx
call fcn.0053be4e
push ebp
push dword [esp + 0x28]
push 0x24
push edi
call fcn.0057b76b
push esi
call fcn.00569765
mov esi, eax
push esi
push dword [esp + 0x3c]
push 0x86
push edi
call fcn.0057b76b
push 0
push esi
push ebx
push dword [esp + 0x64]
mov edi, eax
push 0x1c
push dword [esp + 0x54]
call fcn.0057b858
add esp, 0x48
push esi
mov esi, dword [esp + 0x90]
push esi
call fcn.00573e04
push ebp
push ebx
lea eax, [esp + 0x44]
push eax
push 0
push 0
push dword [esp + 0x34]
push dword [esp + 0xb0]
push esi
call fcn.005567da
push ebx
push dword [esp + 0x3c]
call fcn.00584970
mov ebx, dword [esp + 0x48]
push edi
mov edi, dword [esp + 0x44]
push ebx
push 0x27
push edi
call fcn.0057b76b
add esp, 0x40
push ebp
push edi
call fcn.00584970
push 0
lea eax, [ebx + 1]
push eax
push 0x7a
push edi
call fcn.0057b76b
push 0
push ebx
push 0x7a
push edi
call fcn.0057b76b
mov ebp, dword [esp + 0xb8]
jmp 0x54c434
mov eax, dword [ebp + 8]
mov dword [ebx + 8], eax
mov eax, dword [ebp + 0xc]
mov dword [ebx + 0xc], eax
mov eax, dword [ebp + 0x3c]
mov dword [ebx + 0x3c], eax
lea eax, [esp + 0x34]
push eax
push ebx
push esi
mov dword [esp + 0x24], edx
mov dword [esp + 0x34], edx
call fcn.005752c1
mov ebx, eax
add esp, 0xc
mov eax, dword [esp + 0x1c]
and dword [eax + 0x3c], 0
test ebx, ebx
jne 0x54c53b
and dword [ebp + 0x34], ebx
mov ecx, dword [eax + 8]
mov dword [ebp + 8], ecx
mov eax, dword [eax + 0xc]
mov dword [ebp + 0xc], eax
test ecx, ecx
je 0x54c1ef
push ecx
push 0x11
push edi
call fcn.0057b752
mov ecx, dword [ebp + 0xc]
add esp, 0xc
mov dword [esp + 0x18], eax
test ecx, ecx
je 0x54c1ef
push ecx
inc ecx
push ecx
push dword [ebp + 8]
push 0xa0
push edi
call fcn.0057b786
add esp, 0x14
push str.UNION_ALL
push 1
push esi
call fcn.00582490
lea eax, [esp + 0x40]
push eax
push ebp
push esi
call fcn.005752c1
mov ebx, eax
mov eax, dword [ebp + 0x34]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x34]
mov dword [ebp + 0x34], eax
mov dword [esp + 0x2c], ebx
movzx eax, word [eax + 2]
push eax
movzx eax, word [ebp + 2]
push eax
call fcn.0056caa5
movzx eax, ax
add esp, 0x20
mov dword [esp + 0x2c], eax
mov word [ebp + 2], ax
mov eax, dword [ebp + 0x3c]
test eax, eax
je 0x54c270
lea ecx, [esp + 0x28]
push ecx
push dword [eax + 0xc]
call fcn.0056529a
pop ecx
pop ecx
test eax, eax
je 0x54c270
mov eax, dword [esp + 0x28]
test eax, eax
jle 0x54c270
cdq
push edx
push eax
call fcn.0056ca22
pop ecx
pop ecx
cmp word [esp + 0x2c], ax
jle 0x54c270
mov word [ebp + 2], ax
mov eax, dword [esp + 0x18]
test eax, eax
je 0x54c43b
push eax
push edi
call fcn.0058273c
pop ecx
pop ecx
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x54c43b
cmp byte [esp + 0x34], 1
jne 0x54c2a1
mov eax, dword [esp + 0x38]
mov dword [esp + 0x18], eax
jmp 0x54c2d6
mov ecx, dword [esi + 0x28]
push edx
push ecx
push 0x76
lea eax, [ecx + 1]
mov dword [esp + 0x24], ecx
push edi
mov dword [esi + 0x28], eax
call fcn.0057b76b
mov dword [ebp + 0x14], eax
add esp, 0x10
mov ecx, dword [ebp + 0x38]
mov eax, ebp
jmp 0x54c2ca
mov eax, ecx
mov ecx, dword [eax + 0x38]
test ecx, ecx
jne 0x54c2c5
or dword [eax + 4], 0x20
mov eax, dword [esp + 0x18]
mov dword [esp + 0x70], eax
xor eax, eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
lea eax, [esp + 0x6c]
push eax
push ebx
push esi
mov byte [esp + 0x78], 1
call fcn.005752c1
mov ebx, eax
add esp, 0xc
test ebx, ebx
jne 0x54c53b
and dword [ebp + 0x34], eax
mov eax, dword [ebp + 0x3c]
and dword [ebp + 0x3c], ebx
cmp byte [ebp], 0x88
mov dword [esp + 0x2c], eax
sete al
inc al
mov byte [esp + 0x6c], al
movzx eax, byte [ebp]
push eax
call fcn.00577153
push eax
push str._s_USING_TEMP_B_TREE
push 1
push esi
call fcn.00582490
lea eax, [esp + 0x80]
push eax
push ebp
push esi
call fcn.005752c1
and dword [ebp + 0x30], 0
mov ebx, eax
mov eax, dword [ebp + 0x34]
add esp, 0x20
cmp byte [ebp], 0x86
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x14], ebx
mov dword [ebp + 0x34], eax
jne 0x54c384
movzx eax, word [eax + 2]
push eax
movzx eax, word [ebp + 2]
push eax
call fcn.0056caa5
pop ecx
pop ecx
mov word [ebp + 2], ax
cmp dword [ebp + 0x3c], 0
je 0x54c398
push dword [ebp + 0x3c]
push dword [esp + 0x24]
call fcn.0056485a
pop ecx
pop ecx
and dword [ebp + 8], 0
and dword [ebp + 0xc], 0
cmp byte [esp + 0x34], 1
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x3c], eax
je 0x54c43b
mov eax, dword [esp + 0x20]
cmp byte [eax + 0x57], 0
jne 0x54c43b
mov ebx, dword [esi + 0x38]
dec ebx
push ebx
push ebp
push esi
lea edi, [ebx - 1]
mov dword [esi + 0x38], edi
call fcn.0053be4e
mov esi, dword [esp + 0x1c]
push ebx
push dword [esp + 0x28]
push 0x24
push esi
call fcn.0057b76b
mov esi, dword [esi + 0x6c]
lea eax, [esp + 0x50]
push ebx
push edi
push eax
mov eax, dword [esp + 0xb4]
push 0
push 0
push dword [esp + 0x48]
push ebp
push eax
call fcn.005567da
push edi
mov edi, dword [esp + 0x50]
push edi
call fcn.00584970
add esp, 0x44
push esi
mov esi, dword [esp + 0x1c]
push esi
push 0x27
push edi
call fcn.0057b76b
push ebx
push edi
call fcn.00584970
push 0
push esi
push 0x7a
push edi
call fcn.0057b76b
mov esi, dword [esp + 0xb4]
mov ebx, dword [esp + 0x3c]
add esp, 0x28
cmp dword [ebp + 0x38], 0
jne 0x54c448
push esi
call fcn.005824e6
pop ecx
cmp dword [esi + 0x24], 0
jne 0x54c53b
test byte [ebp + 4], 0x20
je 0x54c53b
mov eax, dword [ebp + 0x1c]
push 1
mov eax, dword [eax]
push eax
push dword [esp + 0x28]
mov dword [esp + 0x28], eax
call fcn.0056bfb6
add esp, 0xc
mov dword [esp + 0x30], eax
test eax, eax
jne 0x54c484
push 7
pop ebx
jmp 0x54c53b
and dword [esp + 0x18], 0
add eax, 0x14
cmp dword [esp + 0x1c], 0
mov dword [esp + 0x2c], eax
jle 0x54c4c9
mov ebx, dword [esp + 0x18]
mov edi, eax
push ebx
push ebp
push esi
call fcn.0054c571
add esp, 0xc
mov dword [edi], eax
test eax, eax
jne 0x54c4b7
mov eax, dword [esp + 0x20]
mov eax, dword [eax + 8]
mov dword [edi], eax
inc ebx
add edi, 4
cmp ebx, dword [esp + 0x1c]
jl 0x54c49d
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x14]
mov esi, dword [esp + 0x30]
and dword [esp + 0x20], 0
lea eax, [ebp + 0x14]
mov ebp, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov edx, dword [eax]
test edx, edx
js 0x54c518
push edx
push edi
call fcn.0058273c
push 0xfffffffffffffff8
push esi
push edx
mov dword [eax + 8], ebp
inc dword [esi]
push edi
call fcn.0057bab2
mov eax, dword [esp + 0x30]
add esp, 0x18
mov ecx, dword [esp + 0x20]
or dword [eax], 0xffffffff
inc ecx
add eax, 4
mov dword [esp + 0x20], ecx
mov dword [esp + 0x18], eax
cmp ecx, 2
jl 0x54c4dd
mov ebp, dword [esp + 0x90]
mov ebp, dword [ebp + 0x34]
mov dword [esp + 0x90], ebp
test ebp, ebp
jne 0x54c4cd
push esi
call fcn.0056c165
mov esi, dword [esp + 0x90]
pop ecx
mov ecx, dword [esp + 0x94]
mov eax, dword [esp + 0x40]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x24]
test eax, eax
je 0x54c567
push eax
push fcn.00576de5
push esi
call fcn.0056f66a
add esp, 0xc
mov eax, ebx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x78
ret