Function at 0x4093d0
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 0x4095a2
cmp edx, 8
jne 0x4096e3
mov edi, dword [ebp + 8]
cmp dword [edi + 0x14], 1
jne 0x40949f
cmp dword [edi + 0xc], ebx
jne 0x40949f
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 0x40949f
lea eax, [esp + 0x20]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409490
sub eax, edx
mov dword [esp + 0x1c], eax
jne 0x4094f1
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x24]
push edx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
test eax, eax
je 0x4094ce
lea eax, [esp + 0x20]
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x4094c0
sub eax, edx
cmp eax, 1
jae 0x4094f1
push ebx
mov esi, 0xffffffe9
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
push 2
push 1
push edi
call fcn.0040bdd0
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.00408ce0
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x40955c
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.0040c706
lea eax, [esp + 0x44c]
push eax
push esi
push 1
push 3
push edi
call fcn.0040bdd0
lea ecx, [esp + 0x40]
push ecx
call fcn.00408d40
add esp, 0x24
cmp eax, ebx
je 0x409549
push str.Unable_to_replace_invalid_characters_in_the_username.
push eax
push 3
jmp 0x409551
push str.Proceeding_with_installation_after_replacing_invalid_characters_in_the_username.
push ebx
push 1
push 3
push edi
call fcn.0040bdd0
add esp, 0x14
lea eax, [esp + 0x20]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
cmp cl, bl
jne 0x409563
sub eax, edx
xor ecx, ecx
cmp eax, ebx
jle 0x409583
cmp byte [esp + ecx + 0x20], 0x2e
jne 0x40957e
mov byte [esp + ecx + 0x20], 0x2d
inc ecx
cmp ecx, eax
jl 0x409572
push 0x50
lea edx, [esp + 0x24]
push edx
add edi, 0x26c
push edi
call fcn.0040c810
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.00402c90
mov esi, eax
add esp, 0x14
cmp esi, ebx
jne 0x4095f2
mov eax, dword [esp + 0x10]
cmp eax, 3
je 0x4095ce
cmp eax, 4
jne 0x4095f2
mov eax, dword [ebp + 8]
push 0x51
lea edx, [esp + 0x12c]
push edx
add eax, 0x2c4
push eax
call fcn.0040c810
add esp, 0xc
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov cx, word [0x41a7cc]
mov dl, byte [0x41a7ce]
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 0x409636
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.0040ce50
lea edx, [esp + 0x134]
push edx
lea eax, [esp + 0x240]
push eax
push ebx
call fcn.00409260
mov esi, eax
add esp, 0x18
cmp esi, ebx
je 0x40969a
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.0040bdd0
add esp, 0x14
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [esp + 0x128], bl
jne 0x4096c7
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.0040bdd0
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.0040c810
add esp, 0xc
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret