Function at 0x51f5f5
Capabilities:
Check os version

Disassembly:
push 0x350
mov eax, 0x5f5759
call fcn.0044e95a
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x330]
xor edi, edi
mov dword [ebp - 0x338], esi
push 0x118
push edi
mov dword [ebp - 0x354], edi
push eax
mov dword [ebp - 4], edi
mov dword [ebp - 0x35c], esi
mov dword [ebp - 0x334], 0x11c
call fcn.005426c0
add esp, 0xc
lea eax, [ebp - 0x334]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
call fcn.004204ba
test al, al
je 0x51f672
push esi
pop ebx
pop ecx
push ebp
pop ecx
push ecx
push esi
pop eax
pop ebp
pop eax
push edi
push edx
push esi
push edi
push edi
pop edx
pop ebx
push eax
push edi
push ebp
push edx
pop ebp
pop ebp
push ebx
pop eax
push edx
push ebp
push ebp
push edx
push esp
push edi
push 0x5f9ed8
mov ecx, esi
call fcn.00404479
mov eax, dword [ebp - 0x330]
mov dword [ebp - 0x350], eax
movzx eax, byte [ebp - 0x21a]
mov dword [ebp - 0x358], eax
mov eax, dword [ebp - 0x328]
mov dword [ebp - 0x33c], eax
mov eax, dword [ebp - 0x32c]
mov dword [ebp - 4], edi
mov dword [ebp - 0x354], 1
mov dword [ebp - 0x344], edi
mov dword [ebp - 0x348], edi
mov dword [ebp - 0x340], edi
mov dword [ebp - 0x34c], eax
call fcn.0042076c
test al, al
je 0x51f6ee
push edi
pop ebx
push edi
push edx
push ecx
pop ebx
pop edx
push ebx
pop eax
push eax
pop ebp
pop edi
pop ebp
pop esp
pop ecx
push ecx
push edx
push esp
push ecx
push edi
pop ebp
pop ecx
pop ebx
call fcn.004204ff
test al, al
je 0x51f70f
pop eax
pop ebx
pop edi
pop edi
pop ebp
pop edi
pop ecx
pop esp
push esp
pop edi
push eax
push ebp
pop esp
pop edi
pop edx
push ebx
pop esi
push edx
push esp
push ecx
pop ebp
pop ebp
pop edi
push edi
call fcn.00420589
test al, al
je 0x51f730
push esi
push esi
push edx
pop esi
pop ecx
push ecx
pop edi
pop eax
pop ebp
pop eax
push esp
push ecx
pop edx
pop eax
pop ebx
push esi
pop esp
pop ecx
push ecx
pop ebp
pop edi
pop esi
push esi
push ebp
push 0x65d4c4
call dword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov esi, eax
test esi, esi
je 0x51f77c
push str.RtlGetNtVersionNumbers
push esi
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
test eax, eax
je 0x51f775
lea ecx, [ebp - 0x340]
push ecx
lea ecx, [ebp - 0x348]
push ecx
lea ecx, [ebp - 0x344]
push ecx
call eax
movzx eax, word [ebp - 0x340]
mov dword [ebp - 0x340], eax
push esi
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
call fcn.00420361
test al, al
je 0x51f795
pop ebp
push ecx
push ebx
push ebp
pop edx
pop edi
push edx
push esp
push esi
pop ebp
push edx
push edx
pop ecx
pop esp
pop esp
pop esi
mov eax, dword [ebp - 0x350]
cmp eax, 5
jne 0x51f85c
mov eax, dword [ebp - 0x34c]
test eax, eax
je 0x51f7d0
cmp eax, 1
jne 0x51f852
mov esi, str.WindowsXP
push esi
call fcn.005454d1
pop ecx
mov ecx, dword [ebp - 0x338]
push eax
push esi
call fcn.00403bdf
mov ebx, dword [ebp - 0x33c]
call fcn.00420361
test al, al
je 0x51f7ef
pop ebp
push ecx
push ebx
push ebp
pop edx
pop edi
push edx
push esp
push esi
pop ebp
push edx
push edx
pop ecx
pop esp
pop esp
pop esi
mov edi, dword [ebp - 0x338]
mov ecx, edi
push 0x5f9ed8
call fcn.00404af1
test eax, eax
jne 0x51f978
push 0x208
push eax
lea eax, [ebp - 0x218]
push eax
call fcn.005426c0
mov eax, dword [ebp - 0x350]
push ebx
push dword [ebp - 0x34c]
push eax
lea eax, [ebp - 0x218]
push str.Windows_d._d._d
push eax
call fcn.00517d93
add esp, 0x20
cmp word [ebp - 0x218], 0
jne 0x51f95c
xor eax, eax
jmp 0x51f969
mov esi, str.WindowsServer2003
jmp 0x51f7bc
cmp eax, 6
jne 0x51f93a
mov eax, dword [ebp - 0x34c]
sub eax, 0
je 0x51f91d
sub eax, 1
je 0x51f913
mov ebx, dword [ebp - 0x33c]
sub eax, 1
jne 0x51f7d6
cmp ebx, 0x1ebb
je 0x51f8a7
lea eax, [ebx - 0x1ee6]
cmp eax, 0x25
jbe 0x51f8a7
cmp ebx, 0x1f13
jne 0x51f8ae
mov esi, str.Windows8
jmp 0x51f8fa
cmp dword [ebp - 0x344], 0xa
jne 0x51f8db
cmp dword [ebp - 0x348], 0
jne 0x51f7d6
cmp dword [ebp - 0x340], 0x4e20
jae 0x51f955
mov esi, str.Windows10
jmp 0x51f8fa
cmp dword [ebp - 0x344], 6
jne 0x51f7d6
cmp dword [ebp - 0x348], 3
jne 0x51f7d6
mov esi, str.Windows8.1
push esi
call fcn.005454d1
pop ecx
mov ecx, dword [ebp - 0x338]
push eax
push esi
call fcn.00403bdf
jmp 0x51f7d6
mov esi, str.Windows7
jmp 0x51f7bc
cmp dword [ebp - 0x358], 1
jne 0x51f930
mov esi, str.WindowsVista
jmp 0x51f7bc
mov esi, str.WindowsServer2008
jmp 0x51f7bc
cmp eax, 0xa
jne 0x51f7d0
mov ebx, dword [ebp - 0x33c]
cmp ebx, 0x4e20
jb 0x51f7d6
mov esi, str.Windows11
jmp 0x51f8fa
lea eax, [ebp - 0x218]
push eax
call fcn.005454d1
pop ecx
push eax
lea eax, [ebp - 0x218]
mov ecx, edi
push eax
call fcn.00403bdf
call fcn.004207f6
test al, al
je 0x51f99e
push ebx
pop eax
push ecx
pop ebp
push edi
pop ecx
push ecx
pop ecx
push eax
pop esi
push ebx
push ecx
push esi
push ebx
push esp
push ebp
pop ebp
push esi
push edi
pop esp
pop ebp
push eax
pop edx
push eax
push ebp
push edi
pop esp
pop ebx
pop ebx
call fcn.0042090a
test al, al
je 0x51f9cb
pop eax
pop edi
pop ecx
pop edi
push ebp
pop esp
pop ecx
push edi
pop ebp
push ebp
pop edx
push edi
push edi
push esi
push edi
push edi
push esi
push esi
pop esi
pop ebx
push esi
pop edx
push ecx
pop edx
pop eax
push ecx
push eax
pop ebp
pop esi
push ecx
mov edi, dword [ebp - 0x338]
cmp dword [ebp + 0xc], 0
je 0x51f9fb
cmp word [ebp - 0x320], 0
jne 0x51f9df
xor eax, eax
jmp 0x51f9ec
lea eax, [ebp - 0x320]
push eax
call fcn.005454d1
pop ecx
push eax
lea eax, [ebp - 0x320]
mov ecx, edi
push eax
call fcn.004049a5
mov eax, edi
call fcn.0044e904
ret