Function at 0x40719f
Capabilities:
Check os version

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
push ebx
push esi
push edi
push str.Windows
mov edi, edx
mov esi, ecx
call fcn.004031de
push pe_nt_image_headers32
lea eax, [ebp - 0x120]
push 0
push eax
call fcn.0041d6f0
add esp, 0xc
mov dword [ebp - 0x124], 0x11c
lea eax, [ebp - 0x124]
push eax
call dword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
jne 0x4071f1
xor al, al
jmp 0x4073f0
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x120]
test edi, edi
je 0x407208
imul eax, edx, 0x64
add eax, ecx
mov dword [edi], eax
mov edi, dword [ebp + 8]
test edi, edi
je 0x407217
mov eax, dword [ebp - 0x118]
mov dword [edi], eax
xor ebx, ebx
inc ebx
cmp edx, 6
jne 0x407267
sub ecx, 0
je 0x40725b
sub ecx, ebx
je 0x40724f
sub ecx, ebx
je 0x407243
sub ecx, ebx
jne 0x4072d3
mov eax, str.Windows_8.1
mov ecx, str.Windows_Server_2012_R2
jmp 0x4072c5
mov eax, str.Windows_8
mov ecx, str.Windows_Server_2012
jmp 0x4072c5
mov eax, str.Windows_7
mov ecx, str.Windows_Server_2008_R2
jmp 0x4072c5
mov eax, str.Windows_Vista
mov ecx, str.Windows_Server_2008
jmp 0x4072c5
cmp edx, 0xa
jne 0x4072b6
cmp byte [ebp - 0xa], bl
jne 0x40728a
cmp dword [ebp - 0x118], 0x55f0
mov eax, 0x50c020
mov ecx, str.Windows_11
cmovae eax, ecx
jmp 0x4072cb
cmp dword [ebp - 0x118], 0x4f7c
jb 0x40729d
mov eax, str.Windows_Server_2022
jmp 0x4072cb
cmp dword [ebp - 0x118], 0x3839
mov eax, str.Windows_Server_2019
mov ecx, str.Windows_Server_2016
cmovbe eax, ecx
jmp 0x4072cb
cmp edx, 0xb
jne 0x4072d3
mov eax, str.Windows_11
mov ecx, str.Windows_Server_2022
cmp byte [ebp - 0xa], bl
cmovne eax, ecx
push eax
mov ecx, esi
call fcn.004031de
and dword [ebp - 0x22c], 0
lea eax, [ebp - 0x224]
mov dword [ebp - 0x230], eax
xor eax, eax
cmp word [ebp - 0x110], ax
mov word [ebp - 0x224], ax
movzx eax, word [ebp - 0x118]
mov dword [ebp - 0x228], 0x80
mov dword [ebp - 0x234], 0x50c0c8
push eax
jne 0x40732a
lea eax, [ebp - 0x234]
push 0x50c0cc
push eax
call fcn.0040371e
add esp, 0xc
jmp 0x407345
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x234]
push str.__s_build__d
push eax
call fcn.0040371e
add esp, 0x10
mov edx, dword [esi + 4]
test edx, edx
je 0x40738c
mov ecx, dword [ebp - 0x22c]
test ecx, ecx
je 0x40738c
mov edi, dword [esi + 8]
lea eax, [edi + ecx]
cmp eax, dword [esi + 0xc]
jae 0x40738c
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x230]
lea eax, [edx + edi*2]
push eax
call fcn.0041d170
mov eax, dword [ebp - 0x22c]
add esp, 0xc
add dword [esi + 8], eax
xor edx, edx
mov ecx, dword [esi + 8]
mov eax, dword [esi + 4]
mov word [eax + ecx*2], dx
lea ecx, [ebp - 0x234]
call fcn.00407164
test al, al
je 0x4073ee
push str._on
mov ecx, esi
call fcn.004035d5
mov edx, dword [esi + 4]
test edx, edx
je 0x4073ee
mov ecx, dword [ebp - 0x22c]
test ecx, ecx
je 0x4073ee
mov edi, dword [esi + 8]
lea eax, [edi + ecx]
cmp eax, dword [esi + 0xc]
jae 0x4073ee
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x230]
lea eax, [edx + edi*2]
push eax
call fcn.0041d170
mov ecx, dword [ebp - 0x22c]
add esp, 0xc
add dword [esi + 8], ecx
mov edx, dword [esi + 8]
mov ecx, dword [esi + 4]
xor esi, esi
mov word [ecx + edx*2], si
mov al, bl
pop edi
pop esi
pop ebx
leave
ret