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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x9d8
mov eax, dword [0x4564f0]
xor eax, ebp
mov dword [ebp - 4], eax
mov al, byte [0x403c55]
push ebx
push esi
push edi
push 0xff
mov byte [ebp - 0x104], al
xor ebx, ebx
lea eax, [ebp - 0x103]
push ebx
push eax
call fcn.0043d340
push 9
pop ecx
xor eax, eax
mov esi, 0x9c
lea edi, [ebp - 0x1d0]
push esi
rep stosd dword es:[edi], eax
lea eax, [ebp - 0x1a0]
push ebx
push eax
call fcn.0043d340
add esp, 0x18
lea eax, [ebp - 0x1a0]
mov dword [ebp - 0x1a0], esi
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
push eax
call esi
cmp eax, ebx
mov dword [ebp - 0x1a8], eax
jne 0x4317a4
lea eax, [ebp - 0x1a0]
push eax
mov dword [ebp - 0x1a0], 0x94
call esi
test eax, eax
jne 0x4317a4
mov eax, dword [0x458858]
push 0x40aee8
push 3
lea ecx, [ebp - 0x9d8]
mov dword [ebp - 0x1d8], ebx
mov dword [ebp - 0x1d4], eax
call fcn.0044ef27
push eax
call fcn.0044ed72
pop ecx
pop ecx
jmp 0x431d4e
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x40aed4
push 0x40aec4
call edi
mov ebx, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebx
test eax, eax
je 0x4317ce
lea ecx, [ebp - 0x1d0]
push ecx
call eax
jmp 0x4317db
lea eax, [ebp - 0x1d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov eax, dword [ebp - 0x190]
dec eax
dec eax
je 0x431805
push 0xffffffffffffffff
push 0x40aea8
lea eax, [ebp - 0x104]
push 0x100
push eax
call fcn.0043f2a4
add esp, 0x10
jmp 0x431ce6
mov ecx, dword [ebp - 0x19c]
cmp ecx, 6
jne 0x431a09
cmp dword [ebp - 0x198], 1
mov dword [ebp - 0x1a4], 0x408d1c
jne 0x43183c
cmp byte [ebp - 0x106], 1
mov eax, 0x40ae9c
je 0x431858
mov eax, 0x40ae84
jmp 0x431858
cmp dword [ebp - 0x198], 0
jne 0x431872
cmp byte [ebp - 0x106], 1
mov eax, 0x40ae74
je 0x431858
mov eax, 0x40ae5c
push 0xffffffffffffffff
push eax
mov esi, 0x100
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043f2a4
add esp, 0x10
jmp 0x431896
push dword [ebp - 0x198]
mov esi, 0x100
push 6
push 0x40ae4c
push 0xffffffffffffffff
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043d64a
add esp, 0x18
push 0x40ae3c
push 0x40aec4
call edi
push eax
call ebx
lea ecx, [ebp - 0x1ac]
push ecx
push 0
push 0
push dword [ebp - 0x198]
push dword [ebp - 0x19c]
call eax
mov eax, dword [ebp - 0x1ac]
cmp eax, 0xa
ja 0x431958
je case.0x4318d9.4
dec eax
cmp eax, 8
ja case.0x4318d9.5
jmp dword [eax*4 + 0x431d64]
mov dword [ebp - 0x1a4], 0x40ae30
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ae20
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ae14
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ae08
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40adfc
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40adf0
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40add8
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40adcc
jmp case.0x4318d9.5
cmp eax, 0xf
ja 0x4319a9
je 0x43199d
sub eax, 0xb
je 0x431991
dec eax
je 0x431985
dec eax
je 0x431979
dec eax
jne case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40adb8
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ada8
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ad94
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ad8c
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ad78
jmp case.0x4318d9.5
sub eax, 0x11
je 0x4319ce
dec eax
je 0x4319c2
sub eax, 7
jne case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ad58
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ad48
jmp case.0x4318d9.5
mov dword [ebp - 0x1a4], 0x40ad3c
push 0xffffffffffffffff
push dword [ebp - 0x1a4]
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043f2a4
push 0xffffffffffffffff
push 0x40ad30
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043f2a4
add esp, 0x20
jmp 0x431aaf
cmp ecx, 5
mov eax, dword [ebp - 0x198]
jne 0x431a6e
cmp eax, 2
jne 0x431a53
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x431a2e
push 0xffffffffffffffff
push 0x40ad18
jmp 0x431a7a
cmp byte [ebp - 0x106], 1
jne 0x431a4a
cmp word [ebp - 0x1d0], 9
jne 0x431a4a
push 0xffffffffffffffff
push 0x40acf0
jmp 0x431a7a
push 0xffffffffffffffff
push 0x40acd8
jmp 0x431a7a
cmp eax, 1
jne 0x431a61
push 0xffffffffffffffff
push 0x40accc
jmp 0x431a7a
test eax, eax
jne 0x431a91
push 0xffffffffffffffff
push 0x40acbc
jmp 0x431a7a
cmp ecx, 4
ja 0x431a91
push 0xffffffffffffffff
push 0x40acb0
mov esi, 0x100
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043f2a4
add esp, 0x10
jmp 0x431aaf
push eax
push ecx
push 0x40ae4c
push 0xffffffffffffffff
mov esi, 0x100
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043d64a
add esp, 0x18
mov eax, dword [ebp - 0x19c]
cmp eax, 6
jae 0x431c97
xor ecx, ecx
cmp dword [ebp - 0x1a8], ecx
je 0x431c97
cmp byte [ebp - 0x106], 1
jne 0x431b20
cmp word [ebp - 0x1d0], 9
je 0x431c97
cmp eax, 4
push 0xffffffffffffffff
jne 0x431b01
push 0x40ac9c
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043f2a4
jmp 0x431c94
test word [ebp - 0x108], 0x200
lea eax, [ebp - 0x104]
je 0x431b19
push 0x40ac8c
jmp 0x431af5
push 0x40ac7c
jmp 0x431af5
cmp byte [ebp - 0x106], 3
je 0x431b36
cmp byte [ebp - 0x106], 2
jne 0x431c97
cmp eax, 5
jne 0x431c4e
cmp dword [ebp - 0x198], 2
jne 0x431c0e
cmp word [ebp - 0x1d0], 6
jne 0x431b81
test byte [ebp - 0x108], 0x80
je 0x431b68
push 0xffffffffffffffff
push 0x40ac60
jmp 0x431aef
test byte [ebp - 0x108], 2
je 0x431c97
push 0xffffffffffffffff
push 0x40ac44
jmp 0x431aef
cmp word [ebp - 0x1d0], 9
push 0xffffffffffffffff
jne 0x431bc3
test byte [ebp - 0x108], 0x80
je 0x431ba0
push 0x40ac2c
jmp 0x431aef
test byte [ebp - 0x108], 2
lea eax, [ebp - 0x104]
je 0x431bb9
push 0x40ac14
jmp 0x431af5
push 0x40abfc
jmp 0x431af5
test byte [ebp - 0x108], 0x80
je 0x431bd6
push 0x40abe8
jmp 0x431aef
test byte [ebp - 0x108], 2
je 0x431be9
push 0x40abd4
jmp 0x431aef
test word [ebp - 0x108], 0x400
lea eax, [ebp - 0x104]
je 0x431c04
push 0x40abc4
jmp 0x431af5
push 0x40abb0
jmp 0x431af5
cmp dword [ebp - 0x198], ecx
jne 0x431c80
test byte [ebp - 0x108], 0x80
push 0xffffffffffffffff
je 0x431c2b
push 0x40ab9c
jmp 0x431aef
test byte [ebp - 0x108], 2
lea eax, [ebp - 0x104]
je 0x431c44
push 0x40ab88
jmp 0x431af5
push 0x40ab80
jmp 0x431af5
cmp eax, 4
jne 0x431c80
cmp dword [ebp - 0x198], ecx
jne 0x431c80
test byte [ebp - 0x108], 2
push 0xffffffffffffffff
lea eax, [ebp - 0x104]
je 0x431c76
push 0x40ab60
jmp 0x431af5
push 0x40ab54
jmp 0x431af5
push 0x40ab40
push 0xffffffffffffffff
lea eax, [ebp - 0x104]
push esi
push eax
call fcn.0043d64a
add esp, 0x10
lea eax, [ebp - 0x104]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x431ca0
sub eax, edx
mov edi, eax
lea eax, [ebp - 0x104]
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x431cb4
sub eax, ecx
movzx ecx, word [ebp - 0x194]
push ecx
lea ecx, [ebp - 0x18c]
push ecx
push 0x40ab30
push 0xffffffffffffffff
sub esi, edi
lea eax, [ebp + eax - 0x104]
push esi
push eax
call fcn.0043d64a
add esp, 0x18
mov eax, dword [0x458858]
and dword [ebp - 0x1d8], 0
mov dword [ebp - 0x1d4], eax
lea eax, [ebp - 0x104]
push eax
push 3
lea ecx, [ebp - 0x9d8]
call fcn.0044ef27
push eax
call fcn.0044ed72
pop ecx
pop ecx
mov ecx, eax
call fcn.0044ef88
push dword [ebp - 0x1bc]
mov eax, dword [0x458858]
and dword [ebp - 0x1d8], 0
push 0x40ab18
push 3
lea ecx, [ebp - 0x9d8]
mov dword [ebp - 0x1d4], eax
call fcn.0044ef27
push eax
call fcn.0044ed72
add esp, 0xc
mov ecx, eax
call fcn.0044ef88
mov ecx, dword [ebp - 4]
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0043db8b
leave
ret