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

Disassembly:
sub esp, 0x118
push ebp
push edi
mov ecx, 9
xor eax, eax
lea edi, [esp + 0xac]
rep stosd dword es:[edi], eax
mov ecx, 0x27
lea edi, [esp + 0x10]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 0x9c
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
test eax, eax
jne 0x40c118
pop edi
mov eax, 1
pop ebp
add esp, 0x118
ret
mov edi, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push 0x11b6178
push 0x11b5bd4
call edi
mov ebp, dword [sym.imp.KERNEL32.dll_GetProcAddress]
push eax
call ebp
test eax, eax
je 0x40c143
lea ecx, [esp + 0xac]
push ecx
call eax
jmp 0x40c151
lea edx, [esp + 0xac]
push edx
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [esp + 0x20], 2
jne 0x40c55b
cmp dword [esp + 0x14], 4
jbe 0x40c55b
push ebx
push esi
mov esi, dword [esp + 0x12c]
push 0x11b616c
mov ebx, 1
push 0x64
push esi
mov dword [0x19d1540], ebx
call fcn.0040c630
cmp dword [esp + 0x1c], 6
jne 0x40c2bf
cmp dword [esp + 0x20], ebx
jne 0x40c1b1
push 0x11b6160
push 0x64
push esi
call fcn.0040c680
cmp dword [esp + 0x1c], 6
jne 0x40c2bf
mov eax, dword [esp + 0x20]
test eax, eax
jne 0x40c4f8
mov al, byte [esp + 0xb2]
mov dword [0x19d153c], ebx
cmp al, bl
jne 0x40c1d5
push 0x11b6150
jmp 0x40c1da
push 0x11b6138
push 0x64
push esi
call fcn.0040c680
push 0x11b6128
push 0x11b5bd4
call edi
push eax
call ebp
lea ecx, [esp + 0x14]
xor ebp, ebp
push ecx
push ebp
push ebp
push ebp
push 6
call eax
mov edx, dword [esp + 0x14]
lea eax, [edx - 1]
cmp eax, 0x10
ja case.default.0x40c20b
jmp dword [eax*4 + 0x40c570]
push 0x11b6114
jmp 0x40c280
push 0x11b60fc
jmp 0x40c280
push 0x11b60e8
jmp 0x40c280
push 0x11b60d4
jmp 0x40c280
push 0x11b60c4
jmp 0x40c280
push 0x11b60ac
jmp 0x40c280
push 0x11b6098
jmp 0x40c280
push 0x11b6070
jmp 0x40c280
push 0x11b605c
jmp 0x40c280
push 0x11b6034
jmp 0x40c280
push 0x11b6004
jmp 0x40c280
push 0x11b5fec
jmp 0x40c280
push 0x11b5fc4
jmp 0x40c280
push 0x11b5fb0
jmp 0x40c280
push 0x11b5f88
jmp 0x40c280
push 0x11b5f74
push 0x64
push esi
call fcn.0040c680
mov ax, word [esp + 0xb4]
cmp ax, 9
jne 0x40c2ab
push 0x11b5f68
push 0x64
push esi
call fcn.0040c680
mov dword [0x19d1534], ebx
jmp 0x40c2c1
cmp ax, bp
jne 0x40c2c1
push 0x11b5f5c
push 0x64
push esi
call fcn.0040c680
jmp 0x40c2c1
xor ebp, ebp
mov eax, dword [esp + 0x1c]
mov edi, 5
cmp eax, edi
jne 0x40c4f8
cmp dword [esp + 0x20], 2
jne 0x40c3e7
push 0x59
call dword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x40c2f0
push 0x11b5f40
jmp 0x40c331
cmp word [esp + 0xb0], 0x2000
jne 0x40c303
push 0x11b5f24
jmp 0x40c331
cmp byte [esp + 0xb2], bl
jne 0x40c32c
cmp word [esp + 0xb4], 9
jne 0x40c32c
push 0x11b5f00
push 0x64
push esi
call fcn.0040c680
mov dword [0x19d1538], ebx
jmp 0x40c339
push 0x11b5ee8
push 0x64
push esi
call fcn.0040c680
cmp byte [esp + 0xb2], bl
je 0x40c3dd
mov ax, word [esp + 0xb4]
cmp ax, 6
jne 0x40c371
mov al, byte [esp + 0xb0]
test al, 0x80
je 0x40c366
push 0x11b5eb8
jmp 0x40c3d5
test al, 2
je 0x40c3dd
push 0x11b6004
jmp 0x40c3d5
cmp ax, 9
jne 0x40c39b
mov al, byte [esp + 0xb0]
test al, 0x80
je 0x40c389
push 0x11b5ea0
jmp 0x40c3d5
test al, 2
je 0x40c394
push 0x11b5e88
jmp 0x40c3d5
push 0x11b5e70
jmp 0x40c3d5
mov eax, dword [esp + 0xb0]
test ah, 0x40
je 0x40c3ae
push 0x11b5e58
jmp 0x40c3d5
test al, 0x80
je 0x40c3b9
push 0x11b6098
jmp 0x40c3d5
test al, 2
je 0x40c3c4
push 0x11b605c
jmp 0x40c3d5
test ah, 4
je 0x40c3d0
push 0x11b5e4c
jmp 0x40c3d5
push 0x11b5fb0
push 0x64
push esi
call fcn.0040c680
cmp dword [esp + 0x1c], edi
jne 0x40c4f8
cmp dword [esp + 0x20], ebx
jne 0x40c445
lea eax, [esp + 0x10]
mov dword [esp + 0x10], ebp
push eax
push 0x64
push esi
call fcn.0040c710
test eax, eax
jl 0x40c41b
mov eax, dword [esp + 0x10]
mov ecx, 0x64
sub ecx, eax
push 0x11b5e40
add eax, esi
push ecx
push eax
call fcn.0040c630
mov eax, dword [esp + 0xb0]
test ah, 2
je 0x40c42e
push 0x11b5e30
jmp 0x40c433
push 0x11b5e20
push 0x64
push esi
call fcn.0040c680
cmp dword [esp + 0x1c], edi
jne 0x40c4f8
cmp dword [esp + 0x20], ebp
jne 0x40c4f8
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ebp
push edx
push 0x64
push esi
call fcn.0040c710
test eax, eax
jl 0x40c47d
mov eax, dword [esp + 0x10]
mov ecx, 0x64
sub ecx, eax
push 0x11b5e10
add eax, esi
push ecx
push eax
call fcn.0040c630
mov al, byte [esp + 0xb2]
mov dword [0x19d1544], ebx
cmp al, bl
jne 0x40c49d
push 0x11b5e20
push 0x64
push esi
call fcn.0040c680
jmp 0x40c4f8
mov al, byte [esp + 0xb0]
test al, 0x80
je 0x40c4b7
push 0x11b5dfc
push 0x64
push esi
call fcn.0040c680
jmp 0x40c4f8
test al, 2
je 0x40c4ca
push 0x11b5dec
push 0x64
push esi
call fcn.0040c680
jmp 0x40c4f8
lea edx, [esp + 0x10]
mov dword [esp + 0x10], ebp
push edx
push 0x64
push esi
call fcn.0040c710
test eax, eax
jl 0x40c4f8
mov eax, dword [esp + 0x10]
mov ecx, 0x64
sub ecx, eax
push 0x11b5de4
add eax, esi
push ecx
push eax
call fcn.0040c630
lea edi, [esp + 0x2c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x40c522
push 0x11b5de0
push 0x64
push esi
call fcn.0040c680
lea edx, [esp + 0x2c]
push edx
push 0x64
push esi
call fcn.0040c680
mov eax, dword [esp + 0x24]
lea ecx, [esp + 0xd8]
push eax
push 0x11b5dd4
push 0x50
push ecx
call fcn.0040c5c0
add esp, 0x10
lea edx, [esp + 0xd8]
push edx
push 0x64
push esi
call fcn.0040c680
mov eax, ebx
pop esi
pop ebx
pop edi
pop ebp
add esp, 0x118
ret
pop edi
mov dword [0x19d1540], 0
xor eax, eax
pop ebp
add esp, 0x118
ret