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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x638740
mov eax, dword fs:[0]
push eax
sub esp, 0x19c
mov eax, dword [0x6d8314]
xor eax, ebp
mov dword [ebp - 0x10], eax
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x17c], 0
mov dword [ebp - 0x15c], 0
push 0x118
push 0
lea eax, [ebp - 0x158]
push eax
call sub.MSVCR120.dll_memset
add esp, 0xc
mov dword [ebp - 0x15c], 0x11c
lea ecx, [ebp - 0x15c]
push ecx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x591807
mov dword [ebp - 0x15c], 0x114
lea edx, [ebp - 0x15c]
push edx
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [ebp - 0x1a8]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
lea ecx, [ebp - 0x28]
call fcn.0041b010
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x158]
mov dword [ebp - 0x168], ecx
cmp dword [ebp - 0x168], 4
je 0x591853
cmp dword [ebp - 0x168], 5
je 0x591865
cmp dword [ebp - 0x168], 6
je 0x591909
jmp 0x59198f
push 0x652af0
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x59199c
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x16c], edx
cmp dword [ebp - 0x16c], 0
je 0x59188e
cmp dword [ebp - 0x16c], 1
je 0x59189d
cmp dword [ebp - 0x16c], 2
je 0x5918ac
jmp 0x591904
push 0x652aa4
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x591904
push 0x652a0c
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x591904
movzx eax, byte [ebp - 0x42]
cmp eax, 1
jne 0x5918d0
movzx ecx, word [ebp - 0x1a8]
cmp ecx, 9
jne 0x5918d0
push 0x652bd8
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x591904
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
jne 0x5918eb
push 0x652b9c
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x591904
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x591904
push 0x652b28
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x59199c
mov edx, dword [ebp - 0x154]
mov dword [ebp - 0x164], edx
cmp dword [ebp - 0x164], 0
je 0x591932
cmp dword [ebp - 0x164], 1
je 0x591959
cmp dword [ebp - 0x164], 2
je 0x591980
jmp 0x59198d
movzx eax, byte [ebp - 0x42]
cmp eax, 1
jne 0x59194a
push 0x652b6c
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x591957
push 0x652ca4
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x59198d
movzx ecx, byte [ebp - 0x42]
cmp ecx, 1
jne 0x591971
push 0x652ce0
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x59197e
push 0x652c60
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x59198d
push 0x652c34
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x59199c
push 0x652d34
lea ecx, [ebp - 0x28]
call fcn.00418f80
push 0x652d44
lea edx, [ebp - 0x28]
push edx
call fcn.00413e90
add esp, 8
movzx eax, al
test eax, eax
je 0x591ac7
push 0x652d08
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov dword [ebp - 0x178], eax
cmp dword [ebp - 0x178], 0
je 0x591ac7
mov dword [ebp - 0x184], 0
push 0x652d1c
mov ecx, dword [ebp - 0x178]
push ecx
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov dword [ebp - 0x174], eax
cmp dword [ebp - 0x174], 0
je 0x591ac7
lea edx, [ebp - 0x184]
push edx
lea eax, [ebp - 0x170]
push eax
lea ecx, [ebp - 0x160]
push ecx
call dword [ebp - 0x174]
cmp dword [ebp - 0x160], 6
jne 0x591a44
cmp dword [ebp - 0x170], 3
jne 0x591a44
push 0x652dd4
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x591ac7
cmp dword [ebp - 0x160], 6
jne 0x591a65
cmp dword [ebp - 0x170], 2
jne 0x591a65
push 0x652e00
lea ecx, [ebp - 0x28]
call fcn.00418f80
jmp 0x591ac7
cmp dword [ebp - 0x160], 0xa
jne 0x591ac7
lea edx, [ebp - 0x40]
push edx
call fcn.00594af0
add esp, 4
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x40]
call fcn.00414900
test eax, eax
jbe 0x591abb
lea ecx, [ebp - 0x40]
call fcn.00414c90
push eax
call dword [sym.imp.MSVCR120.dll__wtoi]
add esp, 4
mov dword [ebp - 0x180], eax
cmp dword [ebp - 0x180], 0x55f0
jl 0x591abb
push 0x652d70
lea ecx, [ebp - 0x28]
call fcn.00418f80
mov byte [ebp - 4], 0
lea ecx, [ebp - 0x40]
call fcn.004148d0
lea eax, [ebp - 0x28]
push eax
mov ecx, dword [ebp + 8]
call fcn.0041af00
mov ecx, dword [ebp - 0x17c]
or ecx, 1
mov dword [ebp - 0x17c], ecx
mov dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x28]
call fcn.004148d0
mov eax, dword [ebp + 8]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.006116d0
mov esp, ebp
pop ebp
ret