Function at 0x431b90
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x12c
mov eax, dword [0x612120]
xor eax, esp
mov dword [esp + 0x128], eax
push ebx
mov ebx, ecx
push esi
push edi
mov edi, dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
mov esi, 4
mov dword [esp + 0xc], ebx
mov dword [ebx], 0
mov dword [ebx + 4], 0
mov dword [ebx + 8], 0
nop dword [eax]
nop word [eax + eax]
xor eax, eax
mov dword [esp + 0x10], 0x11c
push 0xfe
push eax
mov word [esp + 0x2c], ax
xorps xmm0, xmm0
lea eax, [esp + 0x2e]
push eax
movups xmmword [esp + 0x20], xmm0
call fcn.00568da0
add esp, 0xc
xor eax, eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
push 3
push 0x20
push 3
push 1
push 3
push 2
push eax
push eax
call edi
push edx
push eax
call edi
push edx
push eax
call edi
push edx
push eax
movzx ecx, si
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], ecx
xor ecx, ecx
push 0x23
push eax
mov dword [esp + 0x28], 0
mov word [esp + 0x134], cx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x431c6a
inc esi
cmp esi, 0xf
jl 0x431be0
jmp 0x431c6f
lea eax, [esi - 1]
mov dword [ebx], eax
mov edi, 1
movzx esi, word [ebx]
xor eax, eax
push 0xfe
push eax
mov word [esp + 0x2c], ax
xorps xmm0, xmm0
lea eax, [esp + 0x2e]
mov dword [esp + 0x18], 0x11c
push eax
movups xmmword [esp + 0x20], xmm0
call fcn.00568da0
add esp, 0xc
xor eax, eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
push 3
push 0x20
push 3
push 1
push 3
push 2
push eax
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
mov ecx, esi
mov dword [esp + 0x18], ecx
push eax
movzx ecx, di
lea eax, [esp + 0x18]
mov dword [esp + 0x20], ecx
xor ecx, ecx
push 0x23
push eax
mov word [esp + 0x134], cx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x431d0b
inc edi
cmp edi, 0xa
jl 0x431c74
jmp 0x431d11
lea eax, [edi - 1]
mov dword [ebx + 4], eax
mov ebx, 1
nop word [eax + eax]
mov eax, dword [esp + 0xc]
xorps xmm0, xmm0
push 0xfe
mov dword [esp + 0x14], 0x11c
movups xmmword [esp + 0x18], xmm0
movzx edi, word [eax + 4]
movzx esi, word [eax]
xor eax, eax
push eax
mov word [esp + 0x2c], ax
lea eax, [esp + 0x2e]
push eax
call fcn.00568da0
add esp, 0xc
xor eax, eax
mov dword [esp + 0x124], eax
mov dword [esp + 0x128], eax
push 3
push 0x20
push 3
push 1
push 3
push 2
push eax
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
call dword [sym.imp.KERNEL32.dll_VerSetConditionMask]
push edx
push eax
mov ecx, esi
mov word [esp + 0x12c], bx
mov dword [esp + 0x1c], ecx
lea eax, [esp + 0x18]
push 0x23
mov ecx, edi
push eax
mov dword [esp + 0x28], ecx
call dword [sym.imp.KERNEL32.dll_VerifyVersionInfoW]
test eax, eax
je 0x431dd1
inc ebx
cmp ebx, 0xa
jl 0x431d20
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.00564ee1
mov esp, ebp
pop ebp
ret
mov ecx, dword [esp + 0xc]
lea eax, [ebx - 1]
pop edi
pop esi
pop ebx
mov dword [ecx + 8], eax
mov al, 1
mov ecx, dword [esp + 0x128]
xor ecx, esp
call fcn.00564ee1
mov esp, ebp
pop ebp
ret