Function at 0x4077d6
Capabilities:
Query environment variable

Disassembly:
push 0x88
mov eax, 0x41b43c
call fcn.0041280d
call fcn.00405a22
mov ecx, eax
call fcn.00404c44
lea eax, [ebp - 0x30]
push eax
xor ebx, ebx
lea eax, [ebp - 0x3c]
push eax
push ebx
push ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x30], ebx
call sub.WS2_32.dll_WSCEnumProtocols
cmp eax, 0xffffffff
jne 0x407854
cmp dword [ebp - 0x30], 0x2747
jne 0x407854
cmp dword [ebp - 0x3c], ebx
je 0x40782e
push dword [ebp - 0x3c]
call dword [sym.imp.MSVCR90.dll_malloc]
mov edi, eax
pop ecx
mov dword [ebp - 0x48], edi
cmp edi, ebx
jne 0x40785c
mov esi, str.CHookLoadLibrary::GetDllPathOfAllInstalledProviders
push esi
call fcn.00402c05
pop ecx
test eax, eax
jne 0x407854
push str.lyc:Need_more_memory.
push ebx
push esi
call fcn.00407313
pop ecx
pop ecx
push eax
call fcn.00406d6c
pop ecx
pop ecx
xor al, al
call fcn.00412890
ret
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
push eax
push edi
push ebx
call sub.WS2_32.dll_WSCEnumProtocols
mov esi, eax
cmp esi, 0xffffffff
jne 0x4078a5
mov esi, str.CHookLoadLibrary::GetDllPathOfAllInstalledProviders
push esi
call fcn.00402c05
pop ecx
test eax, eax
jne 0x40789c
push dword [ebp - 0x30]
push str.lyc:WSCEnumProtocols_failed.Error_code_is__u.
push ebx
push esi
call fcn.00407313
pop ecx
pop ecx
push eax
call fcn.00406d6c
add esp, 0xc
push edi
call dword [sym.imp.MSVCR90.dll_free]
jmp 0x407853
lea ecx, [ebp - 0x6c]
call fcn.00405849
mov dword [ebp - 4], ebx
cmp esi, ebx
jle 0x407951
add edi, 0x14
mov dword [ebp - 0x34], esi
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
push ebx
push edi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x30], ebx
call sub.WS2_32.dll_WSCGetProviderPath
cmp eax, 0xffffffff
jne 0x40793f
mov eax, dword [ebp - 0x40]
cmp eax, ebx
je 0x40793f
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412666
mov esi, eax
pop ecx
cmp esi, ebx
je 0x40793f
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x40]
push eax
push esi
push edi
call sub.WS2_32.dll_WSCGetProviderPath
test eax, eax
jne 0x407938
push esi
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_wchar_t_const__]
mov byte [ebp - 4], 1
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x78]
push eax
lea ecx, [ebp - 0x6c]
call fcn.00405059
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
push esi
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
pop ecx
add edi, 0x274
dec dword [ebp - 0x34]
jne 0x4078be
mov edi, dword [ebp - 0x48]
push edi
call dword [sym.imp.MSVCR90.dll_free]
mov eax, dword [ebp - 0x54]
mov eax, dword [eax]
pop ecx
lea ecx, [ebp - 0x6c]
push ecx
push eax
lea ecx, [ebp - 0x38]
call fcn.00403fed
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x4c], eax
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x6c]
push eax
push dword [ebp - 0x54]
lea ecx, [ebp - 0x44]
call fcn.00403fed
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x38], eax
mov eax, dword [ebp - 0x40]
mov dword [ebp - 0x34], eax
jmp 0x407a8a
lea ecx, [ebp - 0x4c]
call fcn.0040278f
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::constructor_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t___const__]
mov byte [ebp - 4], 2
push ebx
push ebx
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
mov esi, dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push eax
call esi
mov edi, eax
cmp edi, ebx
je 0x407a75
xor ecx, ecx
push 2
pop edx
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.00412666
mov ebx, eax
pop ecx
test ebx, ebx
je 0x407a73
push edi
push ebx
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_wchar_t_const____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::c_str_void_const]
push eax
call esi
test eax, eax
je 0x407a6c
push ebx
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t______thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::operator_wchar_t_const__]
lea eax, [ebp - 0x44]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::_String_iterator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::begin_void_]
mov esi, eax
lea eax, [ebp - 0x80]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::_String_iterator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::end_void_]
mov edi, eax
lea eax, [ebp - 0x88]
push eax
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_class_std::_String_iterator_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t_____thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::begin_void_]
push dword [sym.imp.MSVCR90.dll_tolower]
push dword [esi + 4]
push dword [esi]
push dword [edi + 4]
push dword [edi]
push dword [eax + 4]
push dword [eax]
lea eax, [ebp - 0x74]
push eax
call fcn.00404ed5
add esp, 0x20
lea eax, [ebp - 0x2c]
push eax
lea eax, [ebp - 0x94]
push eax
call fcn.00405a22
mov ecx, eax
call fcn.00405059
push ebx
call sub.MSVCR90.dll_void___cdecl_operator_delete___void__
pop ecx
xor ebx, ebx
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP90.dll_public:_void___thiscall_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::destructor_void_]
lea ecx, [ebp - 0x4c]
call fcn.00402827
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x4c]
call fcn.004027c0
test al, al
je 0x407997
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x6c]
call fcn.0040582b
mov al, 1
jmp 0x407856