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

Disassembly:
sub esp, 0x148
mov eax, dword [0x6d5e2a5c]
xor eax, esp
mov dword [esp + 0x144], eax
cmp dword [0x6d5e2f08], 0
push ebx
mov ebx, dword [esp + 0x150]
push ebp
mov ebp, dword [sym.imp.USER32.dll_wsprintfW]
push esi
mov esi, dword [esp + 0x160]
mov dword [esp + 0xc], esi
jne 0x6d5bb434
push 0x11c
lea eax, [esp + 0x38]
push 0
push eax
call sub.MSVCR100.dll_memset
add esp, 0xc
mov dword [esp + 0x34], 0x11c
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [eax + str.win32]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb0d0
mov esi, dword [sym.imp.kernel32.dll_GetVersionExW]
lea ecx, [esp + 0x34]
push ecx
call esi
test eax, eax
jne 0x6d5bb106
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x38], 0x114
call esi
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x3c]
push edi
mov edi, dword [esp + 0x3c]
cmp eax, 2
jne 0x6d5bb278
cmp edi, 4
jne 0x6d5bb14b
xor eax, eax
jmp 0x6d5bb130
movzx ecx, word [eax + str.winnt]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb130
jmp 0x6d5bb2ea
cmp edi, 6
jne 0x6d5bb1fb
test esi, esi
jne 0x6d5bb1ab
xor eax, eax
cmp byte [esp + 0x152], 1
jne 0x6d5bb190
jmp 0x6d5bb170
movzx ecx, word [eax + str.winvista]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb170
jmp 0x6d5bb338
movzx ecx, word [eax + str.winlong]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb190
jmp 0x6d5bb338
cmp esi, 1
jne 0x6d5bb2ea
xor eax, eax
cmp byte [esp + 0x152], 1
jne 0x6d5bb1e0
movzx ecx, word [eax + str.win7]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb1c0
jmp 0x6d5bb2ee
movzx ecx, word [eax + str.win2008R2]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb1e0
jmp 0x6d5bb2ee
cmp edi, 5
jne 0x6d5bb2e6
test esi, esi
jne 0x6d5bb22b
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [eax + str.win2000]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb210
jmp 0x6d5bb338
cmp esi, 1
jne 0x6d5bb24d
xor eax, eax
movzx ecx, word [eax + str.winxp]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb232
jmp 0x6d5bb2ee
cmp esi, 2
jne 0x6d5bb2ea
xor eax, eax
jmp 0x6d5bb260
movzx ecx, word [eax + str.win2003]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb260
jmp 0x6d5bb2ee
cmp eax, 1
jne 0x6d5bb2e6
cmp edi, 4
jne 0x6d5bb2c8
cmp esi, 0xa
jne 0x6d5bb2a8
xor eax, eax
lea esp, [esp]
movzx ecx, word [eax + str.win98]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb290
jmp 0x6d5bb2ee
cmp esi, 0x5a
jne 0x6d5bb2c8
xor eax, eax
nop
movzx ecx, word [eax + str.winme]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb2b0
jmp 0x6d5bb2ee
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [eax + str.win95]
mov word [eax + 0x6d5e2ee0], cx
add eax, 2
test cx, cx
jne 0x6d5bb2d0
test edi, edi
je 0x6d5bb338
test esi, esi
je 0x6d5bb338
mov ecx, str.win32
mov eax, 0x6d5e2ee0
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x6d5bb31e
test dx, dx
je 0x6d5bb31a
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x6d5bb31e
add eax, 4
add ecx, 4
test dx, dx
jne 0x6d5bb2f8
xor eax, eax
jmp 0x6d5bb323
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x6d5bb338
push esi
push edi
push str._d._d
push 0x6d5e2ee0
call ebp
add esp, 0x10
movzx eax, word [esp + 0x14c]
xor ecx, ecx
mov dword [0x6d5e2edc], eax
mov word [esp + 0x14], cx
xor eax, eax
pop edi
nop
movzx ecx, word [eax + str.Unknown]
mov word [eax + 0x6d5e2eb4], cx
add eax, 2
test cx, cx
jne 0x6d5bb350
push 0x6d5cdf80
call fcn.6d594550
mov esi, eax
add esp, 4
test esi, esi
je 0x6d5bb392
push 0x6d5d76c8
push esi
call dword [sym.imp.kernel32.dll_GetProcAddress]
test eax, eax
je 0x6d5bb392
lea edx, [esp + 0x10]
push edx
call eax
jmp 0x6d5bb39d
lea eax, [esp + 0x10]
push eax
call dword [sym.imp.kernel32.dll_GetSystemInfo]
test esi, esi
je 0x6d5bb3a8
push esi
call dword [sym.imp.kernel32.dll_FreeLibrary]
movzx eax, word [esp + 0x10]
test eax, eax
je 0x6d5bb408
cmp eax, 6
je 0x6d5bb3e8
cmp eax, 9
je 0x6d5bb3cd
push eax
push 0x6d5d76c0
push 0x6d5e2eb4
call ebp
add esp, 0xc
jmp 0x6d5bb426
xor eax, eax
nop
movzx ecx, word [eax + str.amd64]
mov word [eax + 0x6d5e2eb4], cx
add eax, 2
test cx, cx
jne 0x6d5bb3d0
jmp 0x6d5bb426
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [eax + str.ia64]
mov word [eax + 0x6d5e2eb4], cx
add eax, 2
test cx, cx
jne 0x6d5bb3f0
jmp 0x6d5bb426
xor eax, eax
lea ebx, [ebx]
movzx ecx, word [eax + str.i586]
mov word [eax + 0x6d5e2eb4], cx
add eax, 2
test cx, cx
jne 0x6d5bb410
mov esi, dword [esp + 0xc]
mov dword [0x6d5e2f08], 1
mov eax, dword [0x6d5e2edc]
test eax, eax
je 0x6d5bb450
push eax
push 0x6d5e2ee0
push str._s_sp_d
push ebx
call ebp
add esp, 0x10
jmp 0x6d5bb460
push 0x6d5e2ee0
push 0x6d5cfa40
push ebx
call ebp
add esp, 0xc
test esi, esi
je 0x6d5bb474
push 0x6d5e2eb4
push 0x6d5cfa40
push esi
call ebp
add esp, 0xc
mov ecx, dword [esp + 0x150]
pop esi
pop ebp
pop ebx
xor ecx, esp
mov eax, 1
call fcn.6d5ca6ac
add esp, 0x148
ret