Function at 0x4071a0
Capabilities:
Read .ini file

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x412e88
push eax
mov dword fs:[0], esp
push ebx
push ebp
push esi
push edi
mov ebp, dword [esp + 0x24]
mov dword [esp + 0x18], 1
test ebp, ebp
je 0x407457
mov esi, dword [esp + 0x20]
test esi, esi
je 0x407457
lea ecx, [esp + 0x24]
call sub.MFC42.DLL_CString::CString
mov eax, dword [esp + 0x28]
mov ebx, dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
push eax
push 0
push str.HasProxy
push str.PROXY
mov byte [esp + 0x28], 2
call ebx
mov ecx, dword [esp + 0x28]
mov dword [esi], eax
push ecx
push 2
push str.SockType
push str.PROXY
call ebx
test al, al
mov byte [esi + 4], al
je 0x407228
cmp al, 1
je 0x407228
cmp al, 2
je 0x407228
mov byte [esi + 4], 0
mov edx, dword [esp + 0x28]
push edx
push 0x50
push str.ProxyPort
push str.PROXY
call ebx
mov dword [esi + 5], eax
mov eax, dword [esp + 0x28]
mov edi, dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push eax
lea ecx, [esi + 9]
push 0x63
push ecx
push 0x41bd10
push str.ProxyIP
push str.PROXY
call edi
mov edx, dword [esp + 0x28]
lea eax, [esi + 0xd1]
push edx
push 0x63
push eax
push 0x41bd10
push str.ProxyUser
push str.PROXY
call edi
mov ecx, dword [esp + 0x28]
lea edx, [esi + 0x6d]
push ecx
push 0x63
push edx
push 0x41bd10
push str.ProxyPass
push str.PROXY
call edi
mov eax, dword [esp + 0x28]
push eax
push 0
push str.HasTdxProxy
push str.TDXPROXY
call ebx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], eax
push ecx
push 0
push str.buse
push str.TDXPROXY
call ebx
test eax, eax
je 0x4072d8
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4072d8
mov eax, 1
jmp 0x4072da
xor eax, eax
mov edx, dword [esp + 0x28]
mov dword [esi + 0x135], eax
push edx
lea eax, [esi + 0x139]
push 0x63
push eax
push 0x41bd10
push 0x41b534
push str.TDXPROXY
call edi
mov ecx, dword [esp + 0x28]
push ecx
push 0x1bb
push str.Port
push str.TDXPROXY
call ebx
mov edx, dword [esp + 0x2c]
mov dword [esi + 0x19d], eax
push edx
push 0
push str.HostNum
push str.HQHOST
call ebx
xor ecx, ecx
mov dword [ebp], eax
test eax, eax
setle cl
dec ecx
and eax, ecx
cmp eax, 0x32
mov dword [ebp], eax
jl 0x407348
mov eax, 0x32
mov edx, dword [esp + 0x2c]
mov dword [ebp], eax
push edx
push 0
push str.PrimaryHost
push str.HQHOST
call ebx
xor ecx, ecx
mov dword [ebp + 4], eax
test eax, eax
setl cl
dec ecx
and eax, ecx
mov ecx, dword [ebp]
mov dword [ebp + 4], eax
lea edx, [ecx - 1]
cmp edx, eax
jge 0x40737a
mov eax, edx
test ecx, ecx
mov dword [ebp + 4], eax
jle 0x407449
lea edx, [ebp + 0x1390]
mov esi, 1
mov dword [esp + 0x20], edx
lea edi, [ebp + 0x9cc]
push esi
lea eax, [esp + 0x28]
push str.HostName_02d
push eax
call sub.MFC42.DLL_CString::Format
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
add esp, 0xc
lea edx, [edi - 0x9c4]
push ecx
push 0x30
push edx
push 0x41bd10
push eax
push str.HQHOST
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
lea ecx, [esp + 0x28]
push str.IPAddress_02d
push ecx
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
add esp, 0xc
push edx
push 0x30
push edi
push 0x41bd10
push eax
push str.HQHOST
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
push esi
lea ecx, [esp + 0x28]
push str.Port_02d
push ecx
call sub.MFC42.DLL_CString::Format
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x30]
add esp, 0xc
push edx
push 0x1e1d
push eax
push str.HQHOST
call ebx
mov ecx, dword [esp + 0x20]
add edi, 0x32
mov word [ecx], ax
mov eax, dword [ebp]
add ecx, 2
inc esi
mov dword [esp + 0x20], ecx
lea ecx, [esi - 1]
cmp ecx, eax
jl 0x40739a
lea ecx, [esp + 0x24]
mov byte [esp + 0x18], 1
call fcn.0040cfa6
lea ecx, [esp + 0x28]
mov byte [esp + 0x18], 0
call fcn.0040cfa6
lea ecx, [esp + 0x2c]
mov dword [esp + 0x18], 0xffffffff
call fcn.0040cfa6
mov ecx, dword [esp + 0x10]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0xc
ret