Function at 0x403570
Capabilities:
Check os version

Disassembly:
sub esp, 0x2c
push ebx
push esi
push edi
mov esi, ecx
call fcn.0043b8c8
mov edi, dword [eax + 4]
mov ecx, esi
call fcn.004378a4
mov ebx, eax
mov eax, dword [esi + 0xdc]
test eax, eax
jne 0x4036ff
xor eax, eax
mov ecx, 0xb
lea edi, [esp + 0xc]
rep stosd dword es:[edi], eax
lea eax, [esp + 0xc]
push eax
mov ecx, esi
mov dword [esp + 0x10], 0x2c
call fcn.00429eaf
mov ecx, dword [esi + 0x1c]
push ecx
call dword [sym.imp.USER32.dll_IsZoomed]
mov ecx, esi
mov dword [esi + 0x27c], eax
call fcn.0042d92c
and eax, 8
mov ecx, esi
mov dword [esi + 0x280], eax
call fcn.0042d912
and eax, 0x40000
mov dword [esi + 0x284], eax
call dword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 5
jae 0x4035fd
push 0
mov ecx, esi
call fcn.0042d9f9
mov edx, dword [esi + 0x1c]
push 0
push edx
call dword [sym.imp.USER32.dll_SetMenu]
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x403625
push 0
push 0
lea eax, [esi + 0xe0]
push eax
mov ecx, esi
call fcn.004383fd
mov eax, dword [esi + 0x204]
test eax, eax
je 0x403641
push 0
push 0
lea ecx, [esi + 0x1e8]
push ecx
mov ecx, esi
call fcn.004383fd
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x144]
push 0
push 8
push 0x100
mov ecx, esi
call fcn.0042d970
test ebx, ebx
je 0x403683
push 0
push 0
push 0x200
mov ecx, ebx
call fcn.0042d970
mov eax, dword [ebx + 0xa8]
lea ecx, [ebx + 0x54]
or eax, 0x20
push eax
call fcn.0040cbd0
push 0
push 0x80000000
push 0x1cc0000
mov ecx, esi
call fcn.0042d946
mov ecx, esi
call fcn.0042d92c
test al, 8
jne 0x4036b7
push 0x13
push 0
push 0
push 0
push 0
push 0x454c10
mov ecx, esi
call fcn.0042da9c
push 0x27
push 0
push 0
push 0
push 0
push 0
mov ecx, esi
call fcn.0042da9c
lea ecx, [esp + 0xc]
push ecx
mov ecx, esi
mov dword [esp + 0x18], 3
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
call fcn.00429ec6
pop edi
mov dword [esi + 0xdc], 1
pop esi
pop ebx
add esp, 0x2c
ret
mov eax, dword [edi + 0xbc]
test eax, eax
mov ecx, esi
push 0
je 0x403719
push 0xc80000
push 0x80000000
jmp 0x403720
push 0x80480000
push 0
call fcn.0042d946
mov eax, dword [esi + 0x284]
test eax, eax
je 0x40373f
push 0
push 0x40000
push 0
mov ecx, esi
call fcn.0042d946
mov eax, dword [esi + 0x280]
test eax, eax
jne 0x40376a
mov ecx, esi
call fcn.0042d92c
test al, 8
je 0x40376a
push 0x13
push 0
push 0
push 0
push 0
push 0x454c60
mov ecx, esi
call fcn.0042da9c
test ebx, ebx
je 0x403790
push 0
push 0x200
push 0
mov ecx, ebx
call fcn.0042d970
mov edx, dword [ebx + 0xa8]
lea ecx, [ebx + 0x54]
and edx, 0xffffffdf
push edx
call fcn.0040cbd0
push 0
push 0x100
push 0
mov ecx, esi
call fcn.0042d970
mov eax, dword [esi + 0x204]
test eax, eax
je 0x4037bc
push 0
push 1
lea eax, [esi + 0x1e8]
push eax
mov ecx, esi
call fcn.004383fd
mov eax, dword [esi + 0xfc]
test eax, eax
je 0x4037d8
push 0
push 1
lea ecx, [esi + 0xe0]
push ecx
mov ecx, esi
call fcn.004383fd
mov edx, dword [esi]
push 1
mov ecx, esi
call dword [edx + 0x144]
mov eax, dword [esi + 0x27c]
test eax, eax
mov ecx, esi
je 0x403807
push 0x27
push 0
push 0
push 0
push 0
push 0
call fcn.0042da9c
push 3
mov ecx, esi
jmp 0x403809
push 9
call fcn.0042d9f9
mov eax, dword [esi + 0x58]
test eax, eax
je 0x403820
push eax
mov eax, dword [esi + 0x1c]
push eax
call dword [sym.imp.USER32.dll_SetMenu]
pop edi
mov dword [esi + 0xdc], 0
pop esi
pop ebx
add esp, 0x2c
ret