Function at 0x4093a0
Capabilities:
Get hostname
Get session user name
Query environment variable

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x634
push ebx
xor ebx, ebx
push esi
push edi
xor eax, eax
mov ecx, 0x40
lea edi, [esp + 0x21]
mov byte [esp + 0x20], bl
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x339]
mov byte [esp + 0x338], bl
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x129]
mov byte [esp + 0x128], bl
rep stosd dword es:[edi], eax
mov ecx, 0x41
lea edi, [esp + 0x231]
mov byte [esp + 0x230], bl
rep stosd dword es:[edi], eax
xor esi, esi
cmp edx, 4
mov edi, 0x105
mov dword [esp + 0x18], 0x101
mov dword [esp + 0x14], edi
mov dword [esp + 0x10], ebx
je 0x409572
cmp edx, 8
jne 0x4096b3
mov edi, dword [ebp + 8]
cmp dword [edi + 0x14], 1
jne 0x40946f
cmp dword [edi + 0xc], ebx
jne 0x40946f
push 0x101
lea eax, [esp + 0x24]
push eax
push str.USERNAME
call dword [sym.imp.KERNEL32.dll_GetEnvironmentVariableA]
cmp eax, ebx
mov dword [esp + 0x18], eax
je 0x40946f
lea eax, [esp + 0x20]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409460
sub eax, edx
mov dword [esp + 0x1c], eax
jne 0x4094c1
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test eax, eax
je 0x40949e
lea eax, [esp + 0x20]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409490
sub eax, edx
cmp eax, 1
jae 0x4094c1
push ebx
mov esi, 0xffffffe9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 2
push 1
push edi
call fcn.0040bd80
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea eax, [esp + 0x20]
push eax
call fcn.00408cb0
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x40952c
lea ecx, [esp + 0x20]
push ecx
lea edx, [esp + 0x444]
push str._Found_invalid_characters_in_the_username___s__which_will_be_used_for_the_machine_ID.
push edx
call fcn.0040c6b6
lea eax, [esp + 0x44c]
push eax
push esi
push 1
push 3
push edi
call fcn.0040bd80
lea ecx, [esp + 0x40]
push ecx
call fcn.00408d10
add esp, 0x24
cmp eax, ebx
je 0x409519
push str.Unable_to_replace_invalid_characters_in_the_username.
push eax
push 3
jmp 0x409521
push str.Proceeding_with_installation_after_replacing_invalid_characters_in_the_username.
push ebx
push 1
push 3
push edi
call fcn.0040bd80
add esp, 0x14
lea eax, [esp + 0x20]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409533
sub eax, edx
xor ecx, ecx
cmp eax, ebx
jle 0x409553
cmp byte [esp + ecx + 0x20], 0x2e
jne 0x40954e
mov byte [esp + ecx + 0x20], 0x2d
inc ecx
cmp ecx, eax
jl 0x409542
push 0x50
lea edx, [esp + 0x24]
push edx
add edi, 0x26c
push edi
call fcn.0040c870
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
push ebx
push ebx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x138]
push ecx
call fcn.00402c80
mov esi, eax
add esp, 0x14
cmp esi, ebx
jne 0x4095c2
mov eax, dword [esp + 0x10]
cmp eax, 3
je 0x40959e
cmp eax, 4
jne 0x4095c2
mov eax, dword [ebp + 8]
push 0x51
lea edx, [esp + 0x12c]
push edx
add eax, 0x2c4
push eax
call fcn.0040c870
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cx, word [0x41a784]
mov dl, byte [0x41a786]
lea eax, [esp + 0x14]
mov word [esp + 0x230], cx
push eax
lea ecx, [esp + 0x33c]
push ecx
mov byte [esp + 0x130], bl
mov dword [esp + 0x1c], edi
mov byte [esp + 0x23a], dl
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
lea eax, [esp + 0x230]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409606
sub eax, edx
mov edx, 0x104
sub edx, eax
push edx
lea eax, [esp + 0x33c]
push eax
lea ecx, [esp + 0x238]
push ecx
call fcn.0040ce80
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0x240]
push eax
push ebx
call fcn.00409230
mov esi, eax
add esp, 0x18
cmp esi, ebx
je 0x40966a
mov ecx, dword [ebp + 8]
push str.Error_occurred_in_the_Automatic_Domain_Name_detection.
push esi
push 2
push 1
push ecx
call fcn.0040bd80
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x128], bl
jne 0x409697
mov edx, dword [ebp + 8]
push str.Domain_name_could_not_be_found._This_machine_may_not_belong_to_a_domain.
mov esi, 0xfffffffe
push esi
push 2
push 3
push edx
call fcn.0040bd80
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 8]
push 0x51
lea eax, [esp + 0x12c]
push eax
add ecx, 0x2c4
push ecx
call fcn.0040c870
add esp, 0xc
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret