Function at 0x472cd2
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4f6522
mov eax, dword fs:[0]
push eax
sub esp, 0x140
mov eax, dword [0x54b0c4]
xor eax, esp
mov dword [esp + 0x138], eax
push ebx
push esi
push edi
mov eax, dword [0x54b0c4]
xor eax, esp
push eax
lea eax, [esp + 0x150]
mov dword fs:[0], eax
mov ebx, ecx
mov ecx, dword [ebx + 0x28]
mov edx, dword [ecx - 0xc]
xor eax, eax
inc eax
test edx, edx
jne 0x472d2e
mov edx, dword [ebx + 0x2c]
cmp dword [edx - 0xc], 0
je 0x472f07
lea edi, [ebx + 0x34]
push edi
mov esi, 0x514a78
push esi
push ecx
call fcn.00440984
mov eax, dword [ebx + 0x2c]
add esp, 0xc
lea ecx, [ebx + 0x44]
push ecx
push esi
push eax
call fcn.00440984
add esp, 0xc
mov eax, edi
call fcn.00498dd2
cmp eax, 0xa
jne 0x47300e
lea eax, [ebx + 0x44]
call fcn.00498dd2
cmp eax, 0xa
jne 0x47300e
push 0x118
lea eax, [esp + 0x2c]
push 0
push eax
call sub.MSVCR80.dll_memset
add esp, 0xc
push 2
xor eax, eax
mov dword [esp + 0x28], 0x11c
call fcn.00473034
mov dword [esp + 0x28], eax
xor eax, eax
inc eax
push eax
call fcn.00473034
push 4
push 2
mov dword [esp + 0x34], eax
pop eax
call fcn.00473034
push 8
push 3
mov dword [esp + 0x38], eax
pop eax
call fcn.00473034
push 0x20
push 5
mov dword [esp + 0x3c], eax
pop eax
call fcn.00473034
push 0x10
push 6
mov word [esp + 0x140], ax
pop eax
call fcn.00473034
push 0x40
push 7
mov word [esp + 0x142], ax
pop eax
call fcn.00473034
push 0x80
push 8
mov word [esp + 0x144], ax
pop eax
call fcn.00473034
push dword [ebx + 0x24]
mov byte [esp + 0x142], al
push dword [ebx + 0x20]
lea eax, [esp + 0x2c]
push dword [ebx + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
jne 0x472f07
lea eax, [ebx + 0xc]
push 0x514a7c
push eax
call fcn.00402d46
xor esi, esi
cmp dword [0x550bdc], esi
je 0x47300e
push str.OsVersionCondition::IsRecommanded
lea eax, [esp + 0x1c]
push eax
call fcn.00402d09
mov dword [esp + 0x158], esi
cmp dword [ebx + 8], esi
jne 0x472e69
or dword [esp + 0x14], 0xffffffff
jmp 0x472e74
mov ecx, dword [ebx + 8]
mov eax, dword [ecx]
call dword [eax]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x18]
lea edi, [esp + 0x1c]
call fcn.004c0aa3
mov byte [esp + 0x158], 1
mov ecx, dword [ebx + 0x2c]
mov ebx, dword [ebx + 0x28]
mov edx, dword [eax]
push ecx
push str.ConditionMask
push ebx
push str.VerifyVersionInfoCondition_return_false__VersionInfo
mov eax, 0x509228
push eax
push edx
push 0x5091f0
push eax
lea eax, [esp + 0x34]
push eax
push str._pushtype
call fcn.004022f5
call fcn.0040233d
call fcn.00423894
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
mov esi, eax
call fcn.00402366
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
call fcn.004012f9
mov eax, dword [esp + 0x18]
jmp 0x473006
lea esi, [ebx + 0x30]
cmp dword [esi], 0
je 0x473010
call fcn.00497c1f
mov edi, eax
xor eax, eax
cmp edi, dword [esi]
sete al
test eax, eax
jne 0x473010
lea eax, [ebx + 0xc]
push 0x514a7c
push eax
call fcn.00402d46
cmp dword [0x550bdc], 0
je 0x47300e
push str.OsVersionCondition::IsRecommanded
lea eax, [esp + 0x18]
push eax
mov dword [esp + 0x24], edi
call fcn.00402d09
mov dword [esp + 0x158], 2
cmp dword [ebx + 8], 0
jne 0x472f6f
or dword [esp + 0x18], 0xffffffff
jmp 0x472f7a
mov ecx, dword [ebx + 8]
mov eax, dword [ecx]
call dword [eax]
mov dword [esp + 0x18], eax
lea eax, [esp + 0x14]
lea edi, [esp + 0x20]
call fcn.004c0aa3
push esi
push str.__but_need
mov byte [esp + 0x160], 3
mov ecx, dword [eax]
lea eax, [esp + 0x24]
push eax
push str.VerifyVersionInfoCondition:processor_architecture_is
mov eax, 0x509228
push eax
push ecx
push 0x5091f0
push eax
lea eax, [esp + 0x38]
push eax
push str._pushtype
call fcn.004022f5
call fcn.0040233d
call fcn.00423894
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.0040233d
call fcn.00423894
call fcn.0040233d
call fcn.00423894
mov esi, eax
call fcn.00402366
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
call fcn.004012f9
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
call fcn.004012f9
xor eax, eax
mov ecx, dword [esp + 0x150]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x138]
xor ecx, esp
call fcn.004d0736
mov esp, ebp
pop ebp
ret