Function at 0x140039850
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.14022a310
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 [0x14035b8c0]
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.14022e570
mov dword [rbp - 0x40], 0x11c
lea rcx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
test eax, eax
je 0x14003b707
xor r15d, r15d
cmp dword [rbp - 0x3c], 6
jb 0x140039959
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 0x140039959
lea r9, [rbp + 0xe0]
lea r8, [rsp + 0x48]
lea rdx, [rsp + 0x40]
lea rcx, [rsp + 0x44]
call fcn.140037150
test al, al
je 0x140039959
mov eax, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
cmp dword [rbp - 0x3c], ecx
jne 0x14003994c
cmp dword [rbp - 0x38], eax
je 0x140039959
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 0x140039984
call rax
jmp 0x14003998a
call qword [sym.imp.KERNEL32.dll_GetSystemInfo]
cmp dword [rbp - 0x30], 2
jne 0x14003b707
cmp dword [rbp - 0x3c], 4
jbe 0x14003b707
mov edx, 0x100
mov rcx, rbx
lea r8, str.Microsoft
sub r8, rbx
lea rax, [rdx + 0x7ffffefe]
test rax, rax
je 0x1400399d3
movzx eax, word [rcx + r8]
test ax, ax
je 0x1400399d3
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1400399b0
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 0x140039a79
mov edx, 0x11660
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
xor r9d, r9d
lea r8, [rsp + 0x30]
lea rdx, [rbp - 0x78]
call fcn.140058400
nop
lea rax, vtable.srl::Value.0
mov qword [rsp + 0x30], rax
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x116c0
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp 0x140039aef
cmp ax, 9
jne 0x140039aef
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11660
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x116c1
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
xor sil, sil
xor r14b, r14b
xor dil, dil
cmp dword [rbp - 0x3c], 0xa
jne 0x140039bbe
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x140039b20
add rax, 2
sub rcx, 1
jne 0x140039b10
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x140039b86
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x140039b77
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Windows_10
sub r9, rcx
test rax, rax
je 0x140039b77
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140039b77
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140039b56
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
cmp dword [rbp - 0x3c], 6
jne case.0x14003a27d.5
cmp dword [rbp - 0x38], 0
jne 0x140039d50
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x140039ca0
cmp word [rax], 0
je 0x140039bf7
add rax, 2
sub rcx, 1
jne 0x140039be7
test rcx, rcx
je 0x140039c06
mov eax, 0x100
sub rax, rcx
jmp 0x140039c09
mov rax, r15
test rcx, rcx
je 0x140039c60
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x140039c51
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Vista
sub r9, rcx
nop
test rax, rax
je 0x140039c51
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140039c51
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140039c30
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov sil, 1
jmp 0x140039d50
cmp word [rax], 0
je 0x140039cb0
add rax, 2
sub rcx, 1
jne 0x140039ca0
test rcx, rcx
je 0x140039cbf
mov eax, 0x100
sub rax, rcx
jmp 0x140039cc2
mov rax, r15
test rcx, rcx
je 0x140039d18
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x140039d09
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2008
sub r9, rcx
test rax, rax
je 0x140039d09
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140039d09
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140039ce8
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
cmp dword [rbp - 0x38], 1
jne 0x140039ed8
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x140039e28
nop
cmp word [rax], 0
je 0x140039d80
add rax, 2
sub rcx, 1
jne 0x140039d70
test rcx, rcx
je 0x140039d8f
mov eax, 0x100
sub rax, rcx
jmp 0x140039d92
mov rax, r15
test rcx, rcx
je 0x140039de8
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x140039dd9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_7
sub r9, rcx
test rax, rax
je 0x140039dd9
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140039dd9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140039db8
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov r14b, 1
jmp 0x140039ed8
cmp word [rax], 0
je 0x140039e38
add rax, 2
sub rcx, 1
jne 0x140039e28
test rcx, rcx
je 0x140039e47
mov eax, 0x100
sub rax, rcx
jmp 0x140039e4a
mov rax, r15
test rcx, rcx
je 0x140039ea0
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x140039e91
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2008_R2
sub r9, rcx
test rax, rax
je 0x140039e91
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x140039e91
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140039e70
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
cmp dword [rbp - 0x38], 2
jne 0x14003a098
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x140039fe8
cmp word [rax], 0
je 0x140039f07
add rax, 2
sub rcx, 1
jne 0x140039ef7
test rcx, rcx
je 0x140039f16
mov eax, 0x100
sub rax, rcx
jmp 0x140039f19
mov rax, r15
test rcx, rcx
je 0x140039f70
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x140039f61
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_8
sub r9, rcx
nop
test rax, rax
je 0x140039f61
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x140039f61
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x140039f40
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11745
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov dil, 1
jmp 0x14003a098
cmp word [rax], 0
je 0x140039ff8
add rax, 2
sub rcx, 1
jne 0x140039fe8
test rcx, rcx
je 0x14003a007
mov eax, 0x100
sub rax, rcx
jmp 0x14003a00a
mov rax, r15
test rcx, rcx
je 0x14003a060
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003a051
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2012
sub r9, rcx
test rax, rax
je 0x14003a051
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a051
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a030
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
cmp dword [rbp - 0x38], 3
jne 0x14003a220
mov ecx, 0x100
mov rax, rbx
cmp byte [rbp + 0xda], 1
jne 0x14003a170
cmp word [rax], 0
je 0x14003a0c7
add rax, 2
sub rcx, 1
jne 0x14003a0b7
test rcx, rcx
je 0x14003a0d6
mov eax, 0x100
sub rax, rcx
jmp 0x14003a0d9
mov rax, r15
test rcx, rcx
je 0x14003a130
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003a121
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_8.1
sub r9, rcx
nop
test rax, rax
je 0x14003a121
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a121
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a100
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp 0x14003a220
cmp word [rax], 0
je 0x14003a180
add rax, 2
sub rcx, 1
jne 0x14003a170
test rcx, rcx
je 0x14003a18f
mov eax, 0x100
sub rax, rcx
jmp 0x14003a192
mov rax, r15
test rcx, rcx
je 0x14003a1e8
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003a1d9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2012_R2
sub r9, rcx
test rax, rax
je 0x14003a1d9
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a1d9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a1b8
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
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.0x14003a27d.5
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0x3b788]
mov ecx, dword [rdx + rax*4 + 0x3b73c]
add rcx, rdx
jmp rcx
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003a297
add rax, 2
sub rcx, 1
jne 0x14003a287
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003a300
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003a2f1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Professional_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003a2f1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a2f1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a2d0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test r14b, r14b
je 0x14003a342
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11738
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
test dil, dil
je case.0x14003a27d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11746
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 0
mov edx, 0x11745
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003a3d8
add rax, 2
sub rcx, 1
jne 0x14003a3c8
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003a440
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003a431
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Ultimate_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003a431
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a431
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a410
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003a482
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166b
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
test r14b, r14b
je case.0x14003a27d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11735
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003a4e0
add rax, 2
sub rcx, 1
jne 0x14003a4d0
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003a546
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003a537
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Home_Premium_Edition
sub r9, rcx
test rax, rax
je 0x14003a537
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a537
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a516
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003a588
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166a
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
test r14b, r14b
je case.0x14003a27d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11739
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003a5e6
add rax, 2
sub rcx, 1
jne 0x14003a5d6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003a650
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003a641
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Home_Basic_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003a641
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a641
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a620
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003a692
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11669
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
test r14b, r14b
je case.0x14003a27d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173a
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003a6f0
add rax, 2
sub rcx, 1
jne 0x14003a6e0
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003a756
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003a747
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition
sub r9, rcx
test rax, rax
je 0x14003a747
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a747
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a726
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je 0x14003a798
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11668
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
test r14b, r14b
je 0x14003a7da
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11737
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
test dil, dil
je case.0x14003a27d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11747
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 0
mov edx, 0x11745
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003a870
add rax, 2
sub rcx, 1
jne 0x14003a860
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003a8d6
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003a8c7
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Business_Edition
sub r9, rcx
test rax, rax
je 0x14003a8c7
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a8c7
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a8a6
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test sil, sil
je case.0x14003a27d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x11667
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003a934
add rax, 2
sub rcx, 1
jne 0x14003a924
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je 0x14003a9a0
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003a991
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Starter_Edition
sub r9, rcx
nop word [rax + rax]
test rax, rax
je 0x14003a991
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003a991
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003a970
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
test r14b, r14b
je case.0x14003a27d.5
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1173b
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp case.0x14003a27d.5
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003aa00
add rax, 2
sub rcx, 1
jne 0x14003a9f0
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Cluster_Server_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003afa1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003aa40
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003aa86
add rax, 2
sub rcx, 1
jne 0x14003aa76
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Datacenter_Edition
sub r9, rcx
test rax, rax
je 0x14003afa1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003aac4
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003ab10
add rax, 2
sub rcx, 1
jne 0x14003ab00
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Datacenter_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x14003afa1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ab50
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003ab96
add rax, 2
sub rcx, 1
jne 0x14003ab86
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition
sub r9, rcx
test rax, rax
je 0x14003afa1
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003abd4
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003ac20
add rax, 2
sub rcx, 1
jne 0x14003ac10
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition__core_installation_
sub r9, rcx
nop
test rax, rax
je 0x14003afa1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ac60
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003aca6
add rax, 2
sub rcx, 1
jne 0x14003ac96
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Enterprise_Edition_for_Itanium_based_Systems
sub r9, rcx
test rax, rax
je 0x14003afa1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ace4
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003ad30
add rax, 2
sub rcx, 1
jne 0x14003ad20
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Small_Business_Server
sub r9, rcx
nop
test rax, rax
je 0x14003afa1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ad70
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003adb6
add rax, 2
sub rcx, 1
jne 0x14003ada6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Small_Business_Server_Premium_Edition
sub r9, rcx
test rax, rax
je 0x14003afa1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003adf4
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
nop word [rax + rax]
cmp word [rax], 0
je 0x14003ae40
add rax, 2
sub rcx, 1
jne 0x14003ae30
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Standard_Edition
sub r9, rcx
nop
test rax, rax
je 0x14003afa1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003ae80
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003aec6
add rax, 2
sub rcx, 1
jne 0x14003aeb6
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Standard_Edition__core_installation_
sub r9, rcx
test rax, rax
je 0x14003afa1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003af04
jmp 0x14003afa1
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003af47
add rax, 2
sub rcx, 1
jne 0x14003af37
mov eax, 0x100
sub rax, rcx
mov r8, r15
test rcx, rcx
cmovne r8, rax
je case.0x14003a27d.5
mov edx, 0x100
sub rdx, r8
lea rcx, [rbx + r8*2]
je 0x14003afa1
lea rax, [r8 + 0x7ffffeff]
add rax, rdx
lea r9, str.Web_Server_Edition
sub r9, rcx
nop dword [rax]
test rax, rax
je 0x14003afa1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003afa1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003af80
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
cmp dword [rbp - 0x3c], 5
jne 0x14003b662
mov eax, dword [rbp - 0x38]
cmp eax, 2
jne 0x14003b53e
lea ecx, [rax + 0x57]
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x14003b095
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003aff0
add rax, 2
sub rcx, 1
jne 0x14003afe0
test rcx, rcx
je 0x14003afff
mov eax, 0x100
sub rax, rcx
jmp 0x14003b002
mov rax, r15
test rcx, rcx
je 0x14003b058
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b049
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2003_R2_
sub r9, rcx
test rax, rax
je 0x14003b049
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b049
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b028
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp 0x14003b3d0
mov ecx, 0x2000
movzx eax, word [rbp + 0xd8]
cmp ax, cx
jne 0x14003b16d
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b0c2
add rax, 2
sub rcx, 1
jne 0x14003b0b2
test rcx, rcx
je 0x14003b0d1
mov eax, 0x100
sub rax, rcx
jmp 0x14003b0d4
mov rax, r15
test rcx, rcx
je 0x14003b130
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b121
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Storage_Server_2003
sub r9, rcx
nop word [rax + rax]
test rax, rax
je 0x14003b121
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b121
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b100
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp 0x14003b3d0
mov ecx, 0x8000
cmp ax, cx
jne 0x14003b23d
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b193
add rax, 2
sub rcx, 1
jne 0x14003b183
test rcx, rcx
je 0x14003b1a2
mov eax, 0x100
sub rax, rcx
jmp 0x14003b1a5
mov rax, r15
test rcx, rcx
je 0x14003b200
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b1f1
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Home_Server
sub r9, rcx
nop dword [rax + rax]
test rax, rax
je 0x14003b1f1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b1f1
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b1d0
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp 0x14003b3d0
cmp byte [rbp + 0xda], 1
jne 0x14003b315
cmp word [rsp + 0x50], 9
jne 0x14003b315
mov ecx, 0x100
mov rax, rbx
nop
cmp word [rax], 0
je 0x14003b270
add rax, 2
sub rcx, 1
jne 0x14003b260
test rcx, rcx
je 0x14003b27f
mov eax, 0x100
sub rax, rcx
jmp 0x14003b282
mov rax, r15
test rcx, rcx
je 0x14003b2d8
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b2c9
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_XP_Professional_x64_Edition
sub r9, rcx
test rax, rax
je 0x14003b2c9
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x14003b2c9
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b2a8
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
jmp 0x14003b3d0
mov ecx, 0x100
mov rax, rbx
nop dword [rax]
cmp word [rax], 0
je 0x14003b330
add rax, 2
sub rcx, 1
jne 0x14003b320
test rcx, rcx
je 0x14003b33f
mov eax, 0x100
sub rax, rcx
jmp 0x14003b342
mov rax, r15
test rcx, rcx
je 0x14003b398
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b389
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Windows_Server_2003_
sub r9, rcx
test rax, rax
je 0x14003b389
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b389
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b368
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.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
cmp byte [rbp + 0xda], 1
je 0x14003b531
mov rax, qword [rsp + 0x50]
cmp ax, 6
jne 0x14003b499
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003b485
mov ecx, 0x100
mov rax, rbx
cmp word [rax], 0
je 0x14003b413
add rax, 2
sub rcx, 1
jne 0x14003b403
test rcx, rcx
je 0x14003b422
mov eax, 0x100
sub rax, rcx
jmp 0x14003b425
mov rax, r15
test rcx, rcx
je 0x14003b531
mov edx, 0x100
sub rdx, rax
lea rcx, [rbx + rax*2]
je 0x14003b471
add rax, 0x7ffffeff
add rax, rdx
lea r9, str.Datacenter_Edition_for_Itanium_based_Systems
sub r9, rcx
nop
test rax, rax
je 0x14003b471
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x14003b471
mov word [rcx], r8w
add rcx, 2
dec rax
sub rdx, 1
jne 0x14003b450
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov word [rax], r15w
jmp 0x14003b531
test al, 2
je 0x14003b531
lea r8, str.Enterprise_Edition_for_Itanium_based_Systems
jmp 0x14003b524
cmp ax, 9
jne 0x14003b4d1
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003b4b3
lea r8, str.Datacenter_x64_Edition
jmp 0x14003b524
mov edx, 0x100
mov rcx, rbx
test al, 2
je 0x14003b4c8
lea r8, str.Enterprise_x64_Edition
jmp 0x14003b52c
lea r8, str.Standard_x64_Edition
jmp 0x14003b52c
movzx ecx, word [rbp + 0xd8]
mov eax, 0x4000
test ax, cx
je 0x14003b4eb
lea r8, str.Compute_Cluster_Edition
jmp 0x14003b524
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003b4ff
lea r8, str.Datacenter_Edition
jmp 0x14003b524
test al, 2
je 0x14003b50c
lea r8, str.Enterprise_Edition
jmp 0x14003b524
mov eax, 0x400
test ax, cx
lea r8, str.Web_Edition
jne 0x14003b524
lea r8, str.Standard_Edition
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
cmp dword [rbp - 0x3c], 5
jne 0x14003b662
mov eax, dword [rbp - 0x38]
cmp eax, 1
jne 0x14003b5c9
lea r8, str.Windows_XP
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1166c
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
mov eax, 0x200
mov edx, 0x100
mov rcx, rbx
test word [rbp + 0xd8], ax
lea r8, str.Home_Edition
jne 0x14003b5b7
lea r8, str.Professional
call fcn.1400396b0
cmp dword [rbp - 0x3c], 5
jne 0x14003b662
mov eax, dword [rbp - 0x38]
test eax, eax
jne 0x14003b662
lea r8, str.Windows_2000
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
mov qword [rsp + 0x30], r12
mov byte [rsp + 0x38], 1
mov edx, 0x1165e
lea rcx, [rbp - 0x78]
call fcn.1400237b0
nop
xor r9d, r9d
lea r8, [rsp + 0x30]
mov rdx, rax
call fcn.140058400
nop
mov qword [rbp - 0x78], r13
lea rcx, [rbp - 0x70]
call fcn.140009568
nop
cmp byte [rbp + 0xda], 1
jne 0x14003b62f
lea r8, str.Professional
jmp 0x14003b655
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x14003b643
lea r8, str.Datacenter_Server
jmp 0x14003b655
test al, 2
lea r8, str.Advanced_Server
jne 0x14003b655
lea r8, str.Server
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
lea rcx, [rbp - 0x2c]
mov rax, 0xffffffffffffffff
nop dword [rax]
inc rax
cmp word [rcx + rax*2], 0
jne 0x14003b670
test rax, rax
je 0x14003b6a4
lea r8, [0x1402eb280]
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
lea r8, [rbp - 0x2c]
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
mov r9d, dword [rbp - 0x34]
lea r8, str.__build__d_
mov edx, 0x50
lea rcx, [rbp + 0xe0]
call fcn.140039790
lea r8, [rbp + 0xe0]
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
cmp dword [rbp - 0x3c], 6
jb 0x14003b707
mov rax, qword [rsp + 0x50]
cmp ax, 9
jne 0x14003b6ee
lea r8, str.__64_bit
jmp 0x14003b6fa
test ax, ax
jne 0x14003b707
lea r8, str.__32_bit
mov edx, 0x100
mov rcx, rbx
call fcn.1400396b0
mov eax, 1
mov rcx, qword [rbp + 0x1530]
xor rcx, rsp
call fcn.140229750
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