Function at 0x403980
Capabilities:
Check os version

Disassembly:
sub esp, 0x48
push ebx
push esi
call dword [sym.imp.COMCTL32.dll_InitCommonControls]
call fcn.00403c70
push 0x415f50
mov dword [0x415f50], 0x94
call dword [sym.imp.KERNEL32.dll_GetVersionExA]
mov eax, dword [0x415f54]
cmp eax, 4
jb 0x4039ba
jne 0x403a0e
cmp dword [0x415f58], 0xa
jae 0x403a0e
lea ecx, [esp + 8]
call fcn.00403e30
push 8
lea ecx, [esp + 0xc]
call fcn.00404030
mov eax, dword [0x415f48]
xor ebx, ebx
cmp eax, ebx
mov ecx, eax
jne 0x4039e0
mov ecx, 0x415f40
mov eax, dword [esp + 8]
cmp eax, ebx
jne 0x4039ed
mov eax, 0x415f40
push 0x30
push ecx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 8]
call fcn.00403e40
pop esi
mov eax, 0x661
pop ebx
add esp, 0x48
ret 0x10
mov eax, dword [0x415f60]
xor ebx, ebx
cmp eax, 2
jne 0x403be7
lea eax, [esp + 0x10]
lea ecx, [esp + 0x18]
push eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push 0x220
push 0x20
push 2
push ecx
mov byte [esp + 0x44], bl
mov byte [esp + 0x45], bl
mov byte [esp + 0x46], bl
mov byte [esp + 0x47], bl
mov byte [esp + 0x48], bl
mov byte [esp + 0x49], 5
call dword [0x415f34]
test eax, eax
jne 0x403ae3
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
mov esi, eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
push 4
push ebx
call fcn.00401350
add esp, 0x19c
mov eax, esi
pop esi
pop ebx
add esp, 0x48
ret 0x10
mov eax, dword [esp + 0x10]
lea edx, [esp + 0x14]
push edx
push eax
push ebx
mov dword [esp + 0x20], ebx
call fcn.00408eac
test eax, eax
jne 0x403b84
call dword [sym.imp.KERNEL32.dll_GetLastError]
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
mov esi, eax
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push ebx
push esi
push 4
push ebx
call fcn.00401350
add esp, 0x19c
mov eax, esi
pop esi
pop ebx
add esp, 0x48
ret 0x10
mov ecx, dword [esp + 0x10]
push ecx
call dword [0x415f2c]
cmp dword [esp + 0x14], ebx
jne 0x403be7
lea ecx, [esp + 8]
call fcn.00403e30
push 1
lea ecx, [esp + 0xc]
call fcn.00404030
mov eax, dword [0x415f48]
cmp eax, ebx
mov ecx, eax
jne 0x403bb9
mov ecx, 0x415f40
mov eax, dword [esp + 8]
cmp eax, ebx
jne 0x403bc6
mov eax, 0x415f40
push 0x30
push ecx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
lea ecx, [esp + 8]
call fcn.00403e40
pop esi
mov eax, 0x4dc
pop ebx
add esp, 0x48
ret 0x10
lea ecx, [esp + 0xc]
call fcn.00403e30
push 5
lea ecx, [esp + 0x10]
call fcn.00404030
mov eax, dword [0x415f48]
cmp eax, ebx
mov ecx, eax
jne 0x403c0b
mov ecx, 0x415f40
mov eax, dword [esp + 0xc]
cmp eax, ebx
jne 0x403c18
mov eax, 0x415f40
push 0x24
push ecx
push eax
push ebx
call dword [sym.imp.USER32.dll_MessageBoxA]
cmp eax, 6
jne 0x403c49
lea ecx, [esp + 0x20]
call fcn.00402c10
lea ecx, [esp + 0x20]
call fcn.00402d00
mov esi, dword [esp + 0x24]
lea ecx, [esp + 0x20]
call fcn.00402ca0
jmp 0x403c4e
mov esi, 0x642
lea ecx, [esp + 0xc]
call fcn.00403e40
mov eax, esi
pop esi
pop ebx
add esp, 0x48
ret 0x10