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

Disassembly:
sub esp, 0x38
push ebx
push ebp
push esi
mov esi, dword [esp + 0x48]
push edi
push esi
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x20], 0
call fcn.0047caf0
mov edi, eax
add esp, 4
test edi, edi
jne 0x46e442
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret
push esi
call fcn.0046f090
mov ebx, dword [esp + 0x54]
add esp, 4
test byte [ebx + 2], 0x20
jne 0x46e462
push esi
call fcn.0046e830
add esp, 4
mov dword [esp + 0x10], eax
cmp byte [esi + 0x1d4], 2
jne 0x46e4bf
mov al, byte [ebx]
mov ecx, str.LIST
cmp al, 0x48
je 0x46e47b
mov ecx, str.SCALAR
mov eax, dword [esp + 0x10]
test eax, eax
mov eax, 0x517348
jge 0x46e48d
mov eax, str.CORRELATED
mov edx, dword [esi + 0x1e8]
push edx
push ecx
push eax
mov eax, dword [esi]
push str.EXECUTE__s_s_SUBQUERY__d
push eax
call fcn.0044fe80
mov ecx, dword [esi + 0x1e4]
push 0xffffffffffffffff
push eax
push 0
push 0
push ecx
push 0x96
push edi
call fcn.0046ba30
add esp, 0x30
cmp byte [ebx], 0x48
je 0x46e563
mov eax, dword [esi + 0x4c]
mov ebp, dword [ebx + 0x10]
inc eax
lea edx, [esp + 0x28]
push eax
push 0
push edx
mov dword [esi + 0x4c], eax
call fcn.0047c340
mov al, byte [ebx]
add esp, 0xc
cmp al, 0x74
jne 0x46e4f8
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x28], 6
push eax
push 0
push 0xa
jmp 0x46e506
mov ecx, dword [esp + 0x2c]
mov byte [esp + 0x28], 3
push ecx
push 0
push 7
push edi
call fcn.0046c410
mov edx, dword [ebp + 0x48]
mov eax, dword [esi]
add esp, 0x10
push edx
push eax
call fcn.00462ed0
push 0x4ede18
push 0
push 0
push 0x81
push esi
call fcn.0046b0f0
lea ecx, [esp + 0x44]
mov dword [ebp + 0x48], eax
push ecx
push ebp
push esi
mov dword [ebp + 8], 0
call fcn.0047d6a0
add esp, 0x28
test eax, eax
je 0x46e556
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x1c], edx
jmp 0x46e801
mov ebp, dword [esp + 0x54]
mov eax, dword [ebx + 8]
test ebp, ebp
mov dword [esp + 0x50], eax
je 0x46e580
push ebp
push 0
push 0xa
push edi
call fcn.0046c410
add esp, 0x10
mov ecx, dword [esp + 0x50]
push ecx
call fcn.0046df20
mov edx, dword [esi + 0x48]
mov byte [esp + 0x50], al
mov dword [ebx + 0x18], edx
mov eax, dword [esi + 0x48]
mov edx, dword [esp + 0x5c]
inc eax
mov dword [esi + 0x48], eax
mov ecx, dword [ebx + 0x18]
xor eax, eax
test edx, edx
sete al
push eax
push ecx
push 0x2a
push edi
call fcn.0046c410
add esp, 0x14
mov dword [esp + 0x24], eax
test ebp, ebp
jne 0x46e5c9
push 8
push edi
call fcn.0046c940
add esp, 8
mov ax, word [ebx + 2]
xor edx, edx
mov dword [esp + 0x28], edx
and eax, 0x800
mov dword [esp + 0x2c], edx
cmp eax, 0x800
mov dword [esp + 0x30], edx
mov word [esp + 0x2e], 1
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], 0x517c9c
jne 0x46e66e
mov ecx, dword [ebx + 0x18]
lea edx, [esp + 0x38]
push ecx
push 7
push edx
call fcn.0047c340
mov al, byte [esp + 0x58]
mov ecx, dword [ebx + 0x10]
mov byte [esp + 0x45], al
lea edx, [esp + 0x44]
mov dword [ecx + 8], 0
mov eax, dword [ebx + 0x10]
push edx
push eax
push esi
call fcn.0047d6a0
add esp, 0x18
test eax, eax
je 0x46e63c
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x38
ret
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx]
test eax, eax
je 0x46e7e4
cmp dword [eax], 0
jle 0x46e7e4
mov edx, dword [eax + 8]
mov ecx, dword [ebx + 8]
mov eax, dword [edx]
push eax
push ecx
push esi
call fcn.0046e000
add esp, 0xc
mov dword [esp + 0x34], eax
jmp 0x46e7e4
mov ebp, dword [ebx + 0x10]
test ebp, ebp
je 0x46e7e4
mov al, byte [esp + 0x4c]
test al, al
jne 0x46e686
mov byte [esp + 0x4c], 0x62
mov edx, dword [ebx + 8]
push edx
push esi
call fcn.0046dd90
push esi
mov dword [esp + 0x40], eax
mov dword [esp + 0x3c], 0x517c9c
call fcn.0046c450
push esi
mov dword [esp + 0x28], eax
call fcn.0046c450
push eax
push 0
push 0xa
push edi
mov dword [esp + 0x70], eax
call fcn.0046c410
mov eax, dword [ebp]
mov ecx, dword [ebp + 8]
add esp, 0x20
mov dword [esp + 0x54], ecx
test eax, eax
jle 0x46e7cb
mov dword [esp + 0x14], eax
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x10]
test eax, eax
mov ebp, dword [edx]
jl 0x46e705
push ebp
call fcn.0046e060
add esp, 4
test eax, eax
jne 0x46e705
mov eax, dword [esp + 0x10]
push eax
push edi
call fcn.0045fca0
add esp, 8
mov dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 0x58]
test eax, eax
je 0x46e73a
lea ecx, [esp + 0x20]
push ecx
push ebp
call fcn.0046b670
add esp, 8
test eax, eax
je 0x46e73a
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0x50]
mov ecx, dword [ebx + 0x18]
push edx
push eax
push ecx
push 0x3a
push edi
call fcn.0046ba70
add esp, 0x14
jmp 0x46e7b1
mov edx, dword [esp + 0x18]
push edx
push ebp
push esi
call fcn.0046d1d0
mov ebp, eax
mov eax, dword [esp + 0x64]
add esp, 0xc
test eax, eax
je 0x46e77d
push edi
call fcn.0046cf30
add eax, 2
push eax
push ebp
push 0x15
push edi
call fcn.0046c410
mov eax, dword [esp + 0x64]
mov ecx, dword [ebx + 0x18]
push ebp
push eax
push ecx
push 0x39
push edi
call fcn.0046ba70
add esp, 0x28
jmp 0x46e7b1
mov eax, dword [esp + 0x50]
lea edx, [esp + 0x4c]
push 1
push edx
push eax
push 1
push ebp
push 0x1f
push edi
call fcn.0046ba30
push 1
push ebp
push esi
call fcn.0046f2c0
mov ecx, dword [esp + 0x78]
mov edx, dword [ebx + 0x18]
push ecx
push edx
push 0x61
push edi
call fcn.0046c410
add esp, 0x38
mov ecx, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
add ecx, 0x14
dec eax
mov dword [esp + 0x54], ecx
mov dword [esp + 0x14], eax
jne 0x46e6d4
mov eax, dword [esp + 0x18]
push eax
push esi
call fcn.0046c480
mov ecx, dword [esp + 0x58]
push ecx
push esi
call fcn.0046c480
add esp, 0x10
mov eax, dword [esp + 0x58]
test eax, eax
jne 0x46e801
mov eax, dword [esp + 0x24]
lea edx, [esp + 0x28]
push 0xfffffffffffffffa
push edx
push eax
push edi
call fcn.0045fcf0
add esp, 0x10
mov eax, dword [esp + 0x10]
test eax, eax
jl 0x46e813
push eax
push edi
call fcn.0046c430
add esp, 8
push 1
push esi
call fcn.0046f0a0
mov eax, dword [esp + 0x24]
add esp, 8
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x38
ret