Function at 0x14003ad70
Capabilities:
Check os version
Get common file path
Get system information on windows

Disassembly:
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x1540]
mov eax, 0x1640
call fcn.14022bce0
sub rsp, rax
mov qword [rbp - 0x80], 0xfffffffffffffffe
mov qword [rsp + 0x1670], rbx
mov qword [rsp + 0x1680], rsi
mov qword [rsp + 0x1688], rdi
mov rax, qword [0x14035d8c0]
xor rax, rsp
mov qword [rbp + 0x1530], rax
mov rbx, rdx
xor eax, eax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
xor edx, edx
mov r8d, 0x11c
lea rcx, [rbp - 0x40]
call fcn.14022ff40
mov dword [rbp - 0x40], 0x11c
lea rcx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x14003cc27
xor r15d, r15d
cmp dword [rbp - 0x3c], 6
jb 0x14003ae79
mov dword [rsp + 0x44], r15d
mov dword [rsp + 0x40], r15d
mov dword [rsp + 0x48], r15d
mov edx, 0x1450
lea rcx, [rbp + 0xe0]
call qword [sym.imp.KERNEL32.dll_GetSystemDirectoryW]
test eax, eax
je 0x14003ae79
lea r9, [rbp + 0xe0]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x44]
call fcn.140038670
test al, al
je 0x14003ae79
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
cmp dword [rbp - 0x3c], ecx
jne 0x14003ae6c
cmp dword [rbp - 0x38], eax
je 0x14003ae79
mov dword [rbp - 0x3c], ecx
mov dword [rbp - 0x38], eax
mov eax, dword [rsp + 0x48]
mov dword [rbp - 0x34], 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 0x14003aea4
call rax
jmp 0x14003aeaa
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rbp - 0x30], 2
jne 0x14003cc27
cmp dword [rbp - 0x3c], 4
jbe 0x14003cc27
mov edx, 0x100
mov rcx, rbx
lea r8, str.Microsoft
sub r8, rbx
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x14003aef3
movzx eax, word [rcx + r8]
test ax, ax
je 0x14003aef3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003aed0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
lea r12, vtable.srl::Exists.0
lea r13, vtable.srl::GroupID.0
mov rax, qword [rsp + 0x50]
cmp ax, 6
jne 0x14003af99
mov edx, 0x11660
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x78]
call fcn.1400595d0
nop
lea rax, vtable.srl::Value.0
mov qword [rsp + 0x30], rax
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x116c0
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003b00f
cmp ax, 9
jne 0x14003b00f
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11660
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x116c1
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
xor sil, sil
xor r14b, r14b
xor dil, dil
cmp dword [rbp - 0x3c], 0xa
jne 0x14003b0de
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003b040
add rax, 2
sub rcx, 1
jne 0x14003b030
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003b0a6
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003b097
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Windows_10
sub r9, rcx
test rax, rax
je 0x14003b097
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b097
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b076
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1175c
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x3c], 6
jne case.0x14003b79d.5
cmp dword [rbp - 0x38], 0
jne 0x14003b270
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003b1c0
cmp word [rax], 0
je 0x14003b117
add rax, 2
sub rcx, 1
jne 0x14003b107
test rcx, rcx
je 0x14003b126
mov eax, 0x100
sub rax, rcx
jmp 0x14003b129
mov rax, r15
test rcx, rcx
je 0x14003b180
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b171
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Vista
sub r9, rcx
nop
test rax, rax
je 0x14003b171
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b171
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b150
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11653
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov sil, 1
jmp 0x14003b270
cmp word [rax], 0
je 0x14003b1d0
add rax, 2
sub rcx, 1
jne 0x14003b1c0
test rcx, rcx
je 0x14003b1df
mov eax, 0x100
sub rax, rcx
jmp 0x14003b1e2
mov rax, r15
test rcx, rcx
je 0x14003b238
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b229
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2008
sub r9, rcx
test rax, rax
je 0x14003b229
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b229
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b208
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11729
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x38], 1
jne 0x14003b3f8
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003b348
nop
cmp word [rax], 0
je 0x14003b2a0
add rax, 2
sub rcx, 1
jne 0x14003b290
test rcx, rcx
je 0x14003b2af
mov eax, 0x100
sub rax, rcx
jmp 0x14003b2b2
mov rax, r15
test rcx, rcx
je 0x14003b308
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b2f9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_7
sub r9, rcx
test rax, rax
je 0x14003b2f9
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b2f9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b2d8
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x116b6
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov r14b, 1
jmp 0x14003b3f8
cmp word [rax], 0
je 0x14003b358
add rax, 2
sub rcx, 1
jne 0x14003b348
test rcx, rcx
je 0x14003b367
mov eax, 0x100
sub rax, rcx
jmp 0x14003b36a
mov rax, r15
test rcx, rcx
je 0x14003b3c0
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b3b1
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2008_R2
sub r9, rcx
test rax, rax
je 0x14003b3b1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b3b1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b390
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1172a
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x38], 2
jne 0x14003b5b8
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003b508
cmp word [rax], 0
je 0x14003b427
add rax, 2
sub rcx, 1
jne 0x14003b417
test rcx, rcx
je 0x14003b436
mov eax, 0x100
sub rax, rcx
jmp 0x14003b439
mov rax, r15
test rcx, rcx
je 0x14003b490
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b481
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_8
sub r9, rcx
nop
test rax, rax
je 0x14003b481
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b481
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b460
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173c
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11745
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov dil, 1
jmp 0x14003b5b8
cmp word [rax], 0
je 0x14003b518
add rax, 2
sub rcx, 1
jne 0x14003b508
test rcx, rcx
je 0x14003b527
mov eax, 0x100
sub rax, rcx
jmp 0x14003b52a
mov rax, r15
test rcx, rcx
je 0x14003b580
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b571
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2012
sub r9, rcx
test rax, rax
je 0x14003b571
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b571
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b550
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173d
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x38], 3
jne 0x14003b740
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003b690
cmp word [rax], 0
je 0x14003b5e7
add rax, 2
sub rcx, 1
jne 0x14003b5d7
test rcx, rcx
je 0x14003b5f6
mov eax, 0x100
sub rax, rcx
jmp 0x14003b5f9
mov rax, r15
test rcx, rcx
je 0x14003b650
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b641
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_8.1
sub r9, rcx
nop
test rax, rax
je 0x14003b641
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b641
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b620
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1174e
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003b740
cmp word [rax], 0
je 0x14003b6a0
add rax, 2
sub rcx, 1
jne 0x14003b690
test rcx, rcx
je 0x14003b6af
mov eax, 0x100
sub rax, rcx
jmp 0x14003b6b2
mov rax, r15
test rcx, rcx
je 0x14003b708
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b6f9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2012_R2
sub r9, rcx
test rax, rax
je 0x14003b6f9
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b6f9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b6d8
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1174f
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
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 - 0x38]
mov ecx, dword [rbp - 0x3c]
call rax
mov eax, dword [rsp + 0x4c]
dec eax
cmp eax, 0x2f
ja case.0x14003b79d.5
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x3cca8]
mov ecx, dword [rdx + rax*4 + 0x3cc5c]
add rcx, rdx
jmp rcx
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b7b7
add rax, 2
sub rcx, 1
jne 0x14003b7a7
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003b820
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003b811
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Professional_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003b811
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b811
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b7f0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test r14b, r14b
je 0x14003b862
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11738
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
test dil, dil
je case.0x14003b79d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11746
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 0
mov edx, 0x11745
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b8f8
add rax, 2
sub rcx, 1
jne 0x14003b8e8
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003b960
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003b951
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Ultimate_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003b951
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b951
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b930
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003b9a2
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166b
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
test r14b, r14b
je case.0x14003b79d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11735
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003ba00
add rax, 2
sub rcx, 1
jne 0x14003b9f0
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003ba66
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003ba57
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Home_Premium_Edition
sub r9, rcx
test rax, rax
je 0x14003ba57
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003ba57
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ba36
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003baa8
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166a
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
test r14b, r14b
je case.0x14003b79d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11739
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bb06
add rax, 2
sub rcx, 1
jne 0x14003baf6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003bb70
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003bb61
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Home_Basic_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003bb61
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003bb61
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bb40
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003bbb2
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11669
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
test r14b, r14b
je case.0x14003b79d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173a
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bc10
add rax, 2
sub rcx, 1
jne 0x14003bc00
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003bc76
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003bc67
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition
sub r9, rcx
test rax, rax
je 0x14003bc67
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003bc67
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bc46
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003bcb8
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11668
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
test r14b, r14b
je 0x14003bcfa
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11737
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
test dil, dil
je case.0x14003b79d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11747
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 0
mov edx, 0x11745
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bd90
add rax, 2
sub rcx, 1
jne 0x14003bd80
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003bdf6
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003bde7
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Business_Edition
sub r9, rcx
test rax, rax
je 0x14003bde7
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003bde7
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bdc6
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je case.0x14003b79d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11667
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003be54
add rax, 2
sub rcx, 1
jne 0x14003be44
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003bec0
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003beb1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Starter_Edition
sub r9, rcx
nop word [rax + rax]
test rax, rax
je 0x14003beb1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003beb1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003be90
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test r14b, r14b
je case.0x14003b79d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173b
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b79d.5
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003bf20
add rax, 2
sub rcx, 1
jne 0x14003bf10
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Cluster_Server_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003c4c1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bf60
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bfa6
add rax, 2
sub rcx, 1
jne 0x14003bf96
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Datacenter_Edition
sub r9, rcx
test rax, rax
je 0x14003c4c1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bfe4
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003c030
add rax, 2
sub rcx, 1
jne 0x14003c020
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Datacenter_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x14003c4c1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c070
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c0b6
add rax, 2
sub rcx, 1
jne 0x14003c0a6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition
sub r9, rcx
test rax, rax
je 0x14003c4c1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c0f4
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003c140
add rax, 2
sub rcx, 1
jne 0x14003c130
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x14003c4c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c180
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c1c6
add rax, 2
sub rcx, 1
jne 0x14003c1b6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition_for_Itanium_based_Systems
sub r9, rcx
test rax, rax
je 0x14003c4c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c204
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003c250
add rax, 2
sub rcx, 1
jne 0x14003c240
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Small_Business_Server
sub r9, rcx
nop
test rax, rax
je 0x14003c4c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c290
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c2d6
add rax, 2
sub rcx, 1
jne 0x14003c2c6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Small_Business_Server_Premium_Edition
sub r9, rcx
test rax, rax
je 0x14003c4c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c314
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003c360
add rax, 2
sub rcx, 1
jne 0x14003c350
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Standard_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003c4c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c3a0
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c3e6
add rax, 2
sub rcx, 1
jne 0x14003c3d6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Standard_Edition__core_installation_
sub r9, rcx
test rax, rax
je 0x14003c4c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c424
jmp 0x14003c4c1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c467
add rax, 2
sub rcx, 1
jne 0x14003c457
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b79d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c4c1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Web_Server_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003c4c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c4c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c4a0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
cmp dword [rbp - 0x3c], 5
jne 0x14003cb82
mov eax, dword [rbp - 0x38]
cmp eax, 2
jne 0x14003ca5e
lea ecx, [rax + 0x57]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x14003c5b5
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003c510
add rax, 2
sub rcx, 1
jne 0x14003c500
test rcx, rcx
je 0x14003c51f
mov eax, 0x100
sub rax, rcx
jmp 0x14003c522
mov rax, r15
test rcx, rcx
je 0x14003c578
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c569
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2003_R2_
sub r9, rcx
test rax, rax
je 0x14003c569
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c569
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c548
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1165f
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c8f0
mov ecx, 0x2000
movzx eax, word [rbp + 0xd8]
cmp ax, cx
jne 0x14003c68d
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c5e2
add rax, 2
sub rcx, 1
jne 0x14003c5d2
test rcx, rcx
je 0x14003c5f1
mov eax, 0x100
sub rax, rcx
jmp 0x14003c5f4
mov rax, r15
test rcx, rcx
je 0x14003c650
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c641
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Storage_Server_2003
sub r9, rcx
nop word [rax + rax]
test rax, rax
je 0x14003c641
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c641
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c620
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1165f
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c8f0
mov ecx, 0x8000
cmp ax, cx
jne 0x14003c75d
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c6b3
add rax, 2
sub rcx, 1
jne 0x14003c6a3
test rcx, rcx
je 0x14003c6c2
mov eax, 0x100
sub rax, rcx
jmp 0x14003c6c5
mov rax, r15
test rcx, rcx
je 0x14003c720
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c711
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Home_Server
sub r9, rcx
nop dword [rax + rax]
test rax, rax
je 0x14003c711
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c711
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c6f0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11744
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c8f0
cmp byte [rbp + 0xda], 1
jne 0x14003c835
cmp word [rsp + 0x50], 9
jne 0x14003c835
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003c790
add rax, 2
sub rcx, 1
jne 0x14003c780
test rcx, rcx
je 0x14003c79f
mov eax, 0x100
sub rax, rcx
jmp 0x14003c7a2
mov rax, r15
test rcx, rcx
je 0x14003c7f8
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c7e9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_XP_Professional_x64_Edition
sub r9, rcx
test rax, rax
je 0x14003c7e9
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c7e9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c7c8
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166c
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c8f0
mov ecx, 0x100
mov rax, rbx
nop dword [rax]
cmp word [rax], 0
je 0x14003c850
add rax, 2
sub rcx, 1
jne 0x14003c840
test rcx, rcx
je 0x14003c85f
mov eax, 0x100
sub rax, rcx
jmp 0x14003c862
mov rax, r15
test rcx, rcx
je 0x14003c8b8
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c8a9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2003_
sub r9, rcx
test rax, rax
je 0x14003c8a9
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c8a9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c888
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1165f
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp byte [rbp + 0xda], 1
je 0x14003ca51
mov rax, qword [rsp + 0x50]
cmp ax, 6
jne 0x14003c9b9
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003c9a5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c933
add rax, 2
sub rcx, 1
jne 0x14003c923
test rcx, rcx
je 0x14003c942
mov eax, 0x100
sub rax, rcx
jmp 0x14003c945
mov rax, r15
test rcx, rcx
je 0x14003ca51
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c991
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Datacenter_Edition_for_Itanium_based_Systems
sub r9, rcx
nop
test rax, rax
je 0x14003c991
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c991
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c970
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
jmp 0x14003ca51
test al, 2
je 0x14003ca51
lea r8, str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x14003ca44
cmp ax, 9
jne 0x14003c9f1
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003c9d3
lea r8, str.Datacenter_x64_Edition
jmp 0x14003ca44
mov edx, 0x100
mov rcx, rbx
test al, 2
je 0x14003c9e8
lea r8, str.Enterprise_x64_Edition
jmp 0x14003ca4c
lea r8, str.Standard_x64_Edition
jmp 0x14003ca4c
movzx ecx, word [rbp + 0xd8]
mov eax, 0x4000
test ax, cx
je 0x14003ca0b
lea r8, str.Compute_Cluster_Edition
jmp 0x14003ca44
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003ca1f
lea r8, str.Datacenter_Edition
jmp 0x14003ca44
test al, 2
je 0x14003ca2c
lea r8, str.Enterprise_Edition
jmp 0x14003ca44
mov eax, 0x400
test ax, cx
lea r8, str.Web_Edition
jne 0x14003ca44
lea r8, str.Standard_Edition
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
cmp dword [rbp - 0x3c], 5
jne 0x14003cb82
mov eax, dword [rbp - 0x38]
cmp eax, 1
jne 0x14003cae9
lea r8, str.Windows_XP
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166c
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov eax, 0x200
mov edx, 0x100
mov rcx, rbx
test word [rbp + 0xd8], ax
lea r8, str.Home_Edition
jne 0x14003cad7
lea r8, str.Professional
call fcn.14003abd0
cmp dword [rbp - 0x3c], 5
jne 0x14003cb82
mov eax, dword [rbp - 0x38]
test eax, eax
jne 0x14003cb82
lea r8, str.Windows_2000
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1165e
lea rcx, [rbp - 0x78]
call fcn.140023d80
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400595d0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp byte [rbp + 0xda], 1
jne 0x14003cb4f
lea r8, str.Professional
jmp 0x14003cb75
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003cb63
lea r8, str.Datacenter_Server
jmp 0x14003cb75
test al, 2
lea r8, str.Advanced_Server
jne 0x14003cb75
lea r8, str.Server
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
lea rcx, [rbp - 0x2c]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x14003cb90
test rax, rax
je 0x14003cbc4
lea r8, [0x1402ed2cc]
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
lea r8, [rbp - 0x2c]
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
mov r9d, dword [rbp - 0x34]
lea r8, str.__build__d_
mov edx, 0x50
lea rcx, [rbp + 0xe0]
call fcn.14003acb0
lea r8, [rbp + 0xe0]
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
cmp dword [rbp - 0x3c], 6
jb 0x14003cc27
mov rax, qword [rsp + 0x50]
cmp ax, 9
jne 0x14003cc0e
lea r8, str.__64_bit
jmp 0x14003cc1a
test ax, ax
jne 0x14003cc27
lea r8, str.__32_bit
mov edx, 0x100
mov rcx, rbx
call fcn.14003abd0
mov eax, 1
mov rcx, qword [rbp + 0x1530]
xor rcx, rsp
call fcn.14022b120
lea r11, [rsp + 0x1640]
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