Function at 0x140032b80
Capabilities:
Check os version
Get system information on windows

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x180]
sub rsp, 0x280
mov rax, qword [0x140313918]
xor rax, rsp
mov qword [rbp + 0x170], rax
mov rdi, rdx
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmmword [rsp + 0x60], xmm0
movups xmmword [rsp + 0x70], xmm0
xor edx, edx
mov r8d, 0x118
lea rcx, [rbp - 0x4c]
call fcn.14021ac40
mov dword [rbp - 0x50], 0x11c
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x140034bcc
cmp dword [rbp - 0x4c], 6
jb 0x140032c34
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x44]
call fcn.14002fcb0
test al, al
je 0x140032c34
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
cmp dword [rbp - 0x4c], ecx
jne 0x140032c27
cmp dword [rbp - 0x48], eax
je 0x140032c34
mov dword [rbp - 0x4c], ecx
mov dword [rbp - 0x48], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp - 0x44], eax
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.GetNativeSystemInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [rsp + 0x50]
test rax, rax
je 0x140032c5f
call rax
jmp 0x140032c65
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rbp - 0x40], 2
jne 0x140034bcc
cmp dword [rbp - 0x4c], 4
jbe 0x140034bcc
mov edx, 0x100
mov rcx, rdi
lea r8, str.Microsoft
sub r8, rdi
nop dword [rax + rax]
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x140032cb3
movzx eax, word [r8 + rcx]
test ax, ax
je 0x140032cb3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140032c90
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
xor r8d, r8d
mov word [rax], r8w
lea r12, vtable.srl::Exists.0
movzx eax, word [rsp + 0x50]
cmp ax, 6
jne 0x140032d4d
mov edx, 0x11660
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x80]
call fcn.14004fb30
nop
lea rax, vtable.srl::Value.0
mov qword [rsp + 0x30], rax
lea rcx, [rbp - 0x80]
call fcn.140021670
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x116c0
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140032dbb
cmp ax, 9
jne 0x140032dbe
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11660
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x116c1
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
xor r8d, r8d
xor r14b, r14b
xor r15b, r15b
xor sil, sil
mov ebx, 0x7ffffffe
cmp dword [rbp - 0x4c], 0xa
jne 0x140032e87
mov ecx, 0x100
mov rax, rdi
nop
cmp word [rax], 0
je 0x140032df0
add rax, 2
sub rcx, 1
jne 0x140032de0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, r8
je 0x140032e53
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140032e44
mov rax, rbx
lea r9, str.Windows_10
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x140032e41
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140032e41
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140032e20
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1175c
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
lea r13, str.Datacenter_Edition
lea r12, str.Enterprise_Edition_for_Itanium_based_Systems
cmp dword [rbp - 0x4c], 6
jne case.0x140033552.5
cmp dword [rbp - 0x48], 0
jne 0x140033022
mov ecx, 0x100
mov rax, rdi
cmp byte [rbp + 0xca], 1
jne 0x140032f75
nop
cmp word [rax], 0
je 0x140032ed0
add rax, 2
sub rcx, 1
jne 0x140032ec0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r10d, 0
cmove rax, r10
je 0x140032f32
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140032f23
mov rax, rbx
lea r9, str.Windows_Vista
sub r9, rcx
test rax, rax
je 0x140032f23
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140032f23
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140032f02
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r10w
lea rax, vtable.srl::Exists.0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
mov edx, 0x11653
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov r14b, 1
jmp 0x140033022
cmp word [rax], 0
je 0x140032f85
add rax, 2
sub rcx, 1
jne 0x140032f75
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r10d, 0
cmove rax, r10
je 0x140032fe7
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140032fd8
mov rax, rbx
lea r9, str.Windows_Server_2008
sub r9, rcx
test rax, rax
je 0x140032fd8
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140032fd8
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140032fb7
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r10w
lea rax, vtable.srl::Exists.0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
mov edx, 0x11729
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
cmp dword [rbp - 0x48], 1
jne 0x1400331b0
mov ecx, 0x100
mov rax, rdi
cmp byte [rbp + 0xca], 1
jne 0x140033100
cmp word [rax], 0
je 0x140033051
add rax, 2
sub rcx, 1
jne 0x140033041
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x1400330b6
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400330a7
mov rax, rbx
lea r9, str.Windows_7
sub r9, rcx
test rax, rax
je 0x1400330a4
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x1400330a4
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033083
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea rax, vtable.srl::Exists.0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
mov edx, 0x116b6
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov r15b, 1
jmp 0x1400331b0
cmp word [rax], 0
je 0x140033110
add rax, 2
sub rcx, 1
jne 0x140033100
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x140033175
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033166
mov rax, rbx
lea r9, str.Windows_Server_2008_R2
sub r9, rcx
test rax, rax
je 0x140033163
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033163
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033142
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea rax, vtable.srl::Exists.0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
mov edx, 0x1172a
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
cmp dword [rbp - 0x48], 2
jne 0x140033370
mov ecx, 0x100
mov rax, rdi
cmp byte [rbp + 0xca], 1
jne 0x1400332c0
nop
cmp word [rax], 0
je 0x1400331e0
add rax, 2
sub rcx, 1
jne 0x1400331d0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x140033245
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033236
mov rax, rbx
lea r9, str.Windows_8
sub r9, rcx
test rax, rax
je 0x140033233
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033233
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033212
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea rsi, vtable.srl::Exists.0
mov qword [rsp + 0x30], rsi
mov byte [rsp + 0x38], 1
mov edx, 0x1173c
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov qword [rsp + 0x30], rsi
mov byte [rsp + 0x38], 1
mov edx, 0x11745
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov sil, 1
jmp 0x140033370
cmp word [rax], 0
je 0x1400332d0
add rax, 2
sub rcx, 1
jne 0x1400332c0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x140033335
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033326
mov rax, rbx
lea r9, str.Windows_Server_2012
sub r9, rcx
test rax, rax
je 0x140033323
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033323
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033302
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea rax, vtable.srl::Exists.0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
mov edx, 0x1173d
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
cmp dword [rbp - 0x48], 3
jne 0x1400334f5
mov ecx, 0x100
mov rax, rdi
cmp byte [rbp + 0xca], 1
jne 0x140033445
nop
cmp word [rax], 0
je 0x1400333a0
add rax, 2
sub rcx, 1
jne 0x140033390
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x140033405
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400333f6
mov rax, rbx
lea r9, str.Windows_8.1
sub r9, rcx
test rax, rax
je 0x1400333f3
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x1400333f3
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400333d2
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea rax, vtable.srl::Exists.0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
mov edx, 0x1174e
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x1400334f5
cmp word [rax], 0
je 0x140033455
add rax, 2
sub rcx, 1
jne 0x140033445
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x1400334ba
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400334ab
mov rax, rbx
lea r9, str.Windows_Server_2012_R2
sub r9, rcx
test rax, rax
je 0x1400334a8
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x1400334a8
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033487
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea rax, vtable.srl::Exists.0
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 1
mov edx, 0x1174f
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_GetModuleHandleW]
mov rcx, rax
lea rdx, str.GetProductInfo
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
lea rcx, [rsp + 0x4c]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
xor r8d, r8d
mov edx, dword [rbp - 0x48]
mov ecx, dword [rbp - 0x4c]
call rax
mov eax, dword [rsp + 0x4c]
dec eax
cmp eax, 0x2f
ja case.0x140033552.5
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x34c50]
mov ecx, dword [rdx + rax*4 + 0x34c04]
add rcx, rdx
jmp rcx
mov ecx, 0x100
mov rax, rdi
nop dword [rax]
cmp word [rax], 0
je 0x140033570
add rax, 2
sub rcx, 1
jne 0x140033560
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x1400335d5
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400335c6
mov rax, rbx
lea r9, str.Professional_Edition
sub r9, rcx
test rax, rax
je 0x1400335c3
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x1400335c3
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400335a2
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
lea r14, vtable.srl::Exists.0
test r15b, r15b
je 0x14003361c
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11738
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
xor esi, esi
jmp 0x140033d19
test sil, sil
je 0x140033689
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11746
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 0
mov edx, 0x11745
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
xor esi, esi
jmp 0x140033d19
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x1400336a8
add rax, 2
sub rcx, 1
jne 0x140033698
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x14003370f
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033701
mov rax, rbx
lea r9, str.Ultimate_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x140033701
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033701
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400336e0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
test r14b, r14b
lea r14, vtable.srl::Exists.0
je 0x140033754
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1166b
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
test r15b, r15b
je 0x140033d19
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11735
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
mov ecx, 0x100
mov rax, rdi
nop
cmp word [rax], 0
je 0x1400337b0
add rax, 2
sub rcx, 1
jne 0x1400337a0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033810
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033802
mov rax, rbx
lea r9, str.Home_Premium_Edition
sub r9, rcx
test rax, rax
je 0x140033802
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033802
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400337e1
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
test r14b, r14b
lea r14, vtable.srl::Exists.0
je 0x140033855
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1166a
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
test r15b, r15b
je 0x140033d19
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11739
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
mov ecx, 0x100
mov rax, rdi
nop
cmp word [rax], 0
je 0x1400338b0
add rax, 2
sub rcx, 1
jne 0x1400338a0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033910
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033902
mov rax, rbx
lea r9, str.Home_Basic_Edition
sub r9, rcx
test rax, rax
je 0x140033902
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033902
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400338e1
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
test r14b, r14b
lea r14, vtable.srl::Exists.0
je 0x140033955
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11669
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
test r15b, r15b
je 0x140033d19
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1173a
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
mov ecx, 0x100
mov rax, rdi
nop
cmp word [rax], 0
je 0x1400339b0
add rax, 2
sub rcx, 1
jne 0x1400339a0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov r8d, 0
cmove rax, r8
je 0x140033a15
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033a06
mov rax, rbx
lea r9, str.Enterprise_Edition
sub r9, rcx
test rax, rax
je 0x140033a03
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033a03
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400339e2
xor r8d, r8d
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r8w
test r14b, r14b
lea r14, vtable.srl::Exists.0
je 0x140033a5c
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11668
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
xor esi, esi
jmp 0x140033d19
test r15b, r15b
je 0x140033a9c
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11737
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
xor esi, esi
jmp 0x140033d19
test sil, sil
je 0x140033689
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11747
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 0
mov edx, 0x11745
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
xor esi, esi
jmp 0x140033d19
mov ecx, 0x100
mov rax, rdi
nop dword [rax]
cmp word [rax], 0
je 0x140033b30
add rax, 2
sub rcx, 1
jne 0x140033b20
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033b90
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033b82
mov rax, rbx
lea r9, str.Business_Edition
sub r9, rcx
test rax, rax
je 0x140033b82
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033b82
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033b61
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
test r14b, r14b
lea r14, vtable.srl::Exists.0
je 0x140033d19
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11667
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140033bf1
add rax, 2
sub rcx, 1
jne 0x140033be1
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033c51
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033c43
mov rax, rbx
lea r9, str.Starter_Edition
sub r9, rcx
test rax, rax
je 0x140033c43
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033c43
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033c22
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
lea r14, vtable.srl::Exists.0
test r15b, r15b
je 0x140033d19
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1173b
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x140033d19
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140033cb2
add rax, 2
sub rcx, 1
jne 0x140033ca2
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Cluster_Server_Edition
sub r9, rcx
test rax, rax
je 0x140033d04
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033ce3
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
lea r14, vtable.srl::Exists.0
cmp dword [rbp - 0x4c], 5
jne 0x140034b2a
mov eax, dword [rbp - 0x48]
cmp eax, 2
jne 0x140034a10
lea ecx, [rax + 0x57]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x1400342f5
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140033d58
add rax, 2
sub rcx, 1
jne 0x140033d48
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140033db3
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033da5
mov rax, rbx
lea r9, str.Windows_Server_2003_R2_
sub r9, rcx
test rax, rax
je 0x140033da5
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033da5
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033d84
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1165f
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x1400345f3
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140033e04
add rax, 2
sub rcx, 1
jne 0x140033df4
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
mov r9, r13
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x140033d04
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033e40
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140033e86
add rax, 2
sub rcx, 1
jne 0x140033e76
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Datacenter_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033ec0
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140033f06
add rax, 2
sub rcx, 1
jne 0x140033ef6
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Enterprise_Edition
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033f40
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140033f86
add rax, 2
sub rcx, 1
jne 0x140033f76
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Enterprise_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140033fc0
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034006
add rax, 2
sub rcx, 1
jne 0x140033ff6
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
mov r9, r12
sub r9, rcx
nop dword [rax + rax]
test rax, rax
je 0x140033d04
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140034040
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034086
add rax, 2
sub rcx, 1
jne 0x140034076
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Small_Business_Server
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400340c0
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034106
add rax, 2
sub rcx, 1
jne 0x1400340f6
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Small_Business_Server_Premium_Edition
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140034140
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034186
add rax, 2
sub rcx, 1
jne 0x140034176
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Standard_Edition
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400341c0
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034206
add rax, 2
sub rcx, 1
jne 0x1400341f6
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Standard_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140034240
jmp 0x140033d04
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034286
add rax, 2
sub rcx, 1
jne 0x140034276
mov eax, 0x100
sub rax, rcx
test rcx, rcx
mov esi, 0
cmove rax, rsi
je 0x140033d12
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140033d04
mov rax, rbx
lea r9, str.Web_Server_Edition
sub r9, rcx
nop
test rax, rax
je 0x140033d04
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140033d04
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400342c0
jmp 0x140033d04
xor esi, esi
jmp 0x140033d12
mov ecx, 0x2000
movzx eax, word [rbp + 0xc8]
cmp ax, cx
jne 0x1400343b8
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034322
add rax, 2
sub rcx, 1
jne 0x140034312
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x14003437f
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140034371
mov rax, rbx
lea r9, str.Windows_Storage_Server_2003
sub r9, rcx
nop
test rax, rax
je 0x140034371
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140034371
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140034350
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1165f
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x1400345f3
mov ecx, 0x8000
cmp ax, cx
jne 0x140034478
mov ecx, 0x100
mov rax, rdi
nop
cmp word [rax], 0
je 0x1400343e0
add rax, 2
sub rcx, 1
jne 0x1400343d0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x14003443f
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140034431
mov rax, rbx
lea r9, str.Windows_Home_Server
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x140034431
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140034431
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140034410
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x11744
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x1400345f3
cmp byte [rbp + 0xca], 1
jne 0x140034548
cmp word [rsp + 0x50], 9
jne 0x140034548
mov ecx, 0x100
mov rax, rdi
nop dword [rax]
cmp word [rax], 0
je 0x1400344b0
add rax, 2
sub rcx, 1
jne 0x1400344a0
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x14003450f
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x140034501
mov rax, rbx
lea r9, str.Windows_XP_Professional_x64_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x140034501
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140034501
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x1400344e0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1166c
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
jmp 0x1400345f3
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034560
add rax, 2
sub rcx, 1
jne 0x140034550
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x1400345bf
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400345b1
mov rax, rbx
lea r9, str.Windows_Server_2003_
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x1400345b1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x1400345b1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140034590
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1165f
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
cmp byte [rbp + 0xca], 1
je 0x140034a03
movzx eax, word [rsp + 0x50]
cmp ax, 6
jne 0x14003472a
movzx eax, byte [rbp + 0xc8]
test al, al
jns 0x1400346a1
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034636
add rax, 2
sub rcx, 1
jne 0x140034626
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140034a03
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400349c4
lea r8, str.Datacenter_Edition_for_Itanium_based_Systems
sub r8, rcx
test rbx, rbx
je 0x1400349c4
movzx eax, word [r8 + rcx]
test ax, ax
je 0x1400349c4
mov word [rcx], ax
add rcx, 2
dec rbx
sub rdx, 1
jne 0x140034667
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
jmp 0x140034a03
test al, 2
je 0x140034a03
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x1400346c1
add rax, 2
sub rcx, 1
jne 0x1400346b1
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140034a03
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400349c4
sub r12, rcx
nop dword [rax + rax]
test rbx, rbx
je 0x1400349c4
movzx eax, word [r12 + rcx]
test ax, ax
je 0x1400349c4
mov word [rcx], ax
add rcx, 2
dec rbx
sub rdx, 1
jne 0x1400346f0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
jmp 0x140034a03
cmp ax, 9
jne 0x1400348cc
movzx eax, byte [rbp + 0xc8]
mov ecx, 0x100
test al, al
jns 0x1400347cb
mov rax, rdi
nop dword [rax + rax]
cmp word [rax], 0
je 0x140034760
add rax, 2
sub rcx, 1
jne 0x140034750
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140034a03
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400349c4
lea r8, str.Datacenter_x64_Edition
sub r8, rcx
test rbx, rbx
je 0x1400349c4
movzx eax, word [rcx + r8]
test ax, ax
je 0x1400349c4
mov word [rcx], ax
add rcx, 2
dec rbx
sub rdx, 1
jne 0x140034791
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
jmp 0x140034a03
test al, 2
mov rax, rdi
je 0x140034851
cmp word [rax], 0
je 0x1400347e6
add rax, 2
sub rcx, 1
jne 0x1400347d6
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140034a03
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400349c4
lea r8, str.Enterprise_x64_Edition
sub r8, rcx
test rbx, rbx
je 0x1400349c4
movzx eax, word [rcx + r8]
test ax, ax
je 0x1400349c4
mov word [rcx], ax
add rcx, 2
dec rbx
sub rdx, 1
jne 0x140034817
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
jmp 0x140034a03
cmp word [rax], 0
je 0x140034861
add rax, 2
sub rcx, 1
jne 0x140034851
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140034a03
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400349c4
lea r8, str.Standard_x64_Edition
sub r8, rcx
test rbx, rbx
je 0x1400349c4
movzx eax, word [rcx + r8]
test ax, ax
je 0x1400349c4
mov word [rcx], ax
add rcx, 2
dec rbx
sub rdx, 1
jne 0x140034892
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
jmp 0x140034a03
movzx eax, word [rbp + 0xc8]
bt ax, 0xe
jae 0x140034961
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x1400348f6
add rax, 2
sub rcx, 1
jne 0x1400348e6
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140034a03
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400349c4
lea r8, str.Compute_Cluster_Edition
sub r8, rcx
test rbx, rbx
je 0x1400349c4
movzx eax, word [rcx + r8]
test ax, ax
je 0x1400349c4
mov word [rcx], ax
add rcx, 2
dec rbx
sub rdx, 1
jne 0x140034927
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
jmp 0x140034a03
mov byte [rbp + 0xc8], al
test al, al
jns 0x1400349d4
mov ecx, 0x100
mov rax, rdi
cmp word [rax], 0
je 0x140034983
add rax, 2
sub rcx, 1
jne 0x140034973
mov eax, 0x100
sub rax, rcx
test rcx, rcx
cmove rax, rsi
je 0x140034a03
mov edx, 0x100
sub rdx, rax
lea rcx, [rdi + rax*2]
je 0x1400349c4
sub r13, rcx
test rbx, rbx
je 0x1400349c4
movzx eax, word [rcx + r13]
test ax, ax
je 0x1400349c4
mov word [rcx], ax
add rcx, 2
dec rbx
sub rdx, 1
jne 0x1400349a5
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], si
jmp 0x140034a03
test al, 2
je 0x1400349e1
lea r8, str.Enterprise_Edition
jmp 0x1400349f6
bt ax, 0xa
lea r8, str.Web_Edition
jb 0x1400349f6
lea r8, str.Standard_Edition
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
cmp dword [rbp - 0x4c], 5
jne 0x140034b2a
mov eax, dword [rbp - 0x48]
lea rbx, str.Professional
cmp eax, 1
jne 0x140034a99
lea r8, str.Windows_XP
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1166c
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
mov eax, 0x200
test word [rbp + 0xc8], ax
lea r8, str.Home_Edition
cmove r8, rbx
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
cmp dword [rbp - 0x4c], 5
jne 0x140034b2a
mov eax, dword [rbp - 0x48]
test eax, eax
jne 0x140034b2a
lea r8, str.Windows_2000
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
mov qword [rsp + 0x30], r14
mov byte [rsp + 0x38], 1
mov edx, 0x1165e
lea rcx, [rbp - 0x80]
call fcn.1400214e0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.14004fb30
nop
lea rcx, [rbp - 0x80]
call fcn.140021670
nop
cmp byte [rbp + 0xca], 1
jne 0x140034af7
mov r8, rbx
jmp 0x140034b1d
movzx eax, byte [rbp + 0xc8]
test al, al
jns 0x140034b0b
lea r8, str.Datacenter_Server
jmp 0x140034b1d
test al, 2
lea r8, str.Advanced_Server
jne 0x140034b1d
lea r8, str.Server
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
lea rcx, [rbp - 0x3c]
mov rax, 0xffffffffffffffff
inc rax
cmp word [rcx + rax*2], 0
jne 0x140034b35
test rax, rax
je 0x140034b69
lea r8, [0x1402c1608]
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
lea r8, [rbp - 0x3c]
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
mov r9d, dword [rbp - 0x44]
lea r8, str.__build__d_
mov edx, 0x50
lea rcx, [rbp + 0xd0]
call fcn.140032ac0
lea r8, [rbp + 0xd0]
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
cmp dword [rbp - 0x4c], 6
jb 0x140034bcc
movzx eax, word [rsp + 0x50]
cmp ax, 9
jne 0x140034bb3
lea r8, str.__64_bit
jmp 0x140034bbf
test ax, ax
jne 0x140034bcc
lea r8, str.__32_bit
mov edx, 0x100
mov rcx, rdi
call fcn.140032a00
mov eax, 1
mov rcx, qword [rbp + 0x170]
xor rcx, rsp
call fcn.140215e10
lea r11, [rsp + 0x280]
mov rbx, qword [r11 + 0x30]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret