Function at 0x401fd0
Capabilities:
Check os version
Get system information on windows

Disassembly:
push 0xffffffffffffffff
push 0x4b6611
mov eax, dword fs:[0]
push eax
sub esp, 0x228
mov eax, dword [0x4e02dc]
xor eax, esp
mov dword [esp + 0x224], eax
push ebx
push esi
push edi
mov eax, dword [0x4e02dc]
xor eax, esp
push eax
lea eax, [esp + 0x238]
mov dword fs:[0], eax
push 0x11c
lea eax, [esp + 0x100]
push 0
push eax
mov esi, ecx
call fcn.0049a440
add esp, 0xc
lea ecx, [esp + 0xfc]
push ecx
mov dword [esp + 0x100], 0x11c
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x402352
cmp dword [esp + 0x10c], 2
jne 0x402352
push 8
push str.windows.
mov ecx, esi
call fcn.00401b00
mov eax, dword [esp + 0x100]
cmp eax, 5
mov ebx, 1
jne 0x4020b5
mov eax, dword [esp + 0x104]
test eax, eax
jne 0x40208c
push esi
mov edx, str.2000
call fcn.004018d0
jmp 0x4021f1
cmp eax, ebx
jne 0x4020a0
push esi
mov edx, 0x4c1e00
call fcn.004018d0
jmp 0x4021f1
cmp eax, 2
jne 0x402119
push esi
mov edx, str.2003
call fcn.004018d0
jmp 0x4021f1
cmp eax, 6
jne 0x402119
mov eax, dword [esp + 0x104]
test eax, eax
jne 0x4020ed
cmp byte [esp + 0x216], bl
push esi
jne 0x4020de
mov edx, str.vista
call fcn.004018d0
jmp 0x4021f1
mov edx, str.2008
call fcn.004018d0
jmp 0x4021f1
cmp eax, ebx
jne 0x402119
cmp byte [esp + 0x216], bl
push esi
jne 0x40210a
mov edx, 0x4c1e2c
call fcn.004018d0
jmp 0x4021f1
mov edx, 0x4c1e30
call fcn.004018d0
jmp 0x4021f1
lea edx, [esp + 0x54]
push edx
call fcn.00402530
mov dword [esp + 0x240], 0
mov dword [esp + 0xf8], 7
mov dword [esp + 0xf4], 0
mov word [esp + 0xe4], 0
mov byte [esp + 0x240], bl
mov eax, dword [esp + 0x104]
push eax
push ecx
mov ecx, dword [esp + 0x108]
push ecx
push ecx
lea edx, [esp + 0x6c]
push 0x4c1e40
push edx
call fcn.004049f0
add esp, 0xc
push eax
call fcn.004023a0
add esp, 4
push eax
call fcn.004023a0
lea ecx, [esp + 0x38]
lea eax, [esp + 0x54]
call fcn.00402680
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xec]
mov byte [esp + 0x24c], 2
call fcn.00401a10
lea ecx, [esp + 0x38]
mov byte [esp + 0x240], bl
call fcn.00401870
push 0xffffffffffffffff
push 0
lea eax, [esp + 0xe8]
push eax
mov ecx, esi
call fcn.00401be0
lea ecx, [esp + 0xe0]
call fcn.00401870
lea eax, [esp + 0x54]
mov dword [esp + 0x240], 0xffffffff
call fcn.00402380
push ebx
push 0x4c1db4
call fcn.00401910
mov cx, word [esp + 0x210]
test cx, cx
jne 0x402217
push 3
push 0x4c1e50
call fcn.00401910
jmp 0x40227f
jbe 0x402352
cmp word [esp + 0x212], 0
jne 0x402352
xor eax, eax
mov dword [esp + 0x220], eax
mov dword [esp + 0x224], eax
mov dword [esp + 0x228], eax
mov dword [esp + 0x22c], eax
mov dword [esp + 0x230], eax
push 0xa
lea edx, [esp + 0x224]
movzx eax, cx
push edx
push eax
call fcn.00493ebd
add esp, 0xc
push esi
mov edx, 0x4c1e58
call fcn.004018d0
push esi
lea edx, [esp + 0x224]
call fcn.004018d0
call dword [sym.imp.KERNEL32.dll_GetSystemDefaultLangID]
push ebx
push 0x4c1db4
movzx edi, ax
call fcn.00401910
movzx eax, di
cmp eax, 0x804
jg 0x4022b9
je 0x4022b2
sub eax, 0x404
je 0x4022ce
sub eax, 5
jne 0x4022c7
mov edx, 0x4c1e70
jmp 0x4022da
mov edx, 0x4c1e60
jmp 0x4022da
cmp eax, 0x809
je 0x4022d5
cmp eax, 0xc04
je 0x4022ce
mov edx, 0x4c1efc
jmp 0x4022da
mov edx, 0x4c1e68
jmp 0x4022da
mov edx, 0x4c1e78
push esi
call fcn.004018d0
push ebx
push 0x4c1db4
call fcn.00401910
lea ecx, [esp + 0x14]
test ecx, ecx
je 0x402322
push str.GetNativeSystemInfo
push str.kernel32
call dword [sym.imp.KERNEL32.dll_GetModuleHandleW]
push eax
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x402317
lea edx, [esp + 0x14]
push edx
call eax
jmp 0x402322
lea eax, [esp + 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ax, word [esp + 0x14]
cmp ax, 9
je 0x402342
cmp ax, 6
je 0x402342
push esi
mov edx, 0x4c1e88
call fcn.004018d0
mov al, bl
jmp 0x402354
push 2
push 0x4c1e80
call fcn.00401910
mov al, bl
jmp 0x402354
xor al, al
mov ecx, dword [esp + 0x238]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x224]
xor ecx, esp
call fcn.004935b6
add esp, 0x234
ret