Function at 0x14003ab80
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.14022b5e0
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.14022f840
mov dword [rbp - 0x40], 0x11c
lea rcx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x14003ca37
xor r15d, r15d
cmp dword [rbp - 0x3c], 6
jb 0x14003ac89
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 0x14003ac89
lea r9, [rbp + 0xe0]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x44]
call fcn.140038480
test al, al
je 0x14003ac89
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
cmp dword [rbp - 0x3c], ecx
jne 0x14003ac7c
cmp dword [rbp - 0x38], eax
je 0x14003ac89
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 0x14003acb4
call rax
jmp 0x14003acba
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rbp - 0x30], 2
jne 0x14003ca37
cmp dword [rbp - 0x3c], 4
jbe 0x14003ca37
mov edx, 0x100
mov rcx, rbx
lea r8, str.Microsoft
sub r8, rbx
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x14003ad03
movzx eax, word [rcx + r8]
test ax, ax
je 0x14003ad03
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x14003ace0
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 0x14003ada9
mov edx, 0x11660
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x78]
call fcn.1400591f0
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003ae1f
cmp ax, 9
jne 0x14003ae1f
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11660
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
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 0x14003aeee
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003ae50
add rax, 2
sub rcx, 1
jne 0x14003ae40
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003aeb6
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003aea7
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Windows_10
sub r9, rcx
test rax, rax
je 0x14003aea7
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003aea7
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ae86
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x3c], 6
jne case.0x14003b5ad.5
cmp dword [rbp - 0x38], 0
jne 0x14003b080
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003afd0
cmp word [rax], 0
je 0x14003af27
add rax, 2
sub rcx, 1
jne 0x14003af17
test rcx, rcx
je 0x14003af36
mov eax, 0x100
sub rax, rcx
jmp 0x14003af39
mov rax, r15
test rcx, rcx
je 0x14003af90
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003af81
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Vista
sub r9, rcx
nop
test rax, rax
je 0x14003af81
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003af81
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003af60
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov sil, 1
jmp 0x14003b080
cmp word [rax], 0
je 0x14003afe0
add rax, 2
sub rcx, 1
jne 0x14003afd0
test rcx, rcx
je 0x14003afef
mov eax, 0x100
sub rax, rcx
jmp 0x14003aff2
mov rax, r15
test rcx, rcx
je 0x14003b048
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b039
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2008
sub r9, rcx
test rax, rax
je 0x14003b039
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b039
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b018
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x38], 1
jne 0x14003b208
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003b158
nop
cmp word [rax], 0
je 0x14003b0b0
add rax, 2
sub rcx, 1
jne 0x14003b0a0
test rcx, rcx
je 0x14003b0bf
mov eax, 0x100
sub rax, rcx
jmp 0x14003b0c2
mov rax, r15
test rcx, rcx
je 0x14003b118
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b109
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_7
sub r9, rcx
test rax, rax
je 0x14003b109
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b109
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b0e8
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov r14b, 1
jmp 0x14003b208
cmp word [rax], 0
je 0x14003b168
add rax, 2
sub rcx, 1
jne 0x14003b158
test rcx, rcx
je 0x14003b177
mov eax, 0x100
sub rax, rcx
jmp 0x14003b17a
mov rax, r15
test rcx, rcx
je 0x14003b1d0
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b1c1
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2008_R2
sub r9, rcx
test rax, rax
je 0x14003b1c1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b1c1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b1a0
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x38], 2
jne 0x14003b3c8
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003b318
cmp word [rax], 0
je 0x14003b237
add rax, 2
sub rcx, 1
jne 0x14003b227
test rcx, rcx
je 0x14003b246
mov eax, 0x100
sub rax, rcx
jmp 0x14003b249
mov rax, r15
test rcx, rcx
je 0x14003b2a0
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b291
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_8
sub r9, rcx
nop
test rax, rax
je 0x14003b291
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b291
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b270
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
mov dil, 1
jmp 0x14003b3c8
cmp word [rax], 0
je 0x14003b328
add rax, 2
sub rcx, 1
jne 0x14003b318
test rcx, rcx
je 0x14003b337
mov eax, 0x100
sub rax, rcx
jmp 0x14003b33a
mov rax, r15
test rcx, rcx
je 0x14003b390
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b381
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2012
sub r9, rcx
test rax, rax
je 0x14003b381
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b381
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b360
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp dword [rbp - 0x38], 3
jne 0x14003b550
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003b4a0
cmp word [rax], 0
je 0x14003b3f7
add rax, 2
sub rcx, 1
jne 0x14003b3e7
test rcx, rcx
je 0x14003b406
mov eax, 0x100
sub rax, rcx
jmp 0x14003b409
mov rax, r15
test rcx, rcx
je 0x14003b460
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b451
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_8.1
sub r9, rcx
nop
test rax, rax
je 0x14003b451
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b451
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b430
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003b550
cmp word [rax], 0
je 0x14003b4b0
add rax, 2
sub rcx, 1
jne 0x14003b4a0
test rcx, rcx
je 0x14003b4bf
mov eax, 0x100
sub rax, rcx
jmp 0x14003b4c2
mov rax, r15
test rcx, rcx
je 0x14003b518
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b509
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2012_R2
sub r9, rcx
test rax, rax
je 0x14003b509
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b509
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b4e8
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
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.0x14003b5ad.5
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x3cab8]
mov ecx, dword [rdx + rax*4 + 0x3ca6c]
add rcx, rdx
jmp rcx
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b5c7
add rax, 2
sub rcx, 1
jne 0x14003b5b7
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003b630
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003b621
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Professional_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003b621
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b621
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b600
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test r14b, r14b
je 0x14003b672
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11738
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
test dil, dil
je case.0x14003b5ad.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11746
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b708
add rax, 2
sub rcx, 1
jne 0x14003b6f8
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003b770
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003b761
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Ultimate_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003b761
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b761
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b740
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003b7b2
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166b
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
test r14b, r14b
je case.0x14003b5ad.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11735
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b810
add rax, 2
sub rcx, 1
jne 0x14003b800
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003b876
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003b867
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Home_Premium_Edition
sub r9, rcx
test rax, rax
je 0x14003b867
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b867
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b846
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003b8b8
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166a
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
test r14b, r14b
je case.0x14003b5ad.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11739
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b916
add rax, 2
sub rcx, 1
jne 0x14003b906
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003b980
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003b971
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Home_Basic_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003b971
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b971
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b950
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003b9c2
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11669
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
test r14b, r14b
je case.0x14003b5ad.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173a
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003ba20
add rax, 2
sub rcx, 1
jne 0x14003ba10
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003ba86
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003ba77
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition
sub r9, rcx
test rax, rax
je 0x14003ba77
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003ba77
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ba56
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003bac8
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11668
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
test r14b, r14b
je 0x14003bb0a
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11737
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
test dil, dil
je case.0x14003b5ad.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11747
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bba0
add rax, 2
sub rcx, 1
jne 0x14003bb90
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003bc06
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003bbf7
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Business_Edition
sub r9, rcx
test rax, rax
je 0x14003bbf7
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003bbf7
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bbd6
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je case.0x14003b5ad.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11667
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bc64
add rax, 2
sub rcx, 1
jne 0x14003bc54
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003bcd0
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003bcc1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Starter_Edition
sub r9, rcx
nop word [rax + rax]
test rax, rax
je 0x14003bcc1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003bcc1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bca0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test r14b, r14b
je case.0x14003b5ad.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173b
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp case.0x14003b5ad.5
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003bd30
add rax, 2
sub rcx, 1
jne 0x14003bd20
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Cluster_Server_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003c2d1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bd70
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bdb6
add rax, 2
sub rcx, 1
jne 0x14003bda6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Datacenter_Edition
sub r9, rcx
test rax, rax
je 0x14003c2d1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bdf4
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003be40
add rax, 2
sub rcx, 1
jne 0x14003be30
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Datacenter_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x14003c2d1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003be80
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bec6
add rax, 2
sub rcx, 1
jne 0x14003beb6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition
sub r9, rcx
test rax, rax
je 0x14003c2d1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bf04
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003bf50
add rax, 2
sub rcx, 1
jne 0x14003bf40
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x14003c2d1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003bf90
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003bfd6
add rax, 2
sub rcx, 1
jne 0x14003bfc6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition_for_Itanium_based_Systems
sub r9, rcx
test rax, rax
je 0x14003c2d1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c014
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003c060
add rax, 2
sub rcx, 1
jne 0x14003c050
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Small_Business_Server
sub r9, rcx
nop
test rax, rax
je 0x14003c2d1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c0a0
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c0e6
add rax, 2
sub rcx, 1
jne 0x14003c0d6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Small_Business_Server_Premium_Edition
sub r9, rcx
test rax, rax
je 0x14003c2d1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c124
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003c170
add rax, 2
sub rcx, 1
jne 0x14003c160
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Standard_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003c2d1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c1b0
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c1f6
add rax, 2
sub rcx, 1
jne 0x14003c1e6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Standard_Edition__core_installation_
sub r9, rcx
test rax, rax
je 0x14003c2d1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c234
jmp 0x14003c2d1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c277
add rax, 2
sub rcx, 1
jne 0x14003c267
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003b5ad.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003c2d1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Web_Server_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003c2d1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c2d1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c2b0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
cmp dword [rbp - 0x3c], 5
jne 0x14003c992
mov eax, dword [rbp - 0x38]
cmp eax, 2
jne 0x14003c86e
lea ecx, [rax + 0x57]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x14003c3c5
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003c320
add rax, 2
sub rcx, 1
jne 0x14003c310
test rcx, rcx
je 0x14003c32f
mov eax, 0x100
sub rax, rcx
jmp 0x14003c332
mov rax, r15
test rcx, rcx
je 0x14003c388
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c379
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2003_R2_
sub r9, rcx
test rax, rax
je 0x14003c379
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c379
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c358
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c700
mov ecx, 0x2000
movzx eax, word [rbp + 0xd8]
cmp ax, cx
jne 0x14003c49d
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c3f2
add rax, 2
sub rcx, 1
jne 0x14003c3e2
test rcx, rcx
je 0x14003c401
mov eax, 0x100
sub rax, rcx
jmp 0x14003c404
mov rax, r15
test rcx, rcx
je 0x14003c460
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c451
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Storage_Server_2003
sub r9, rcx
nop word [rax + rax]
test rax, rax
je 0x14003c451
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c451
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c430
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c700
mov ecx, 0x8000
cmp ax, cx
jne 0x14003c56d
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c4c3
add rax, 2
sub rcx, 1
jne 0x14003c4b3
test rcx, rcx
je 0x14003c4d2
mov eax, 0x100
sub rax, rcx
jmp 0x14003c4d5
mov rax, r15
test rcx, rcx
je 0x14003c530
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c521
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Home_Server
sub r9, rcx
nop dword [rax + rax]
test rax, rax
je 0x14003c521
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c521
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c500
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c700
cmp byte [rbp + 0xda], 1
jne 0x14003c645
cmp word [rsp + 0x50], 9
jne 0x14003c645
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003c5a0
add rax, 2
sub rcx, 1
jne 0x14003c590
test rcx, rcx
je 0x14003c5af
mov eax, 0x100
sub rax, rcx
jmp 0x14003c5b2
mov rax, r15
test rcx, rcx
je 0x14003c608
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c5f9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_XP_Professional_x64_Edition
sub r9, rcx
test rax, rax
je 0x14003c5f9
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003c5f9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c5d8
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
jmp 0x14003c700
mov ecx, 0x100
mov rax, rbx
nop dword [rax]
cmp word [rax], 0
je 0x14003c660
add rax, 2
sub rcx, 1
jne 0x14003c650
test rcx, rcx
je 0x14003c66f
mov eax, 0x100
sub rax, rcx
jmp 0x14003c672
mov rax, r15
test rcx, rcx
je 0x14003c6c8
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c6b9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2003_
sub r9, rcx
test rax, rax
je 0x14003c6b9
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c6b9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c698
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.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp byte [rbp + 0xda], 1
je 0x14003c861
mov rax, qword [rsp + 0x50]
cmp ax, 6
jne 0x14003c7c9
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003c7b5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003c743
add rax, 2
sub rcx, 1
jne 0x14003c733
test rcx, rcx
je 0x14003c752
mov eax, 0x100
sub rax, rcx
jmp 0x14003c755
mov rax, r15
test rcx, rcx
je 0x14003c861
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003c7a1
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Datacenter_Edition_for_Itanium_based_Systems
sub r9, rcx
nop
test rax, rax
je 0x14003c7a1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003c7a1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003c780
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
jmp 0x14003c861
test al, 2
je 0x14003c861
lea r8, str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x14003c854
cmp ax, 9
jne 0x14003c801
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003c7e3
lea r8, str.Datacenter_x64_Edition
jmp 0x14003c854
mov edx, 0x100
mov rcx, rbx
test al, 2
je 0x14003c7f8
lea r8, str.Enterprise_x64_Edition
jmp 0x14003c85c
lea r8, str.Standard_x64_Edition
jmp 0x14003c85c
movzx ecx, word [rbp + 0xd8]
mov eax, 0x4000
test ax, cx
je 0x14003c81b
lea r8, str.Compute_Cluster_Edition
jmp 0x14003c854
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003c82f
lea r8, str.Datacenter_Edition
jmp 0x14003c854
test al, 2
je 0x14003c83c
lea r8, str.Enterprise_Edition
jmp 0x14003c854
mov eax, 0x400
test ax, cx
lea r8, str.Web_Edition
jne 0x14003c854
lea r8, str.Standard_Edition
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
cmp dword [rbp - 0x3c], 5
jne 0x14003c992
mov eax, dword [rbp - 0x38]
cmp eax, 1
jne 0x14003c8f9
lea r8, str.Windows_XP
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166c
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
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 0x14003c8e7
lea r8, str.Professional
call fcn.14003a9e0
cmp dword [rbp - 0x3c], 5
jne 0x14003c992
mov eax, dword [rbp - 0x38]
test eax, eax
jne 0x14003c992
lea r8, str.Windows_2000
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1165e
lea rcx, [rbp - 0x78]
call fcn.140023cf0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.1400591f0
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009bb8
nop
cmp byte [rbp + 0xda], 1
jne 0x14003c95f
lea r8, str.Professional
jmp 0x14003c985
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003c973
lea r8, str.Datacenter_Server
jmp 0x14003c985
test al, 2
lea r8, str.Advanced_Server
jne 0x14003c985
lea r8, str.Server
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
lea rcx, [rbp - 0x2c]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x14003c9a0
test rax, rax
je 0x14003c9d4
lea r8, [0x1402ed2cc]
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
lea r8, [rbp - 0x2c]
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
mov r9d, dword [rbp - 0x34]
lea r8, str.__build__d_
mov edx, 0x50
lea rcx, [rbp + 0xe0]
call fcn.14003aac0
lea r8, [rbp + 0xe0]
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
cmp dword [rbp - 0x3c], 6
jb 0x14003ca37
mov rax, qword [rsp + 0x50]
cmp ax, 9
jne 0x14003ca1e
lea r8, str.__64_bit
jmp 0x14003ca2a
test ax, ax
jne 0x14003ca37
lea r8, str.__32_bit
mov edx, 0x100
mov rcx, rbx
call fcn.14003a9e0
mov eax, 1
mov rcx, qword [rbp + 0x1530]
xor rcx, rsp
call fcn.14022aa20
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