Function at 0x402370
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x314
mov eax, dword [0x421280]
xor eax, esp
mov dword [esp + 0x310], eax
mov eax, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 1
mov dword [esp + 0x10], eax
mov dword [0x42339c], ebx
call fcn.0040d219
add esp, 4
mov dword [0x4233ac], eax
lea eax, [esp + 0x30]
mov dword [esp + 0x34], 0xff
mov dword [esp + 0x30], 8
push eax
call dword [sym.imp.COMCTL32.dll_InitCommonControlsEx]
push 0x2c0
call fcn.0040d219
mov esi, eax
add esp, 4
test esi, esi
je 0x4023f3
push 0x2c0
push 0
push esi
call fcn.00411080
add esp, 0xc
mov ecx, esi
call fcn.00403940
jmp 0x4023f5
xor eax, eax
push 0x418
mov dword [0x4233a0], eax
call fcn.0040d219
mov esi, eax
add esp, 4
test esi, esi
je 0x40242f
push 0x418
push 0
push esi
call fcn.00411080
add esp, 0xc
push 0x208
push 0
push esi
call fcn.00411080
add esp, 0xc
jmp 0x402431
xor esi, esi
mov edi, dword [0x4233a0]
mov dword [0x4233b0], esi
test edi, edi
je 0x402660
test esi, esi
je 0x402640
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExW]
lea eax, [esp + 0x38]
push eax
mov dword [esp + 0x3c], 0x114
call esi
cmp dword [esp + 0x3c], 6
jne 0x402489
cmp dword [esp + 0x40], 1
jne 0x402489
push 0
push 0x41e95c
push 0x41e968
push 0
call dword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x402677
lea eax, [esp + 0x38]
mov dword [esp + 0x38], 0x114
push eax
call esi
push str.riched20.dll
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
mov dword [esp + 0x10], esi
call fcn.00401f40
mov ecx, dword [esp + 0xc]
call fcn.00402150
push 0x1c4
lea eax, [esp + 0x154]
push 0
push eax
call fcn.00411080
add esp, 0xc
lea ecx, [esp + 0x150]
call fcn.004043f0
push dword [ebp + 0x14]
lea ecx, [esp + 0x154]
call fcn.004048d0
push 0x6d
push ebx
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
push 0
push 0
mov dword [esp + 0x14], eax
lea eax, [esp + 0x1c]
push 0
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
je 0x4025e7
mov esi, dword [sym.imp.USER32.dll_PostMessageW]
mov edi, dword [sym.imp.USER32.dll_TranslateMessage]
mov ebx, dword [sym.imp.USER32.dll_DispatchMessageW]
lea eax, [esp + 0x14]
push eax
push dword [esp + 0x10]
push dword [esp + 0x1c]
call dword [sym.imp.USER32.dll_TranslateAcceleratorW]
test eax, eax
jne 0x4025ca
cmp dword [esp + 0x18], 0x100
jne 0x4025bc
mov eax, dword [esp + 0x1c]
cmp eax, 9
jne 0x402566
mov ecx, dword [esp + 0x14]
call fcn.004020b0
cmp dword [esp + 0x18], 0x100
jne 0x4025bc
mov eax, dword [esp + 0x1c]
cmp eax, 0xd
jne 0x4025bc
xor eax, eax
push 0xc6
push eax
mov word [esp + 0x40], ax
lea eax, [esp + 0x42]
push eax
call fcn.00411080
mov eax, dword [esp + 0x20]
add esp, 0xc
test eax, eax
je 0x4025bc
push 0x64
lea ecx, [esp + 0x3c]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetClassNameW]
push str.Button
lea eax, [esp + 0x3c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x4025bc
push eax
push eax
push 0xf5
push dword [esp + 0x20]
call esi
lea eax, [esp + 0x14]
push eax
call edi
lea eax, [esp + 0x14]
push eax
call ebx
push 0
push 0
push 0
lea eax, [esp + 0x20]
push eax
call dword [sym.imp.USER32.dll_GetMessageW]
test eax, eax
jne 0x402521
mov esi, dword [esp + 0x10]
test esi, esi
je 0x4025f2
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov esi, dword [0x4233a0]
test esi, esi
je 0x402616
mov ecx, esi
call fcn.00403b60
push esi
call fcn.0040d28f
add esp, 4
mov dword [0x4233a0], 0
mov eax, dword [0x4233b0]
test eax, eax
je 0x402632
push eax
call fcn.0040d28f
add esp, 4
mov dword [0x4233b0], 0
lea ecx, [esp + 0x150]
call fcn.004045f0
jmp 0x402677
mov ecx, edi
call fcn.00403b60
push edi
call fcn.0040d28f
mov esi, dword [0x4233b0]
add esp, 4
mov dword [0x4233a0], 0
test esi, esi
je 0x402677
push esi
call fcn.0040d28f
add esp, 4
mov dword [0x4233b0], 0
mov ecx, dword [esp + 0x31c]
xor eax, eax
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0040d13e
mov esp, ebp
pop ebp
ret 0x10