Function at 0x401000
Capabilities:
Check os version
Get common file path
Get hostname
Get session user name
Identify system language via api

Disassembly:
sub esp, 0x118
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
push ebp
push esi
mov esi, ecx
mov ecx, dword [esp + 0x124]
push 0x409768
push 0x409754
xor ebp, ebp
mov dword [esi + 0x550], ecx
push fcn.00401a80
push 0x40974c
mov ecx, esi
mov dword [esi + 0x548], ebp
mov dword [esi + 0x554], 0x40b908
mov dword [esi + 0x558], eax
mov dword [esi + 0x55c], edx
mov dword [esi], ebp
call fcn.00401560
push 0x409714
push 0x40970c
push 0x402c30
push 0x409704
mov ecx, esi
call fcn.00401560
push 0x4096e0
push 0x4096c0
push 0x402c50
push 0x4096b0
mov ecx, esi
call fcn.00401560
push 0x409628
push 0x409618
push 0x401860
push 0x409614
mov ecx, esi
call fcn.00401560
push 0x4095f4
push 0x4095ec
push 0x402440
push 0x4095e4
mov ecx, esi
call fcn.00401560
push 0x409580
push 0x40956c
push 0x402a00
push 0x409564
mov ecx, esi
call fcn.00401560
push 0x409530
push 0x40951c
push fcn.00402aa0
push 0x409518
mov ecx, esi
call fcn.00401560
push 0x4094e0
push 0x40951c
push fcn.00402b80
push 0x4094d8
mov ecx, esi
call fcn.00401560
push 0x409470
push 0x409458
push 0x401970
push 0x409448
mov ecx, esi
call fcn.00401560
push 0x4093e0
push 0x409458
push 0x401a10
push 0x4093cc
mov ecx, esi
call fcn.00401560
push 0x40939c
push 0x409394
push 0x402be0
push 0x409384
mov ecx, esi
call fcn.00401560
push 0x4092f8
push 0x4092e4
push 0x402d10
push 0x4092d8
mov ecx, esi
call fcn.00401560
push 0x4092a8
push 0x40928c
push 0x4018c0
push 0x409288
mov ecx, esi
call fcn.00401560
push 0x409258
push 0x40970c
push fcn.00401d00
push 0x409250
mov ecx, esi
call fcn.00401560
push 0x409208
push 0x4091fc
push 0x402950
push 0x4091ec
mov ecx, esi
call fcn.00401560
push 0x4091cc
push 0x40b908
push fcn.004029d0
push 0x4091c0
mov ecx, esi
call fcn.00401560
mov dword [esi + 0x54c], 0x409194
mov dword [esi + 0x404], ebp
mov eax, dword [esi + 0x404]
mov dword [esi + eax*8 + 4], ebp
mov ecx, dword [esi + 0x404]
mov dword [esi + ecx*8 + 8], ebp
mov ecx, dword [esi + 0x404]
inc ecx
mov eax, ecx
mov dword [esi + 0x404], ecx
cmp eax, 0x80
jl 0x401205
push ebx
push edi
lea edx, [esp + 0x14]
push 0x80
push edx
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea eax, [esp + 0x14]
mov ecx, esi
push eax
push 0x40918c
call fcn.00401730
lea ecx, [esp + 0x14]
push 0x80
push ecx
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea edx, [esp + 0x14]
mov ecx, esi
push edx
push 0x409184
call fcn.00401730
lea eax, [esp + 0x14]
push eax
push 0x80
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
lea ecx, [esp + 0x14]
push ecx
push 0x409178
mov ecx, esi
call fcn.00401730
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
mov ebx, dword [sym.imp.MSVCRT.dll_sprintf]
mov edi, eax
and edi, 0xffff
lea edx, [esp + 0x14]
push edi
push 0x409160
push edx
call ebx
add esp, 0xc
lea eax, [esp + 0x14]
mov ecx, esi
push eax
push 0x40914c
call fcn.00401730
and edi, 0x3ff
lea ecx, [esp + 0x14]
push edi
push 0x409160
push ecx
call ebx
add esp, 0xc
lea edx, [esp + 0x14]
mov ecx, esi
push edx
push 0x409130
call fcn.00401730
push 0x40912c
push 0x409128
mov ecx, esi
call fcn.00401730
mov ecx, dword [esi + 0x550]
lea eax, [esp + 0x14]
push 0x80
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
lea edx, [esp + 0x14]
mov ecx, esi
push edx
push 0x409114
call fcn.00401730
lea eax, [esp + 0x14]
mov ecx, esi
push eax
call fcn.00401c20
push eax
push 0x409100
mov ecx, esi
call fcn.00401730
mov dword [esp + 0x10], 0x80
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
lea eax, [esp + 0x14]
mov ecx, esi
push eax
push 0x4090f0
call fcn.00401730
lea ecx, [esp + 0x10]
lea edx, [esp + 0x14]
push ecx
push edx
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
lea eax, [esp + 0x14]
mov ecx, esi
push eax
push 0x4090e4
call fcn.00401730
lea ecx, [esp + 0x94]
mov dword [esp + 0x94], 0x94
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov edx, dword [esp + 0x98]
lea eax, [esp + 0x14]
push edx
push 0x4090e0
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push 0x4090cc
mov ecx, esi
call fcn.00401730
mov edx, dword [esp + 0x9c]
lea eax, [esp + 0x14]
push edx
push 0x4090e0
push eax
call ebx
add esp, 0xc
lea ecx, [esp + 0x14]
push ecx
push 0x4090b8
mov ecx, esi
call fcn.00401730
mov eax, dword [esp + 0xa4]
pop edi
dec eax
mov dword [esi + 0x560], ebp
pop ebx
je 0x401466
dec eax
jne 0x4014b4
push 0x4090a8
push 0x409094
mov ecx, esi
call fcn.00401730
mov eax, dword [esp + 0x90]
cmp eax, 5
jne 0x40145a
mov eax, dword [esp + 0x94]
sub eax, ebp
je 0x401453
dec eax
je 0x40144c
dec eax
mov ecx, esi
je 0x401445
push 0x409080
jmp 0x4014aa
push 0x40906c
jmp 0x4014aa
push 0x409064
jmp 0x4014a8
push 0x40905c
jmp 0x4014a8
cmp eax, 4
jne 0x4014b4
push 0x409054
jmp 0x4014a8
push 0x409044
push 0x409094
mov ecx, esi
call fcn.00401730
mov eax, dword [esp + 0x94]
cmp eax, ebp
je 0x4014a3
cmp eax, 0xa
je 0x40149c
cmp eax, 0x5a
mov ecx, esi
je 0x401495
push 0x40902c
jmp 0x4014aa
push 0x409024
jmp 0x4014aa
push 0x40901c
jmp 0x4014a8
push 0x409014
mov ecx, esi
push 0x409010
call fcn.00401730
mov eax, esi
pop esi
pop ebp
add esp, 0x118
ret 0xc