Function at 0x4c85a0
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4c87e0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xcc
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x3c], edi
mov eax, dword [ebp + 8]
mov edx, dword [ebp + 0xc]
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x44], ecx
mov dword [ebp - 0x14], eax
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x18], eax
mov eax, dword [ebp + 0x14]
mov dword [ebp - 0x30], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x20], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x2c], eax
mov eax, dword [ebp + 0x24]
mov dword [ebp - 0x28], eax
mov al, byte [ebp + 0x28]
mov byte [ebp - 0x34], al
mov dword [ecx], fcn.004c88a0
add ecx, 4
call fcn.0054beb8
mov dword [ebp - 4], 0
mov ecx, dword [ebp - 0x44]
add ecx, 8
call fcn.0054beb8
mov dword [ebp - 4], 1
mov dword [ebp - 0xd8], 0x94
lea eax, [ebp - 0xd8]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov ecx, dword [ebp - 0x44]
add ecx, 4
mov eax, dword [ebp - 0x1c]
push eax
call fcn.0054bebe
mov ebx, 0x4c
mov eax, dword [ebp - 0xc8]
cmp eax, 2
jne 0x4c8670
mov eax, dword [ebp - 0xd4]
cmp eax, 5
jb 0x4c8670
mov ebx, 0x58
mov esi, dword [ebp - 0x44]
add esi, 0xc
xor eax, eax
and eax, 0xff
mov edx, eax
shl edx, 8
or eax, edx
mov ecx, eax
shl ecx, 0x10
or eax, ecx
mov dword [esi], eax
mov dword [esi + 4], eax
mov dword [esi + 8], eax
mov dword [esi + 0xc], eax
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], eax
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], eax
mov dword [esi + 0x28], eax
mov dword [esi + 0x2c], eax
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], eax
mov dword [esi + 0x38], eax
mov dword [esi + 0x3c], eax
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], eax
mov dword [esi + 0x4c], eax
mov dword [esi + 0x50], eax
mov dword [esi + 0x54], eax
mov ecx, dword [ebp - 0x44]
add ecx, 4
push 0x104
call sub.MFC42.DLL_CString::GetBuffer
mov ecx, dword [ebp - 0x44]
mov dword [ecx + 0x28], eax
mov dword [ecx + 0x2c], 0x104
mov eax, dword [ebp - 0x14]
test eax, eax
mov dword [ecx + 0xc], ebx
je 0x4c86f8
mov eax, dword [eax + 0x20]
jmp 0x4c86fa
xor eax, eax
mov dword [ecx + 0x10], eax
mov eax, dword [ebp - 0x30]
mov edx, dword [ebp - 0x2c]
mov dword [ecx + 0x24], eax
mov ebx, dword [ebp - 0x28]
mov esi, dword [ebp - 0x20]
mov dword [ecx + 0x38], edx
mov edi, dword [ebp - 0x18]
mov dword [ecx + 0x3c], ebx
mov dword [ecx + 0x48], esi
mov dword [ecx + 0x50], 0x4c82e0
mov dword [ecx + 0x40], 0x880820
add ecx, 8
push edi
call fcn.0054bebe
mov ecx, dword [ebp - 0x44]
add ecx, 8
push 0
call sub.MFC42.DLL_CString::GetBuffer
push 0x7c
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
je 0x4c8760
mov byte [eax], 0
inc eax
push 0x7c
push eax
call dword [sym.imp.MSVCRT.dll_strchr]
add esp, 8
test eax, eax
jne 0x4c874c
mov ecx, dword [ebp - 0x44]
mov eax, dword [ecx + 8]
mov dword [ecx + 0x18], eax
mov edx, dword [0x5d5cb8]
cmp edx, 4
jne 0x4c8790
mov dword [ecx + 0x54], 0x7c
mov eax, dword [ecx + 0x40]
or eax, 0x40
mov dword [ecx + 0x50], 0x4c8320
and eax, 0xfff7ffff
mov dword [ecx + 0x40], eax
mov al, byte [ebp - 0x34]
mov edx, dword [ebp - 0x24]
mov byte [ecx + 0x64], al
mov dword [ecx + 0x68], edx
mov dword [0x574460], ecx
mov dword [ebp - 4], 0xffffffff
mov eax, ecx
mov ebx, dword [ebp - 0x40]
mov esi, dword [ebp - 0x38]
mov edi, dword [ebp - 0x3c]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x24