Function at 0x140226900
Capabilities:
Check os version

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x180
mov qword [rsp + 0x30], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov rax, qword [0x14042d950]
xor rax, rsp
mov qword [rsp + 0x170], rax
mov eax, dword [0x140c494f8]
test al, 1
jne 0x140226952
or eax, 1
mov dword [0x140c494f8], eax
call fcn.140224160
mov dword [0x140c494f4], eax
mov eax, dword [0x140c494f8]
xor ebx, ebx
test al, 2
jne 0x140226999
or eax, 2
mov dword [0x140c494f8], eax
xor edx, edx
mov r8d, Ordinal_280
lea rcx, [rsp + 0x40]
call sub.ntdll.dll_memset
mov dword [rsp + 0x40], Ordinal_280
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
mov esi, ebx
cmp dword [rsp + 0x44], 6
setae sil
mov dword [0x140c494f0], esi
jmp 0x14022699f
mov esi, dword [0x140c494f0]
test esi, esi
jne 0x140226a92
xor edx, edx
mov r8d, 0x80
lea rcx, [0x140c48ec0]
call sub.ntdll.dll_memset
lea edx, [rsi + 0x5c]
lea rcx, [0x140372a80]
call qword [sym.imp.ntdll.dll_strrchr]
mov rdi, rax
test rax, rax
je 0x140226a67
mov byte [rsp + 0x160], bl
xor eax, eax
mov qword [rsp + 0x161], rax
mov word [rsp + 0x169], ax
mov byte [rsp + 0x16b], al
mov r8d, 0x68a
lea rdx, [0x140372d0c]
lea rcx, [rsp + 0x160]
call qword [sym.imp.ntdll.dll_sprintf]
lea rdx, [rdi + 1]
lea rcx, [0x140c48ec0]
sub rcx, rdx
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
add rdx, 1
test al, al
jne 0x140226a20
lea rdi, [0x140c48ec0]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x160]
xor ecx, ecx
nop
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x140226a50
lea rbx, [0x140c48ec0]
call fcn.140049470
mov rdi, qword [rax]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
lea r8, str.bIsVista
lea rdx, str._s_return_code:_0x_08X___s.
mov rcx, rax
call qword [rdi + 0x10]
mov eax, esi
jmp 0x140226ba1
mov esi, ebx
cmp dword [0x140c494f4], 0x3ad7
setae sil
test esi, esi
jne 0x140226b9f
xor edx, edx
mov r8d, 0x80
lea rcx, [0x140c48ec0]
call sub.ntdll.dll_memset
lea edx, [rsi + 0x5c]
lea rcx, [0x140372aa0]
call qword [sym.imp.ntdll.dll_strrchr]
mov rdi, rax
test rax, rax
je 0x140226b77
mov byte [rsp + 0x160], bl
xor eax, eax
mov qword [rsp + 0x161], rax
mov word [rsp + 0x169], ax
mov byte [rsp + 0x16b], al
mov r8d, 0x68b
lea rdx, [0x140372d0c]
lea rcx, [rsp + 0x160]
call qword [sym.imp.ntdll.dll_sprintf]
lea rdx, [rdi + 1]
lea rcx, [0x140c48ec0]
sub rcx, rdx
nop
nop
nop
nop
movzx eax, byte [rdx]
mov byte [rcx + rdx], al
add rdx, 1
test al, al
jne 0x140226b30
lea rdi, [0x140c48ec0]
xor eax, eax
or rcx, 0xffffffffffffffff
repne scasb al, byte [rdi]
lea rdx, [rsp + 0x160]
xor ecx, ecx
nop
nop
nop
movzx eax, byte [rdx + rcx]
mov byte [rdi + rcx - 1], al
add rcx, 1
test al, al
jne 0x140226b60
lea rbx, [0x140c48ec0]
call fcn.140049470
mov rdi, qword [rax]
mov qword [rsp + 0x20], rbx
xor r9d, r9d
lea r8, str.BuildID_15063
lea rdx, str._s_return_code:_0x_08X___s.
mov rcx, rax
call qword [rdi + 0x10]
mov eax, esi
jmp 0x140226ba1
mov eax, esi
mov rcx, qword [rsp + 0x170]
xor rcx, rsp
call fcn.140161080
lea r11, [rsp + 0x180]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret