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

Disassembly:
sub esp, 0x3c
push ebx
push ebp
mov ebp, dword [esp + 0x48]
mov eax, ebp
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x24], 0
call fcn.10017ea0
mov ebx, eax
test ebx, ebx
jne 0x100461bc
pop ebp
pop ebx
add esp, 0x3c
ret
push esi
push edi
mov eax, ebp
call fcn.10009b50
mov esi, dword [esp + 0x54]
test byte [esi + 4], 0x20
jne 0x100461da
mov edi, ebp
call fcn.10019df0
mov dword [esp + 0x18], eax
cmp byte [ebp + 0x1be], 2
jne 0x10046239
cmp byte [esi], 0x4b
mov ecx, str.LIST
je 0x100461f2
mov ecx, str.SCALAR
cmp dword [esp + 0x18], 0
mov eax, 0x1005bafa
jge 0x10046203
mov eax, str.CORRELATED
mov edx, dword [ebp + 0x1d0]
mov esi, dword [ebp]
push edx
push ecx
push eax
push str.EXECUTE__s_s_SUBQUERY__d
call fcn.1001d320
push 0xffffffffffffffff
push eax
mov eax, dword [ebp + 0x1cc]
push eax
push 0xa0
push ebx
xor eax, eax
xor ecx, ecx
call fcn.10015ec0
mov esi, dword [esp + 0x78]
add esp, 0x24
cmp byte [esi], 0x4b
je 0x100462de
mov edi, dword [esi + 0x14]
inc dword [ebp + 0x48]
mov edx, dword [ebp + 0x48]
push 0
lea eax, [esp + 0x3c]
call fcn.1000b140
mov eax, dword [esp + 0x40]
add esp, 4
xor ecx, ecx
cmp byte [esi], 0x77
mov esi, ebx
jne 0x10046273
mov byte [esp + 0x38], 0xa
mov dword [esp + 0x40], eax
push 0x1a
jmp 0x1004627a
mov byte [esp + 0x38], 3
push 0x17
call fcn.10011470
mov ecx, dword [edi + 0x3c]
mov edx, dword [ebp]
add esp, 4
push ecx
push edx
call fcn.10012ab0
push 0x1005ca30
push 0
push ebp
xor ecx, ecx
mov eax, 0x84
call fcn.1001f7e0
lea ecx, [esp + 0x4c]
push ecx
mov dword [edi + 0x3c], eax
mov eax, 0xfdff
and word [edi + 6], ax
push edi
push ebp
mov dword [edi + 8], 0
call fcn.10042940
add esp, 0x20
test eax, eax
jne 0x1004637d
mov edx, dword [esp + 0x3c]
mov esi, dword [esp + 0x54]
mov dword [esp + 0x2c], edx
jmp 0x1004655c
mov eax, dword [esi + 0xc]
call fcn.10016c80
mov edi, dword [esp + 0x5c]
mov byte [esp + 0x13], al
mov eax, dword [ebp + 0x44]
mov dword [esi + 0x1c], eax
inc dword [ebp + 0x44]
mov ecx, dword [esi + 0x1c]
xor eax, eax
test edi, edi
sete al
push 0x39
mov esi, ebx
call fcn.10011470
add esp, 4
mov dword [esp + 0x34], eax
test edi, edi
je 0x1004631f
mov dword [esp + 0x14], 0
jmp 0x10046336
mov edi, dword [ebp]
push 1
push 1
call fcn.10017e50
mov edi, dword [esp + 0x64]
add esp, 8
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x54]
test dword [esi + 4], 0x800
je 0x100463a4
mov edx, dword [esi + 0x1c]
mov edi, dword [esi + 0x14]
push 0xb
lea eax, [esp + 0x3c]
call fcn.1000b140
mov cl, byte [esp + 0x17]
mov edx, eax
push edx
push edi
mov byte [esp + 0x45], cl
push ebp
mov dword [edi + 8], 0
call fcn.10042940
add esp, 0x10
test eax, eax
je 0x10046387
mov edx, dword [esp + 0x14]
call fcn.1000b2a0
pop edi
pop esi
pop ebp
xor eax, eax
pop ebx
add esp, 0x3c
ret
mov edi, dword [edi]
mov eax, dword [edi + 4]
mov edi, dword [eax]
mov eax, dword [esi + 0xc]
mov esi, ebp
call fcn.1002b660
mov ecx, dword [esp + 0x14]
mov dword [ecx + 0x14], eax
jmp 0x10046540
mov edx, dword [esi + 0x14]
mov dword [esp + 0x20], edx
test edx, edx
je 0x10046544
cmp byte [esp + 0x13], 0
jne 0x100463bf
mov byte [esp + 0x13], 0x41
cmp dword [esp + 0x14], 0
je 0x100463dd
mov eax, dword [esi + 0xc]
push ebp
call fcn.1002b510
mov edx, dword [esp + 0x18]
mov dword [edx + 0x14], eax
mov edx, dword [esp + 0x24]
add esp, 4
mov eax, ebp
call fcn.10009d70
mov dword [esp + 0x28], eax
mov eax, ebp
call fcn.10009d70
mov dword [esp + 0x1c], eax
test edi, edi
je 0x1004640d
push 0x1a
xor ecx, ecx
mov esi, ebx
call fcn.10011470
mov esi, dword [esp + 0x58]
mov edx, dword [esp + 0x24]
add esp, 4
mov eax, dword [edx]
mov ecx, dword [edx + 4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], ecx
test eax, eax
jle 0x1004652c
jmp 0x10046434
mov esi, dword [esp + 0x54]
cmp dword [esp + 0x18], 0
mov edx, dword [esp + 0x20]
mov edi, dword [edx]
jl 0x10046462
mov edx, edi
call fcn.10012e10
test eax, eax
jne 0x10046462
mov eax, dword [esp + 0x18]
push eax
push ebx
call fcn.100116b0
add esp, 8
mov dword [esp + 0x18], 0xffffffff
cmp dword [esp + 0x5c], 0
je 0x10046497
lea ecx, [esp + 0x30]
push ecx
push edi
call fcn.10009760
add esp, 8
test eax, eax
je 0x10046497
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esi + 0x1c]
push edx
push eax
push ecx
push 0x5f
mov esi, ebx
call fcn.100113f0
add esp, 0x10
jmp 0x10046516
mov edx, dword [esp + 0x28]
push edx
push edi
push ebp
call fcn.1004b810
add esp, 0xc
cmp dword [esp + 0x5c], 0
mov edi, eax
je 0x100464de
mov eax, ebx
call fcn.10007940
add eax, 2
push 0x26
mov ecx, edi
mov esi, ebx
call fcn.10011470
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x58]
mov edx, dword [ecx + 0x1c]
push edi
push eax
push edx
push 0x54
call fcn.100113f0
add esp, 0x14
jmp 0x10046516
push 1
lea eax, [esp + 0x17]
push eax
mov eax, dword [esp + 0x24]
push edi
push 0x31
push ebx
mov ecx, 1
call fcn.10015ec0
mov ecx, 1
mov eax, ebp
call fcn.10009bf0
mov ecx, dword [esi + 0x1c]
mov eax, dword [esp + 0x30]
push 0x6f
mov esi, ebx
call fcn.10011470
add esp, 0x18
mov eax, dword [esp + 0x24]
add dword [esp + 0x20], 0x18
dec eax
mov dword [esp + 0x24], eax
test eax, eax
jg 0x10046430
mov esi, dword [esp + 0x28]
mov edx, ebp
call fcn.10009d90
mov esi, dword [esp + 0x1c]
call fcn.10009d90
mov esi, dword [esp + 0x54]
mov eax, dword [esp + 0x14]
test eax, eax
je 0x1004655c
push 0xfffffffffffffffa
push eax
mov eax, dword [esp + 0x3c]
push ebx
call fcn.10011740
add esp, 0xc
mov edi, dword [esp + 0x58]
test edi, edi
je 0x10046572
mov ecx, dword [esi + 0x1c]
push ecx
mov eax, ebx
call fcn.10012e60
add esp, 4
mov eax, dword [esp + 0x18]
test eax, eax
jl 0x10046585
push eax
mov esi, ebx
call fcn.100079d0
add esp, 4
mov eax, ebp
call fcn.10009b60
mov eax, dword [esp + 0x2c]
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x3c
ret