Function at 0x10098880
Capabilities:
Check os version

Disassembly:
sub esp, 0x478
mov eax, dword [0x10189710]
xor eax, esp
mov dword [esp + 0x474], eax
push ebx
push esi
push edi
xor ebx, ebx
push 0x90
lea eax, [esp + 0x3c]
mov esi, ecx
push ebx
push eax
mov dword [esp + 0x3c], esi
mov dword [esp + 0x40], ebx
call fcn.1012e060
add esp, 0xc
call fcn.100677f0
mov dword [esp + 0xc], eax
cmp esi, ebx
jne 0x100988de
or eax, 0xffffffff
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x474]
xor ecx, esp
call fcn.10127db1
add esp, 0x478
ret
mov byte [esi], bl
mov esi, dword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [0x101c8674], ebx
jne 0x1009890f
mov edi, 1
mov dword [0x101c8674], edi
call dword [sym.imp.KERNEL32.dll_GetVersion]
test eax, eax
js 0x1009890f
cmp al, 6
jb 0x1009890f
mov dword [0x101c8678], edi
jmp 0x10098917
cmp dword [0x101c8678], ebx
je 0x10098940
xor edx, edx
lea ecx, [esp + 0x34]
call fcn.1005a1e0
test eax, eax
jne 0x10098962
push 0x94
lea ecx, [esp + 0x38]
push ebx
push ecx
call fcn.1012e060
add esp, 0xc
lea edx, [esp + 0x34]
push edx
jmp 0x10098958
push 0x94
lea eax, [esp + 0x38]
push ebx
push eax
call fcn.1012e060
add esp, 0xc
lea ecx, [esp + 0x34]
push ecx
mov dword [esp + 0x38], 0x94
call esi
push 0x103
lea edx, [esp + 0x169]
push ebx
push edx
mov byte [esp + 0x170], bl
call fcn.1012e060
add esp, 0xc
push 0x103
lea eax, [esp + 0x379]
push ebx
push eax
mov byte [esp + 0x380], bl
call fcn.1012e060
add esp, 0xc
push 0x103
lea ecx, [esp + 0x271]
push ebx
push ecx
mov byte [esp + 0x278], bl
call fcn.1012e060
add esp, 0xc
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x1c]
push ecx
push ebx
lea edx, [esp + 0x34]
push edx
lea eax, [esp + 0x3c]
push eax
push ebx
lea ecx, [esp + 0x48]
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x38], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x48], ebx
push ecx
lea ebx, [esp + 0x3c]
xor edx, edx
lea ecx, [esp + 0x30]
xor edi, edi
call fcn.1006bdc0
mov ebx, 1
add esp, 0x20
cmp dword [esp + 0x10], ebx
jne 0x10098a38
mov edx, dword [str.2000]
mov al, byte [0x1015afc4]
mov edi, ebx
mov dword [esp + 0x164], edx
mov byte [esp + 0x168], al
jmp 0x10098b61
cmp dword [esp + 0x28], ebx
jne 0x10098a64
mov cx, word [0x1015afc8]
mov dl, byte [0x1015afca]
mov edi, 2
mov word [esp + 0x164], cx
mov byte [esp + 0x166], dl
jmp 0x10098b61
cmp dword [esp + 0x24], ebx
jne 0x10098ab8
mov edi, 2
cmp dword [esp + 0xc], edi
jle 0x10098a98
mov eax, dword [str.2003]
mov cl, byte [0x1015afd0]
mov edi, 3
mov dword [esp + 0x164], eax
mov byte [esp + 0x168], cl
jmp 0x10098b61
mov dx, word [0x1015afc8]
mov al, byte [0x1015afca]
mov word [esp + 0x164], dx
mov byte [esp + 0x166], al
jmp 0x10098b61
cmp dword [esp + 0x1c], ebx
jne 0x10098b61
mov ecx, dword [str.Vista]
mov dx, word [0x1015afd8]
mov edi, 4
mov dword [esp + 0x164], ecx
mov word [esp + 0x168], dx
call fcn.100677f0
cmp eax, 2
jle 0x10098b0d
mov eax, dword [str.2008]
mov cl, byte [0x1015aff0]
mov edi, 5
mov dword [esp + 0x164], eax
mov byte [esp + 0x168], cl
jmp 0x10098b61
push 0x90
lea edx, [esp + 0xd4]
push 0
push edx
call fcn.1012e060
add esp, 0xc
lea eax, [esp + 0xcc]
push eax
mov dword [esp + 0xd0], 0x94
call esi
cmp dword [esp + 0xd4], ebx
jne 0x10098b61
mov ecx, dword [str.Win7]
mov dl, byte [0x1015b004]
mov edi, 6
mov dword [esp + 0x164], ecx
mov byte [esp + 0x168], dl
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x38]
cmp dword [esp + 0x14], ebx
jne 0x10098b8c
mov edx, dword [str.Win7]
mov dword [esp + 0x164], edx
mov dl, byte [0x1015b004]
mov edi, 6
jmp 0x10098c79
cmp dword [esp + 0x18], ebx
jne 0x10098c80
mov edi, 5
cmp ecx, 6
jne 0x10098c42
test eax, eax
jne 0x10098bc0
mov edx, dword [str.2008]
mov dword [esp + 0x164], edx
mov dl, byte [0x1015aff0]
jmp 0x10098c79
cmp eax, ebx
jne 0x10098bf2
mov edx, dword [str.2008R2]
mov dword [esp + 0x164], edx
mov dx, word [0x1015afe0]
mov word [esp + 0x168], dx
mov dl, byte [0x1015afe2]
mov byte [esp + 0x16a], dl
jmp 0x10098c80
cmp eax, 2
jne 0x10098c0f
mov edx, dword [str.2012]
mov dword [esp + 0x164], edx
mov dl, byte [0x1015b01c]
lea edi, [eax + 6]
jmp 0x10098c79
cmp eax, 3
jne 0x10098c80
mov edx, dword [str.2012R2]
mov dword [esp + 0x164], edx
mov dx, word [0x1015b00c]
mov word [esp + 0x168], dx
mov dl, byte [0x1015b00e]
mov byte [esp + 0x16a], dl
lea edi, [eax + 5]
jmp 0x10098c80
cmp ecx, 0xa
jb 0x10098c80
cmp dword [esp + 0x40], 0x44c0
jae 0x10098c66
mov edx, dword [str.2016]
mov dword [esp + 0x164], edx
mov dl, byte [0x10172524]
jmp 0x10098c79
mov edx, dword [str.2019]
mov dword [esp + 0x164], edx
mov dl, byte [0x1017252c]
mov byte [esp + 0x168], dl
cmp dword [esp + 0x20], ebx
jne 0x10098ccb
mov edi, 7
cmp ecx, 6
jne 0x10098cb2
cmp eax, 3
jne 0x10098cb2
mov eax, dword [str.Win81]
mov cx, word [0x1015b030]
mov dword [esp + 0x164], eax
mov word [esp + 0x168], cx
jmp 0x10098ccb
mov edx, dword [str.Win8]
mov al, byte [0x1015b044]
mov dword [esp + 0x164], edx
mov byte [esp + 0x168], al
cmp dword [0x101c8654], 0
jne 0x10098ce6
xor esi, esi
mov dword [0x101c8654], ebx
call fcn.1006b910
mov dword [0x101c8658], eax
cmp dword [0x101c8658], 0
je 0x10098d44
cmp dword [esp + 0xc], 2
jg 0x10098d44
call fcn.1006ba70
test eax, eax
je 0x10098d22
mov ecx, dword [str.Win11]
mov dx, word [0x10172534]
mov dword [esp + 0x164], ecx
mov word [esp + 0x168], dx
mov edi, 0xa
jmp 0x10098d4c
mov eax, dword [str.Win10]
mov cx, word [0x1015b058]
mov dword [esp + 0x164], eax
mov word [esp + 0x168], cx
mov edi, 9
jmp 0x10098d4c
test edi, edi
jle 0x10098dd5
cmp byte [esp + 0x164], 0
je 0x10098dd5
call fcn.1006b040
cmp eax, ebx
jne 0x10098d6a
mov dword [esp + 0x374], 0x343678
lea esi, [esp + 0xc]
mov dword [esp + 0xc], 0
call fcn.1006b6e0
mov esi, dword [esp + 0xc]
test si, si
jbe 0x10098d9d
movzx edx, si
push edx
lea eax, [esp + 0x270]
push str.SP_d
push eax
call fcn.10127dc0
add esp, 0xc
cmp edi, ebx
jne 0x10098da7
cmp si, 4
jb 0x10098dd3
lea ecx, [esp + 0x26c]
push ecx
mov ecx, dword [esp + 0x34]
lea edx, [esp + 0x378]
push edx
lea eax, [esp + 0x16c]
push eax
push 0x1015b05c
push ecx
call fcn.10127dc0
add esp, 0x14
jmp 0x10098dd5
xor edi, edi
mov ecx, dword [esp + 0x480]
mov eax, edi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.10127db1
add esp, 0x478
ret