Function at 0x403e27
Capabilities:
Get hostname
Get session user name
Query environment variable
Read .ini file

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x230
push ebx
push ebp
push esi
push edi
mov edi, ecx
push 0x43b994
lea eax, [edi + 0xcd0]
push eax
call fcn.0041fa56
pop ecx
pop ecx
lea ecx, [esp + 0x18]
mov dword [esp + 0x18], 0x41
lea eax, [edi + 0xc4c]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameW]
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movzx eax, word [esp + 0x26]
lea ecx, [edi + 0xd02]
push eax
movzx eax, word [esp + 0x26]
push eax
movzx eax, word [esp + 0x28]
push eax
push str._04i_02i_02i
push ecx
call fcn.004029e8
movzx eax, word [esp + 0x3e]
lea ecx, [edi + 0xd14]
add esp, 0x14
push eax
movzx eax, word [esp + 0x2c]
push eax
push str._02i_02i
push ecx
call fcn.004029e8
add esp, 0x10
cmp dword [edi + 0xc48], 0
je 0x403ecc
push str.120___R
mov ecx, edi
call fcn.004032cc
push 0x1e
pop ebp
push ebp
lea ebx, [edi + 0xd1e]
mov esi, str._USERNAME_
push ebx
push esi
call dword [sym.imp.KERNEL32.dll_ExpandEnvironmentStringsW]
push ebx
push esi
call fcn.0041fb07
pop ecx
pop ecx
test eax, eax
jne 0x403f00
lea eax, [esp + 0x1c]
mov dword [esp + 0x1c], ebp
push eax
push ebx
call dword [sym.imp.ADVAPI32.dll_GetUserNameW]
cmp dword [edi + 0xc48], 0
je 0x403f15
push str.121___R
mov ecx, edi
call fcn.004032cc
push 0
push 0x15
lea ebp, [edi + 0xd5c]
push ebp
lea esi, [edi + 0x834]
call fcn.00404caa
test eax, eax
jne 0x403f68
lea eax, [edi + 0xc]
push eax
lea eax, [esp + 0x34]
push eax
call fcn.0041fa56
lea eax, [esp + 0x38]
push str.WDUPDATE.NET
push eax
call fcn.0041fa78
add esp, 0x10
lea eax, [esp + 0x30]
push eax
push 0x14
push ebp
push 0x43ad64
push str.VERSION
push esi
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringW]
lea eax, [edi + 0x834]
push eax
lea esi, [edi + 0xd86]
push esi
call fcn.0041fa56
pop ecx
pop ecx
mov ecx, dword [edi + 0x11ac]
lea edx, [esp + 0x14]
push 0
mov word [esp + 0x18], 0xfeff
push 2
mov eax, dword [ecx]
push edx
call dword [eax + 0x14]
mov eax, dword [edi + 0x11ac]
push str._LOCK__r_n
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov eax, dword [edi + 0x11ac]
lea edx, [edi + 0xc4c]
push edx
push str.MACHINE_s_r_n
push eax
mov ecx, dword [eax]
call dword [ecx + 0x3c]
mov eax, dword [edi + 0x11ac]
lea edx, [edi + 0xcd0]
add esp, 0x14
mov ecx, dword [eax]
push edx
push str.IP_s_r_n
push eax
call dword [ecx + 0x3c]
mov eax, dword [edi + 0x11ac]
lea edx, [edi + 0xd02]
add esp, 0xc
mov ecx, dword [eax]
push edx
push str.DATECONNECT_s_r_n
push eax
call dword [ecx + 0x3c]
mov eax, dword [edi + 0x11ac]
lea edx, [edi + 0xd14]
add esp, 0xc
mov ecx, dword [eax]
push edx
push str.HEURECONNECT_s_r_n
push eax
call dword [ecx + 0x3c]
mov eax, dword [edi + 0x11ac]
add esp, 0xc
mov ecx, dword [eax]
push ebx
push str.LOGIN_s_r_n
push eax
call dword [ecx + 0x3c]
mov eax, dword [edi + 0x11ac]
add esp, 0xc
mov ecx, dword [eax]
push ebp
push str.VERSION_s_r_n
push eax
call dword [ecx + 0x3c]
mov eax, dword [edi + 0x11ac]
add esp, 0xc
mov ecx, dword [eax]
push esi
push str.APPLICATION_s_r_n
push eax
call dword [ecx + 0x3c]
add esp, 0xc
xor eax, eax
inc eax
pop edi
pop esi
pop ebp
pop ebx
mov esp, ebp
pop ebp
ret