Function at 0x4078b7
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.00403485
push pe_nt_image_headers32
lea eax, [ebp - 0x120]
push 0
push eax
call fcn.0041cc70
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 0x407909
xor al, al
jmp 0x407b08
mov ecx, dword [ebp - 0x11c]
mov edx, dword [ebp - 0x120]
test edi, edi
je 0x407920
imul eax, edx, 0x64
add eax, ecx
mov dword [edi], eax
mov edi, dword [ebp + 8]
test edi, edi
je 0x40792f
mov eax, dword [ebp - 0x118]
mov dword [edi], eax
xor ebx, ebx
inc ebx
cmp edx, 6
jne 0x40797f
sub ecx, 0
je 0x407973
sub ecx, ebx
je 0x407967
sub ecx, ebx
je 0x40795b
sub ecx, ebx
jne 0x4079eb
mov eax, str.Windows_8.1
mov ecx, str.Windows_Server_2012_R2
jmp 0x4079dd
mov eax, str.Windows_8
mov ecx, str.Windows_Server_2012
jmp 0x4079dd
mov eax, str.Windows_7
mov ecx, str.Windows_Server_2008_R2
jmp 0x4079dd
mov eax, str.Windows_Vista
mov ecx, str.Windows_Server_2008
jmp 0x4079dd
cmp edx, 0xa
jne 0x4079ce
cmp byte [ebp - 0xa], bl
jne 0x4079a2
cmp dword [ebp - 0x118], 0x55f0
mov eax, str.Windows_10
mov ecx, str.Windows_11
cmovae eax, ecx
jmp 0x4079e3
cmp dword [ebp - 0x118], 0x4f7c
jb 0x4079b5
mov eax, str.Windows_Server_2022
jmp 0x4079e3
cmp dword [ebp - 0x118], 0x3839
mov eax, str.Windows_Server_2019
mov ecx, str.Windows_Server_2016
cmovbe eax, ecx
jmp 0x4079e3
cmp edx, 0xb
jne 0x4079eb
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.00403485
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], 0x46fb98
push eax
jne 0x407a42
lea eax, [ebp - 0x234]
push 0x46fb9c
push eax
call fcn.004011fb
add esp, 0xc
jmp 0x407a5d
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x234]
push str.__s_build__d
push eax
call fcn.004011fb
add esp, 0x10
mov edx, dword [esi + 4]
test edx, edx
je 0x407aa4
mov ecx, dword [ebp - 0x22c]
test ecx, ecx
je 0x407aa4
mov edi, dword [esi + 8]
lea eax, [edi + ecx]
cmp eax, dword [esi + 0xc]
jae 0x407aa4
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x230]
lea eax, [edx + edi*2]
push eax
call fcn.0041c6f0
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.0040787c
test al, al
je 0x407b06
push str._on
mov ecx, esi
call fcn.00403806
mov edx, dword [esi + 4]
test edx, edx
je 0x407b06
mov ecx, dword [ebp - 0x22c]
test ecx, ecx
je 0x407b06
mov edi, dword [esi + 8]
lea eax, [edi + ecx]
cmp eax, dword [esi + 0xc]
jae 0x407b06
lea eax, [ecx + ecx]
push eax
push dword [ebp - 0x230]
lea eax, [edx + edi*2]
push eax
call fcn.0041c6f0
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