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

Disassembly:
sub esp, 0xc8
mov eax, dword [0x6d1d54cc]
xor eax, esp
mov dword [esp + 0xc4], eax
cmp dword [0x6d1d56f0], 0
push ebx
mov ebx, dword [esp + 0xd0]
push ebp
mov ebp, dword [sym.imp.USER32.dll_wsprintfA]
push esi
mov esi, dword [esp + 0xe0]
mov dword [esp + 0xc], esi
jne 0x6d1c4cb0
push edi
push 0x9c
lea eax, [esp + 0x3c]
push 0
push eax
call sub.MSVCR100.dll_memset
mov esi, dword [sym.imp.kernel32.dll_lstrcpyA]
add esp, 0xc
push str.win32
push 0x6d1d56dc
mov dword [esp + 0x40], 0x9c
call esi
mov edi, dword [sym.imp.kernel32.dll_GetVersionExA]
lea ecx, [esp + 0x38]
push ecx
call edi
test eax, eax
jne 0x6d1c4afb
lea edx, [esp + 0x38]
push edx
mov dword [esp + 0x3c], 0x94
call edi
mov eax, dword [esp + 0x48]
cmp eax, 2
jne 0x6d1c4b8f
mov eax, dword [esp + 0x3c]
cmp eax, 4
jne 0x6d1c4b1b
push str.winnt
jmp 0x6d1c4bbc
cmp eax, 6
jne 0x6d1c4b63
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x6d1c4b43
cmp byte [esp + 0xd2], 1
jne 0x6d1c4b3c
push str.winvista
jmp 0x6d1c4bbc
push str.winlong
jmp 0x6d1c4bbc
cmp eax, 1
jne 0x6d1c4bce
cmp byte [esp + 0xd2], al
jne 0x6d1c4b5c
push str.win7
jmp 0x6d1c4bbc
push str.win2008R2
jmp 0x6d1c4bbc
cmp eax, 5
jne 0x6d1c4bc3
mov eax, dword [esp + 0x40]
test eax, eax
jne 0x6d1c4b77
push str.win2000
jmp 0x6d1c4bbc
cmp eax, 1
jne 0x6d1c4b83
push str.winxp
jmp 0x6d1c4bbc
cmp eax, 2
jne 0x6d1c4bce
push str.win2003
jmp 0x6d1c4bbc
cmp eax, 1
jne 0x6d1c4bc3
cmp dword [esp + 0x3c], 4
jne 0x6d1c4bb7
mov eax, dword [esp + 0x40]
cmp eax, 0xa
jne 0x6d1c4bab
push str.win98
jmp 0x6d1c4bbc
cmp eax, 0x5a
jne 0x6d1c4bb7
push str.winme
jmp 0x6d1c4bbc
push str.win95
push 0x6d1d56dc
call esi
cmp dword [esp + 0x3c], 0
jbe 0x6d1c4bff
mov eax, dword [esp + 0x40]
test eax, eax
je 0x6d1c4bff
push str.win32
push 0x6d1d56dc
call dword [sym.imp.kernel32.dll_lstrcmpA]
test eax, eax
jne 0x6d1c4bff
mov eax, dword [esp + 0x40]
mov ecx, dword [esp + 0x3c]
push eax
push ecx
push str._d._d
push 0x6d1d56dc
call ebp
add esp, 0x10
movzx edx, word [esp + 0xcc]
push str.Unknown
xor eax, eax
push 0x6d1d56c8
mov dword [0x6d1d56c4], edx
mov word [esp + 0x1c], ax
call esi
push 0x6d1ce1f0
call fcn.6d1b30d0
mov edi, eax
add esp, 4
test edi, edi
je 0x6d1c4c4c
push str.GetNativeSystemInfo
push edi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x6d1c4c4c
lea ecx, [esp + 0x14]
push ecx
call eax
jmp 0x6d1c4c57
lea edx, [esp + 0x14]
push edx
call dword [sym.imp.kernel32.dll_GetSystemInfo]
test edi, edi
je 0x6d1c4c62
push edi
call dword [sym.imp.kernel32.dll_FreeLibrary]
movzx eax, word [esp + 0x14]
pop edi
test eax, eax
je 0x6d1c4c96
cmp eax, 6
je 0x6d1c4c8f
cmp eax, 9
je 0x6d1c4c88
push eax
push 0x6d1ce1d8
push 0x6d1d56c8
call ebp
add esp, 0xc
jmp 0x6d1c4ca2
push str.amd64
jmp 0x6d1c4c9b
push str.ia64
jmp 0x6d1c4c9b
push str.i586
push 0x6d1d56c8
call esi
mov esi, dword [esp + 0xc]
mov dword [0x6d1d56f0], 1
mov eax, dword [0x6d1d56c4]
test eax, eax
je 0x6d1c4ccc
push eax
push 0x6d1d56dc
push str._s_sp_d
push ebx
call ebp
add esp, 0x10
jmp 0x6d1c4cdc
push 0x6d1d56dc
push 0x6d1ccc48
push ebx
call ebp
add esp, 0xc
test esi, esi
je 0x6d1c4cf0
push 0x6d1d56c8
push 0x6d1ccc48
push esi
call ebp
add esp, 0xc
mov ecx, dword [esp + 0xd0]
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.6d1c932c
add esp, 0xc8
ret