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

Disassembly:
sub esp, 0x70
xor eax, eax
mov dword [esp + 8], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x7c]
push ebx
mov ebx, dword [esp + 0x7c]
push ebp
mov eax, dword [eax]
mov ebp, dword [esp + 0x84]
mov ecx, dword [ebx + 0x30]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x84]
push esi
mov esi, dword [esp + 0x80]
push edi
mov edi, dword [eax + 4]
mov eax, dword [eax + 8]
mov edx, dword [esi]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x44], eax
mov eax, dword [ebp + 0x10]
mov dword [esp + 0x48], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x3c], edi
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0x2c]
mov dword [esp + 0x14], edx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x10], edi
test eax, eax
jne 0x6321a0
cmp dword [ecx + 0x38], eax
jne 0x63219c
mov ebp, dword [esi + 8]
mov dword [esp + 0x1c], ebp
test ebp, ebp
jne 0x631ad5
cmp dword [esi + 0x78], ebp
jne 0x631abe
test byte [edx + 0x44], 8
jne 0x631abe
mov byte [esi + 0x17], 1
push esi
call fcn.0066c560
mov edi, dword [esp + 0x40]
mov ebp, eax
add esp, 4
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x10], edi
mov cl, byte [esp + 0x38]
cmp cl, 0xc
jne 0x631afc
mov eax, dword [ebx]
push dword [eax]
push edi
push 0x6c
push ebp
call fcn.0066bba0
mov edi, dword [esp + 0x4c]
mov cl, 0xe
add esp, 0x10
mov byte [esp + 0x38], cl
mov dword [esp + 0x10], edi
mov eax, dword [ebx + 8]
test eax, 0x400
je 0x631b1c
lea eax, [esp + 0x38]
push eax
push ebx
push esi
call fcn.00633560
add esp, 0xc
mov ebx, eax
jmp 0x632165
test eax, 0x2000
je 0x631b37
lea eax, [esp + 0x38]
push eax
push ebx
push esi
call fcn.0062c950
add esp, 0xc
jmp 0x632010
cmp dword [ebx + 0x2c], 0
je 0x631b57
mov eax, dword [esp + 0x8c]
push eax
push ebx
push esi
call fcn.00632250
add esp, 0xc
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x70
ret
movzx eax, byte [ebx + 4]
sub eax, 0x73
je 0x631e58
dec eax
je 0x631d32
dec eax
je 0x631e58
mov edi, dword [esi + 0x28]
push 0
push edi
push 0x6c
lea eax, [edi + 1]
mov dword [esp + 0x1c], edi
mov dword [esp + 0x38], eax
inc eax
push ebp
mov dword [esi + 0x28], eax
call fcn.0066bba0
push ebx
mov dword [ebx + 0x14], eax
call fcn.00619ac0
push edi
push 1
or dword [eax + 8], 0x20
lea eax, [esp + 0x6c]
push eax
call fcn.00665fc0
mov eax, dword [esi + 0x1a0]
mov edi, dword [esp + 0x50]
mov dword [esp + 0x44], eax
lea eax, [esp + 0x70]
push eax
push edi
push esi
call fcn.00663b40
mov ecx, eax
add esp, 0x2c
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x632161
push eax
push dword [esp + 0x30]
push 0x6c
push ebp
call fcn.0066bba0
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x38]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x64], eax
mov dword [ebx + 0x30], 0
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], 0
mov eax, dword [esi + 0x1a0]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x60]
push eax
push ebx
push esi
call fcn.00663b40
mov dword [esp + 0x34], eax
add esp, 0x1c
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x28], eax
mov dword [ebx + 0x30], edi
movzx eax, word [edi + 6]
cmp word [ebx + 6], ax
jle 0x631c44
mov word [ebx + 6], ax
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x631c58
push eax
push dword [esp + 0x18]
call fcn.0064cdb0
add esp, 8
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x34]
push ebp
mov dword [ebx + 0x3c], eax
call fcn.00673b60
mov edi, dword [esp + 0x20]
mov ebp, eax
push edi
call fcn.00673b60
push ebp
push dword [esp + 0x94]
mov ebx, eax
push esi
call fcn.00612c60
push ebp
push dword [esp + 0x28]
push 0x25
push edi
call fcn.0066bba0
push esi
call fcn.00656e50
mov esi, eax
push esi
push dword [esp + 0x3c]
push 0x7a
push edi
call fcn.0066bba0
push 0
push esi
push ebx
push dword [esp + 0x70]
mov edi, eax
push 0x1d
push dword [esp + 0x68]
call fcn.0066bd50
add esp, 0x50
push esi
mov esi, dword [esp + 0x88]
push esi
call fcn.006621c0
push ebp
push ebx
lea eax, [esp + 0x48]
push eax
push 0
push 0
push dword [esp + 0x2c]
push dword [esp + 0xa8]
push esi
call fcn.0063d580
push ebx
mov ebx, dword [esp + 0x48]
push ebx
call fcn.00675920
push edi
mov edi, dword [esp + 0x44]
push edi
push 7
push ebx
call fcn.0066bba0
add esp, 0x40
push ebp
mov ebp, ebx
push ebp
call fcn.00675920
push 0
lea eax, [edi + 1]
push eax
push 0x70
push ebp
call fcn.0066bba0
push 0
push edi
push 0x70
push ebp
call fcn.0066bba0
add esp, 0x28
jmp 0x632009
mov edi, dword [esp + 0x30]
xor eax, eax
mov dword [esp + 0x2c], eax
mov eax, dword [ebx + 0xc]
mov dword [edi + 0xc], eax
mov eax, dword [ebx + 0x10]
mov dword [edi + 0x10], eax
mov eax, dword [ebx + 0x38]
mov dword [edi + 0x38], eax
mov eax, dword [ebx + 0x3c]
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x1a0]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x38]
push eax
push edi
push esi
call fcn.00663b40
mov ecx, eax
mov dword [ebx + 0x38], 0
add esp, 0xc
mov dword [esp + 0x18], ecx
mov dword [ebx + 0x3c], 0
test ecx, ecx
jne 0x632161
mov dword [ebx + 0x30], eax
mov ecx, dword [edi + 0xc]
mov dword [ebx + 0xc], ecx
mov eax, dword [edi + 0x10]
mov dword [ebx + 0x10], eax
test ecx, ecx
je 0x631dc7
push ecx
push 0x16
push ebp
call fcn.0066bb40
mov ecx, dword [ebx + 0x10]
add esp, 0xc
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x631dc7
push ecx
inc ecx
push ecx
push dword [ebx + 0xc]
push 0x93
push ebp
call fcn.0066bc10
add esp, 0x14
mov eax, dword [esi + 0x1a0]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x38]
push eax
push ebx
push esi
call fcn.00663b40
mov dword [esp + 0x24], eax
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x34], eax
mov dword [ebx + 0x30], edi
movzx eax, word [edi + 6]
push eax
movzx eax, word [ebx + 6]
push eax
call fcn.0065add0
mov word [ebx + 6], ax
add esp, 0x14
mov ecx, dword [edi + 0x38]
mov word [esp + 0x10], ax
test ecx, ecx
je 0x631e3d
lea eax, [esp + 0x34]
push eax
push ecx
call fcn.0064d830
add esp, 8
test eax, eax
je 0x631e3d
mov eax, dword [esp + 0x34]
test eax, eax
jle 0x631e3d
cdq
push edx
push eax
call fcn.0065ad30
add esp, 8
cmp word [esp + 0x10], ax
jle 0x631e3d
mov word [ebx + 6], ax
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x632010
push eax
push ebp
call fcn.006736b0
add esp, 8
jmp 0x632010
cmp cl, 1
je 0x631e85
mov edi, dword [esi + 0x28]
push 0
push edi
push 0x6c
lea eax, [edi + 1]
mov dword [esp + 0x1c], edi
push ebp
mov dword [esi + 0x28], eax
call fcn.0066bba0
push ebx
mov dword [ebx + 0x14], eax
call fcn.00619ac0
add esp, 0x14
or dword [eax + 8], 0x20
push edi
lea eax, [esp + 0x6c]
push 1
push eax
call fcn.00665fc0
mov eax, dword [esi + 0x1a0]
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x30], eax
lea eax, [esp + 0x74]
push eax
push edi
push esi
call fcn.00663b40
mov ecx, eax
add esp, 0x18
mov dword [esp + 0x18], ecx
test ecx, ecx
jne 0x632161
cmp byte [ebx + 4], 0x75
mov dword [ebx + 0x30], ecx
mov ecx, dword [ebx + 0x38]
sete al
inc al
mov dword [esp + 0x34], ecx
mov ecx, dword [ebx + 0x3c]
mov byte [esp + 0x68], al
mov dword [ebx + 0x38], 0
mov dword [ebx + 0x3c], 0
mov eax, dword [esi + 0x1a0]
mov dword [esp + 0x20], eax
lea eax, [esp + 0x68]
push eax
push ebx
push esi
mov dword [esp + 0x3c], ecx
call fcn.00663b40
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [ebx + 0x2c]
test eax, eax
je 0x631f1a
push eax
push dword [esp + 0x18]
call fcn.006186f0
add esp, 8
cmp byte [ebx + 4], 0x73
mov eax, dword [ebx + 0x30]
mov dword [esp + 0x28], eax
mov dword [ebx + 0x30], edi
mov dword [ebx + 0x2c], 0
jne 0x631f47
movzx eax, word [edi + 6]
push eax
movzx eax, word [ebx + 6]
push eax
call fcn.0065add0
add esp, 8
mov word [ebx + 6], ax
mov eax, dword [ebx + 0x38]
test eax, eax
je 0x631f5b
push eax
push dword [esp + 0x18]
call fcn.0064cdb0
add esp, 8
cmp byte [esp + 0x38], 1
mov eax, dword [esp + 0x34]
mov dword [ebx + 0x38], eax
mov eax, dword [esp + 0x30]
mov dword [ebx + 0x3c], eax
mov dword [ebx + 0xc], 0
mov dword [ebx + 0x10], 0
je 0x632010
push ebp
call fcn.00673b60
push ebp
mov ebx, eax
call fcn.00673b60
push ebx
push dword [esp + 0x94]
mov edi, eax
push esi
call fcn.00612c60
push ebx
push dword [esp + 0x28]
push 0x25
push ebp
call fcn.0066bba0
mov esi, dword [ebp + 0x88]
lea eax, [esp + 0x5c]
push ebx
push edi
push eax
push 0
push 0
push dword [esp + 0x48]
push dword [esp + 0xc4]
push dword [esp + 0xc4]
call fcn.0063d580
add esp, 0x44
push edi
push ebp
call fcn.00675920
push esi
mov esi, dword [esp + 0x1c]
push esi
push 7
push ebp
call fcn.0066bba0
push ebx
push ebp
call fcn.00675920
push 0
push esi
push 0x70
push ebp
call fcn.0066bba0
mov esi, dword [esp + 0xb4]
add esp, 0x30
mov ebx, dword [esp + 0x88]
xor eax, eax
cmp byte [ebx + 4], 0x74
setne al
push eax
push dword [esp + 0x24]
movzx eax, byte [ebx + 4]
push dword [esp + 0x2c]
push eax
push esi
call fcn.00616860
mov edi, dword [esp + 0x28]
add esp, 0x14
test byte [ebx + 8], 0x20
je 0x6321ef
mov eax, dword [ebx]
push 1
mov eax, dword [eax]
push eax
push edi
mov dword [esp + 0x3c], eax
call fcn.00659cd0
mov esi, eax
add esp, 0xc
mov dword [esp + 0x2c], esi
test esi, esi
jne 0x632064
lea ebx, [eax + 7]
jmp 0x632169
cmp dword [esp + 0x30], 0
lea edi, [esi + 0x14]
jle 0x6320b0
mov ebp, dword [esp + 0x84]
xor esi, esi
push esi
push ebx
push ebp
call fcn.00632200
add esp, 0xc
mov dword [edi], eax
test eax, eax
jne 0x632091
mov eax, dword [esp + 0x14]
mov eax, dword [eax + 8]
mov dword [edi], eax
inc esi
add edi, 4
cmp esi, dword [esp + 0x30]
jl 0x632077
mov esi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x1c]
jmp 0x6320b0
lea edi, [ebx + 0x14]
mov dword [esp + 0x2c], 0
mov ebx, dword [esp + 0x30]
nop
mov edx, dword [edi]
test edx, edx
js 0x632138
mov eax, dword [ebp]
cmp byte [eax + 0x49], 0
je 0x6320d6
mov eax, 0xb2e43c
jmp 0x6320df
mov eax, dword [ebp + 0x58]
lea ecx, [edx + edx*4]
lea eax, [eax + ecx*4]
mov dword [eax + 8], ebx
inc dword [esi]
mov eax, dword [ebp]
cmp byte [eax + 0x49], 0
je 0x6320fb
push esi
push 0xfffffffffffffff7
push eax
call fcn.0061ba30
add esp, 0xc
jmp 0x632121
mov eax, dword [ebp + 0x58]
lea ecx, [edx + edx*4]
cmp byte [eax + ecx*4 + 1], 0
lea eax, [eax + ecx*4]
je 0x63211a
push 0xfffffffffffffff7
push esi
push eax
push ebp
call fcn.0067fa50
add esp, 0x10
jmp 0x632121
mov dword [eax + 0x10], esi
mov byte [eax + 1], 0xf7
mov eax, dword [esp + 0x2c]
inc eax
mov dword [edi], 0xffffffff
add edi, 4
mov dword [esp + 0x2c], eax
cmp eax, 2
jl 0x6320c0
mov ebx, dword [esp + 0x88]
mov ebx, dword [ebx + 0x30]
mov dword [esp + 0x88], ebx
test ebx, ebx
jne 0x6320b0
dec dword [esi]
jne 0x632161
push esi
push dword [esi + 0xc]
call fcn.00647870
add esp, 8
mov ebx, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
mov ecx, dword [esp + 0x8c]
mov eax, dword [esp + 0x40]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x44]
mov dword [ecx + 0xc], eax
mov eax, dword [esp + 0x28]
test eax, eax
je 0x632192
push 1
push eax
push edi
call fcn.00610420
add esp, 0xc
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x70
ret
test eax, eax
je 0x6321a7
mov ecx, str.ORDER_BY
jmp 0x6321ac
mov ecx, str.LIMIT
movzx eax, byte [ebx + 4]
sub eax, 0x74
je 0x6321d0
dec eax
je 0x6321c9
dec eax
je 0x6321c2
mov eax, 0x6c77b8
jmp 0x6321d5
mov eax, str.INTERSECT
jmp 0x6321d5
mov eax, str.EXCEPT
jmp 0x6321d5
mov eax, str.UNION_ALL
push eax
push ecx
push str._s_clause_should_come_after__s_not_before
push esi
call fcn.00649670
add esp, 0x10
mov ebx, 1
jmp 0x632165
mov ebx, dword [esp + 0x18]
jmp 0x632169