Function at 0x4c69c0
Capabilities:
Print debug messages
Query environment variable

Disassembly:
push ebp
mov ebp, esp
push eax
mov eax, 0x28
add esp, 0xfffff004
push eax
dec eax
jne 0x4c69c9
mov eax, dword [ebp - 4]
add esp, 0xfffffd84
push ebx
push esi
push edi
xor eax, eax
mov dword [ebp - 0x28280], eax
mov dword [ebp - 0x2827c], eax
mov dword [ebp - 0x28278], eax
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4c6d29
push dword fs:[eax]
mov dword fs:[eax], esp
mov dword [ebp - 8], 0x277a
mov dword [0x4dc75c], 0x29cf293a
mov word [0x4dc760], 0x1881
mov word [0x4dc762], 0x4069
mov byte [0x4dc764], 0x9e
mov byte [0x4dc765], 0x11
mov byte [0x4dc766], 0xe3
mov byte [0x4dc767], 0x96
mov byte [0x4dc768], 0x98
mov byte [0x4dc769], 0xd0
mov byte [0x4dc76a], 0xaf
mov byte [0x4dc76b], 0x95
mov eax, dword [ebp + 0x10]
cmp dword [eax + 0x28], 1
jg 0x4c6a77
push 0x4c6d3c
call sub.kernel32.dll_OutputDebugStringW
jmp 0x4c6d03
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
push 0
push 0
call sub.ws2_32.dll_WSCEnumProtocols
lea eax, [ebp - 0x18]
push eax
lea eax, [ebp - 0x1c]
push eax
lea eax, [ebp - 0x28068]
push eax
push 0
call sub.ws2_32.dll_WSCEnumProtocols
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x14]
dec ebx
test ebx, ebx
jl 0x4c6ad6
inc ebx
lea esi, [ebp - 0x28054]
mov edx, 0x4dc75c
mov eax, esi
mov ecx, 0x10
call fcn.00412394
test al, al
je 0x4c6acd
mov eax, dword [esi + 0x10]
mov dword [ebp - 0x20], eax
jmp 0x4c6ad6
add esi, 0x274
dec ebx
jne 0x4c6ab0
mov eax, dword [ebp + 0x10]
mov ebx, dword [eax + 0x28]
dec ebx
test ebx, ebx
jl 0x4c6b00
inc ebx
xor edi, edi
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + edi*4 + 0x2c]
cmp eax, dword [ebp - 0x20]
jne 0x4c6afc
mov eax, dword [ebp + 0x10]
mov eax, dword [eax + edi*4 + 0x30]
mov dword [ebp - 0x24], eax
jmp 0x4c6b00
inc edi
dec ebx
jne 0x4c6ae4
mov ebx, dword [ebp - 0x14]
dec ebx
test ebx, ebx
jl 0x4c6b50
inc ebx
lea esi, [ebp - 0x28044]
mov eax, dword [esi]
cmp eax, dword [ebp - 0x24]
jne 0x4c6b47
mov dword [ebp - 0xc], 0xff
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x28272]
push eax
lea eax, [esi - 0x10]
push eax
call sub.ws2_32.dll_WSCGetProviderPath
inc eax
jne 0x4c6b50
push 0x4c6d94
call sub.kernel32.dll_OutputDebugStringW
jmp 0x4c6d03
add esi, 0x274
dec ebx
jne 0x4c6b0f
push 0xff
lea eax, [ebp - 0x28272]
push eax
lea eax, [ebp - 0x28272]
push eax
call sub.kernel32.dll_ExpandEnvironmentStringsW
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x28278]
call fcn.00412fbc
mov eax, dword [ebp - 0x28278]
call fcn.00413140
test al, al
jne 0x4c6b95
push 0x4c6dbc
call sub.kernel32.dll_OutputDebugStringW
jmp 0x4c6d03
lea eax, [ebp - 0x28272]
push eax
call sub.kernel32.dll_LoadLibraryW
mov ebx, eax
test ebx, ebx
jne 0x4c6bb6
push 0x4c6dfc
call sub.kernel32.dll_OutputDebugStringW
jmp 0x4c6d03
push 0x4c6e20
push ebx
call fcn.0040c620
mov ebx, eax
mov eax, dword [ebp + 0x50]
push eax
lea edx, [ebp + 0x14]
mov eax, 0xe
push dword [edx + eax*4]
dec eax
jns 0x4c6bcf
mov eax, dword [ebp + 0x10]
push eax
mov eax, dword [ebp + 0xc]
push eax
movzx eax, word [ebp + 8]
push eax
call ebx
mov dword [ebp - 0x10], eax
cmp dword [ebp - 0x10], 0
je 0x4c6bfc
push 0x4c6e38
call sub.kernel32.dll_OutputDebugStringW
jmp 0x4c6d03
mov eax, dword [ebp + 0x50]
mov esi, eax
mov edi, 0x4dc6d8
mov ecx, 0x1e
rep movsd dword es:[edi], dword [esi]
lea eax, [ebp - 0x2827c]
push eax
call fcn.00444530
mov edx, dword [ebp - 0x2827c]
lea eax, [ebp - 4]
mov ecx, 0
call fcn.0040775c
lea eax, [ebp - 0x28280]
push eax
call fcn.00444530
mov eax, dword [ebp - 0x28280]
mov edx, 0x4c6e6c
call fcn.00407c90
jne 0x4c6c7c
mov dl, 1
mov eax, dword [0x4c5248]
call fcn.004ce378
mov dword [0x4dc76c], eax
mov eax, 0x4c6894
mov edx, dword [ebp + 0x50]
mov dword [edx + 0x5c], eax
mov eax, 0x4c68f4
mov edx, dword [ebp + 0x50]
mov dword [edx + 0x4c], eax
mov eax, 0x4c673c
mov edx, dword [ebp + 0x50]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 4]
mov edx, 0x4c6e98
call fcn.00406e50
je 0x4c6c9a
mov eax, dword [ebp - 4]
mov edx, 0x4c6eb4
call fcn.00406e50
jne 0x4c6ca5
mov eax, 0x4c673c
mov edx, dword [ebp + 0x50]
mov dword [edx + 0x1c], eax
mov eax, dword [ebp - 4]
mov edx, 0x4c6ed0
call fcn.00406e50
je 0x4c6cc3
mov eax, dword [ebp - 4]
mov edx, 0x4c6ee8
call fcn.00406e50
jne 0x4c6cdc
push 0x4dc770
push 0x4c5e1c
push 0x4c6ef4
push 0x4c6f00
call fcn.004c5d54
mov eax, dword [ebp - 4]
mov edx, 0x4c6f18
call fcn.00406e50
jne 0x4c6cfe
mov eax, dword [0x4d6214]
cmp dword [eax], 0
jne 0x4c6cfe
mov eax, dword [ebp - 4]
push eax
call fcn.004430f8
xor eax, eax
mov dword [ebp - 8], eax
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c6d30
lea eax, [ebp - 0x28280]
mov edx, 3
call fcn.00407518
lea eax, [ebp - 4]
call fcn.004066e0
ret