Function at 0x1400d4c60
Capabilities:
Check os version
Get system information on windows
Query or enumerate registry value

Disassembly:
mov r11, rsp
push rbp
push rsi
lea rbp, [r11 - 0x128]
sub rsp, 0x218
mov rax, qword [0x14035e6e8]
xor rax, rsp
mov qword [rbp + 0xe0], rax
mov qword [r11 + 0x10], rbx
mov qword [r11 - 0x18], rdi
xor edi, edi
mov qword [r11 - 0x20], r12
mov esi, edi
mov qword [r11 - 0x30], r14
mov r12, rcx
mov qword [rbp - 0x80], rcx
lea rcx, [rbp - 0x78]
mov qword [r11 - 0x38], r15
mov r15, r8
mov qword [rsp + 0x78], r8
mov dword [rsp + 0x50], edi
call qword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
xor edx, edx
lea rcx, [rbp - 0x3c]
mov r8d, 0x118
call sub.VCRUNTIME140.dll_memset
lea edx, [rdi + 0x1a]
mov dword [rbp - 0x40], 0x11c
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x48], rdi
call fcn.14001ca50
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x1a]
mov dword [rsp + 0x48], eax
cmp eax, dword [rsp + 0x4c]
jle 0x1400d4d03
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
lea rdx, str.Windows__unknown_version_
mov r8d, 0x34
call fcn.140034be0
mov rbx, rdi
mov qword [rsp + 0x38], rdi
lea rcx, [rbp - 0x40]
mov qword [rsp + 0x30], rbx
call qword [sym.imp.KERNEL32.dll_GetVersionExW]
lea r14, [0x1402655d8]
test eax, eax
je 0x1400d6681
mov eax, dword [rbp - 0x3c]
mov qword [rsp + 0x200], r13
sub eax, 5
je 0x1400d55af
sub eax, 1
je 0x1400d5196
cmp eax, 4
je 0x1400d4d70
mov esi, 1
mov dword [rsp + 0x50], esi
jmp 0x1400d5b6e
cmp dword [rbp - 0x38], ebx
je 0x1400d4d83
mov esi, 1
mov dword [rsp + 0x50], esi
jmp 0x1400d5b78
cmp byte [rbp + 0xda], 1
jne 0x1400d4e83
cmp dword [rbp - 0x34], 0x55f0
jb 0x1400d4e0e
lea rax, str.Windows_11
cmp qword [rsp + 0x40], rax
je 0x1400d4f6d
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xb
je 0x1400d4dd1
mov edx, 0xb
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xb]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d4de6
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_11]
movups xmmword [rcx], xmm0
mov eax, dword [0x140280d28]
mov dword [rcx + 0x10], eax
movzx eax, word [0x140280d2c]
mov word [rcx + 0x14], ax
jmp 0x1400d4f6d
lea rax, str.Windows_10
cmp qword [rsp + 0x40], rax
je 0x1400d4f6d
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xb
je 0x1400d4e46
mov edx, 0xb
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xb]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d4e5b
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_10]
movups xmmword [rcx], xmm0
mov eax, dword [0x140280d40]
mov dword [rcx + 0x10], eax
movzx eax, word [0x140280d44]
mov word [rcx + 0x14], ax
jmp 0x1400d4f6d
cmp dword [rbp - 0x34], 0x4f7c
jb 0x1400d4efd
lea rax, str.Windows_Server_2022
cmp qword [rsp + 0x40], rax
je 0x1400d4f6d
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x14
je 0x1400d4ec4
mov edx, 0x14
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x14]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d4ed9
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2022]
mov rax, qword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140280d58]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140280d68]
jmp 0x1400d4f68
lea rax, str.Windows_Server_2019
cmp qword [rsp + 0x40], rax
je 0x1400d4f6d
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x14
je 0x1400d4f31
mov edx, 0x14
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x14]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d4f46
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2019]
mov rax, qword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140280d80]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140280d90]
movsd qword [rax + 0x20], xmm0
mov r13, rdi
mov dword [rsp + 0x58], edi
mov r15d, edi
mov r14d, edi
mov eax, 0x200
nop
test sil, sil
jne 0x1400d511e
mov r9d, 0x100
mov qword [rsp + 0x70], rdi
test r14d, r14d
lea rdx, str.SOFTWAREMicrosoftWindows_NTCurrentVersion
mov rcx, 0xffffffff80000002
cmove r9d, eax
lea rax, [rsp + 0x70]
or r9d, 0x20019
mov qword [rsp + 0x20], rax
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x1400d5102
mov rcx, qword [rsp + 0x70]
lea rax, [rsp + 0x54]
mov qword [rsp + 0x28], rax
lea rdx, str.ReleaseId
xor r9d, r9d
mov qword [rsp + 0x20], rdi
xor r8d, r8d
mov dword [rsp + 0x54], edi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400d50f7
mov eax, dword [rsp + 0x54]
test eax, eax
je 0x1400d50f7
mov ecx, eax
call fcn.140012750
mov rcx, qword [rsp + 0x70]
lea rdx, str.ReleaseId
mov r12, rax
xor r9d, r9d
lea rax, [rsp + 0x54]
xor r8d, r8d
mov qword [rsp + 0x28], rax
mov qword [rsp + 0x20], r12
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x1400d50ef
mov esi, dword [rsp + 0x54]
mov eax, edi
shr esi, 1
mov r14, rdi
mov qword [rsp + 0x60], rdi
mov r15d, edi
mov dword [rsp + 0x68], edi
mov dword [rsp + 0x6c], eax
test r12, r12
je 0x1400d50cd
cmp esi, 1
jbe 0x1400d50cd
cmp word [r12], ax
je 0x1400d50cd
test esi, esi
je 0x1400d508d
mov edx, esi
lea rcx, [rsp + 0x60]
call fcn.14001ca50
mov eax, dword [rsp + 0x6c]
mov r15d, dword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
mov edx, r15d
add r15d, esi
mov dword [rsp + 0x68], r15d
cmp r15d, eax
jle 0x1400d50b1
lea rcx, [rsp + 0x60]
call fcn.14001c660
mov r15d, dword [rsp + 0x68]
mov r14, qword [rsp + 0x60]
lea r8, [rsi*2 - 2]
mov rdx, r12
mov rcx, r14
call fcn.140034be0
movsxd rax, r15d
mov word [r14 + rax*2 - 2], di
test r13, r13
je 0x1400d50da
mov rcx, r13
call fcn.14004dcf0
mov r13, r14
mov qword [rsp + 0x60], rdi
mov r14d, dword [rsp + 0x58]
mov sil, 1
mov qword [rsp + 0x68], rdi
mov rcx, r12
call fcn.1400127e0
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
inc r14d
mov eax, 0x200
mov dword [rsp + 0x58], r14d
cmp r14d, 2
jl 0x1400d4f80
test sil, sil
je 0x1400d5172
lea r14, [0x1402655d8]
test r15d, r15d
mov r8, r14
lea rdx, str.__Release__s_
cmovne r8, r13
lea rcx, [rsp + 0x60]
call fcn.140020fc0
mov r8d, dword [rsp + 0x68]
test r8d, r8d
je 0x1400d514f
dec r8d
jmp 0x1400d5152
mov r8d, edi
mov rdx, qword [rsp + 0x60]
lea rcx, [rsp + 0x40]
call fcn.14001ee30
mov rcx, qword [rsp + 0x60]
test rcx, rcx
je 0x1400d5179
call fcn.14004dcf0
jmp 0x1400d5179
lea r14, [0x1402655d8]
test r13, r13
je 0x1400d5186
mov rcx, r13
call fcn.14004dcf0
mov r15, qword [rsp + 0x78]
mov esi, ebx
mov r12, qword [rbp - 0x80]
jmp 0x1400d5b6e
mov eax, dword [rbp - 0x38]
test eax, eax
je 0x1400d54b6
sub eax, 1
je 0x1400d53b6
sub eax, 1
je 0x1400d52ca
cmp eax, 1
je 0x1400d51c6
mov esi, 1
mov dword [rsp + 0x50], esi
jmp 0x1400d5b78
cmp byte [rbp + 0xda], 1
jne 0x1400d523d
lea rax, str.Windows_8.1
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xc
je 0x1400d5207
mov edx, 0xc
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xc]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d521c
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rax, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_8.1]
movups xmmword [rax], xmm0
movsd xmm1, qword [0x140280ce0]
movsd qword [rax + 0x10], xmm1
jmp 0x1400d5b6e
lea rax, str.Windows_Server_2012_R2
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x17
je 0x1400d5275
mov edx, 0x17
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x17]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d528a
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2012_R2]
mov rcx, qword [rsp + 0x40]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x140280cf8]
movups xmmword [rcx + 0x10], xmm1
movsd xmm0, qword [0x140280d08]
movsd qword [rcx + 0x20], xmm0
mov eax, dword [0x140280d10]
mov dword [rcx + 0x28], eax
movzx eax, word [0x140280d14]
mov word [rcx + 0x2c], ax
jmp 0x1400d5b6e
cmp byte [rbp + 0xda], 1
jne 0x1400d533d
lea rax, str.Windows_8
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xa
je 0x1400d530b
mov edx, 0xa
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xa]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d5320
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_8]
movups xmmword [rcx], xmm0
mov eax, dword [0x140280ca0]
mov dword [rcx + 0x10], eax
jmp 0x1400d5b6e
lea rax, str.Windows_Server_2012
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x14
je 0x1400d5375
mov edx, 0x14
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x14]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d538a
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2012]
mov rax, qword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140280cb8]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140280cc8]
movsd qword [rax + 0x20], xmm0
jmp 0x1400d5b6e
cmp byte [rbp + 0xda], 1
jne 0x1400d5429
lea rax, str.Windows_7
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xa
je 0x1400d53f7
mov edx, 0xa
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xa]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d540c
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_7]
movups xmmword [rcx], xmm0
mov eax, dword [0x140280c58]
mov dword [rcx + 0x10], eax
jmp 0x1400d5b6e
lea rax, str.Windows_Server_2008_R2
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x17
je 0x1400d5461
mov edx, 0x17
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x17]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d5476
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2008_R2]
mov rcx, qword [rsp + 0x40]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x140280c70]
movups xmmword [rcx + 0x10], xmm1
movsd xmm0, qword [0x140280c80]
movsd qword [rcx + 0x20], xmm0
mov eax, dword [0x140280c88]
mov dword [rcx + 0x28], eax
movzx eax, word [0x140280c8c]
mov word [rcx + 0x2c], ax
jmp 0x1400d5b6e
cmp byte [rbp + 0xda], 1
jne 0x1400d5536
lea rax, str.Windows_Vista
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xe
je 0x1400d54f7
mov edx, 0xe
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xe]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d550c
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_Vista]
movups xmmword [rcx], xmm0
movsd xmm1, qword [0x140280c10]
movsd qword [rcx + 0x10], xmm1
mov eax, dword [0x140280c18]
mov dword [rcx + 0x18], eax
jmp 0x1400d5b6e
lea rax, str.Windows_Server_2008
cmp qword [rsp + 0x40], rax
je 0x1400d5b78
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x14
je 0x1400d556e
mov edx, 0x14
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x14]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d5583
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2008]
mov rax, qword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140280c30]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140280c40]
movsd qword [rax + 0x20], xmm0
jmp 0x1400d5b6e
mov eax, dword [rbp - 0x38]
test eax, eax
je 0x1400d59b8
sub eax, 1
je 0x1400d58e4
cmp eax, 1
je 0x1400d55d2
mov esi, 1
jmp 0x1400d6541
mov ecx, 0x59
call qword [sym.imp.USER32.dll_GetSystemMetrics]
test eax, eax
je 0x1400d5672
lea rax, str.Windows_Server_2003_R2
cmp qword [rsp + 0x40], rax
je 0x1400d5b6e
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x17
je 0x1400d561d
mov edx, 0x17
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x17]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d5632
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2003_R2]
mov rcx, qword [rsp + 0x40]
movups xmmword [rcx], xmm0
movups xmm1, xmmword [0x140280b20]
movups xmmword [rcx + 0x10], xmm1
movsd xmm0, qword [0x140280b30]
movsd qword [rcx + 0x20], xmm0
mov eax, dword [0x140280b38]
mov dword [rcx + 0x28], eax
movzx eax, word [0x140280b3c]
mov word [rcx + 0x2c], ax
jmp 0x1400d5b6e
movzx eax, word [rbp + 0xd8]
bt ax, 0xd
jae 0x1400d5708
lea rax, str.Windows_Storage_Server_2003
cmp qword [rsp + 0x40], rax
je 0x1400d5b6e
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x1c
je 0x1400d56bc
mov edx, 0x1c
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x1c]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d56d1
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Storage_Server_2003]
mov rax, qword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140280b50]
movups xmmword [rax + 0x10], xmm1
movups xmm0, xmmword [0x140280b60]
movups xmmword [rax + 0x20], xmm0
movsd xmm1, qword [0x140280b70]
movsd qword [rax + 0x30], xmm1
jmp 0x1400d5b6e
bt ax, 0xf
jae 0x1400d5788
lea rax, str.Windows_Home_Server
cmp qword [rsp + 0x40], rax
je 0x1400d5b6e
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x14
je 0x1400d5747
mov edx, 0x14
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x14]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d575c
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Home_Server]
mov rax, qword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140280b88]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140280b98]
movsd qword [rax + 0x20], xmm0
jmp 0x1400d5b6e
cmp byte [rbp + 0xda], 1
jne 0x1400d586b
cmp word [rbp - 0x78], 9
jne 0x1400d586b
lea rax, str.Windows_XP
cmp qword [rsp + 0x40], rax
je 0x1400d580c
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xb
je 0x1400d57d4
mov edx, 0xb
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xb]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d57e9
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_XP]
movups xmmword [rcx], xmm0
mov eax, dword [0x140280ae8]
mov dword [rcx + 0x10], eax
movzx eax, word [0x140280aec]
mov word [rcx + 0x14], ax
mov edx, 0x19
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
lea eax, [rdx + 0x19]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5836
lea rcx, [rsp + 0x30]
call fcn.14001c660
movups xmm0, xmmword [str.Professional_x64_Edition]
mov rbx, qword [rsp + 0x30]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280bb0]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [0x140280bc0]
movups xmmword [rbx + 0x20], xmm0
movzx eax, word [0x140280bd0]
mov word [rbx + 0x30], ax
jmp 0x1400d5b6e
lea rax, str.Windows_Server_2003
cmp qword [rsp + 0x40], rax
je 0x1400d5b6e
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0x14
je 0x1400d58a3
mov edx, 0x14
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0x14]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d58b8
lea rcx, [rsp + 0x40]
call fcn.14001c660
movups xmm0, xmmword [str.Windows_Server_2003]
mov rax, qword [rsp + 0x40]
movups xmmword [rax], xmm0
movups xmm1, xmmword [0x140280be8]
movups xmmword [rax + 0x10], xmm1
movsd xmm0, qword [0x140280bf8]
movsd qword [rax + 0x20], xmm0
jmp 0x1400d5b6e
lea rax, str.Windows_XP
cmp qword [rsp + 0x40], rax
je 0x1400d5950
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xb
je 0x1400d5918
mov edx, 0xb
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xb]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d592d
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_XP]
movups xmmword [rcx], xmm0
mov eax, dword [0x140280ae8]
mov dword [rcx + 0x10], eax
movzx eax, word [0x140280aec]
mov word [rcx + 0x14], ax
mov eax, 0x200
lea rcx, [rsp + 0x30]
mov edx, 0xd
test word [rbp + 0xd8], ax
je 0x1400d5a3b
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
lea eax, [rdx + 0xd]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d598c
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Home_Edition]
movups xmmword [rbx], xmm0
movsd xmm1, qword [0x140280b00]
movsd qword [rbx + 0x10], xmm1
movzx eax, word [0x140280b08]
mov word [rbx + 0x18], ax
jmp 0x1400d5b6e
lea rax, str.Windows_2000
cmp qword [rsp + 0x40], rax
je 0x1400d5a28
mov ecx, dword [rsp + 0x4c]
mov edx, edi
mov dword [rsp + 0x48], edx
cmp ecx, 0xd
je 0x1400d59ec
mov edx, 0xd
lea rcx, [rsp + 0x40]
call fcn.14001ca50
mov ecx, dword [rsp + 0x4c]
mov edx, dword [rsp + 0x48]
lea eax, [rdx + 0xd]
mov dword [rsp + 0x48], eax
cmp eax, ecx
jle 0x1400d5a01
lea rcx, [rsp + 0x40]
call fcn.14001c660
mov rcx, qword [rsp + 0x40]
movups xmm0, xmmword [str.Windows_2000]
movups xmmword [rcx], xmm0
movsd xmm1, qword [0x140280a60]
movsd qword [rcx + 0x10], xmm1
movzx eax, word [0x140280a68]
mov word [rcx + 0x18], ax
cmp byte [rbp + 0xda], 1
lea rcx, [rsp + 0x30]
jne 0x1400d5a87
mov edx, 0xd
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
lea eax, [rdx + 0xd]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5a5b
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Professional]
movups xmmword [rbx], xmm0
movsd xmm1, qword [0x140280a80]
movsd qword [rbx + 0x10], xmm1
movzx eax, word [0x140280a88]
mov word [rbx + 0x18], ax
jmp 0x1400d5b6e
movzx eax, byte [rbp + 0xd8]
test al, al
jns 0x1400d5adf
mov edx, 0x12
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
lea eax, [rdx + 0x12]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5ab7
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Datacenter_Server]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280aa0]
movups xmmword [rbx + 0x10], xmm1
mov eax, dword [0x140280ab0]
mov dword [rbx + 0x20], eax
jmp 0x1400d5b6e
test al, 2
je 0x1400d5b24
mov edx, 0x10
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
lea eax, [rdx + 0x10]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5b08
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Advanced_Server]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280ac8]
movups xmmword [rbx + 0x10], xmm1
jmp 0x1400d5b6e
mov edx, 7
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
lea eax, [rdx + 7]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5b49
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movsd xmm0, qword [str.Server]
movsd qword [rbx], xmm0
mov eax, dword [0x140272c70]
mov dword [rbx + 8], eax
movzx eax, word [0x140272c74]
mov word [rbx + 0xc], ax
cmp dword [rbp - 0x3c], 6
jb case.0x1400d5bde.5
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]
test rax, rax
je 0x1400d64c6
mov edx, dword [rbp - 0x38]
lea rcx, [rsp + 0x58]
mov qword [rsp + 0x20], rcx
xor r9d, r9d
mov ecx, dword [rbp - 0x3c]
xor r8d, r8d
call rax
mov eax, dword [rsp + 0x58]
dec eax
cmp eax, 0x2f
ja case.0x1400d5bde.5
lea rdx, [0x140000000]
movzx eax, byte [rdx + rax + 0xd66d4]
mov ecx, dword [rdx + rax*4 + 0xd668c]
add rcx, rdx
jmp rcx
lea rax, str.Ultimate_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x11
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5c15
mov edx, 0x11
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x11]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5c31
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Ultimate_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280e70]
movups xmmword [rbx + 0x10], xmm1
movzx eax, word [0x140280e80]
mov word [rbx + 0x20], ax
jmp case.0x1400d5bde.5
lea rax, str.Professional
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0xd
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5c8b
mov edx, 0xd
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0xd]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5ca7
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Professional]
movups xmmword [rbx], xmm0
movsd xmm1, qword [0x140280a80]
movsd qword [rbx + 0x10], xmm1
movzx eax, word [0x140280a88]
mov word [rbx + 0x18], ax
jmp case.0x1400d5bde.5
lea rax, str.Home_Premium_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x15
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5d03
mov edx, 0x15
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x15]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5d1f
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Home_Premium_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280e98]
movups xmmword [rbx + 0x10], xmm1
movsd xmm0, qword [0x140280ea8]
movsd qword [rbx + 0x20], xmm0
movzx eax, word [0x140280eb0]
mov word [rbx + 0x28], ax
jmp case.0x1400d5bde.5
lea rax, str.Home_Basic_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x13
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5d86
mov edx, 0x13
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x13]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5da2
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Home_Basic_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280ec8]
movups xmmword [rbx + 0x10], xmm1
mov eax, dword [0x140280ed8]
mov dword [rbx + 0x20], eax
movzx eax, word [0x140280edc]
mov word [rbx + 0x24], ax
jmp case.0x1400d5bde.5
lea rax, str.Enterprise_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x13
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5e05
mov edx, 0x13
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x13]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5e21
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Enterprise_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280ef0]
movups xmmword [rbx + 0x10], xmm1
mov eax, dword [0x140280f00]
mov dword [rbx + 0x20], eax
movzx eax, word [0x140280f04]
mov word [rbx + 0x24], ax
jmp case.0x1400d5bde.5
lea rax, str.Business_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x11
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5e84
mov edx, 0x11
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x11]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5ea0
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Business_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280f18]
movups xmmword [rbx + 0x10], xmm1
movzx eax, word [0x140280f28]
mov word [rbx + 0x20], ax
jmp case.0x1400d5bde.5
lea rax, str.Starter_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x10
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5efa
mov edx, 0x10
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x10]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5f16
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Starter_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280f40]
movups xmmword [rbx + 0x10], xmm1
jmp case.0x1400d5bde.5
lea rax, str.Cluster_Server_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x17
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5f65
mov edx, 0x17
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x17]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d5f81
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Cluster_Server_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280f60]
movups xmmword [rbx + 0x10], xmm1
movsd xmm0, qword [0x140280f70]
movsd qword [rbx + 0x20], xmm0
mov eax, dword [0x140280f78]
mov dword [rbx + 0x28], eax
movzx eax, word [0x140280f7c]
mov word [rbx + 0x2c], ax
jmp case.0x1400d5bde.5
lea rax, str.Datacenter_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x13
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d5ff1
mov edx, 0x13
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x13]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d600d
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Datacenter_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140280f90]
movups xmmword [rbx + 0x10], xmm1
mov eax, dword [0x140280fa0]
mov dword [rbx + 0x20], eax
movzx eax, word [0x140280fa4]
mov word [rbx + 0x24], ax
jmp case.0x1400d5bde.5
lea rax, str.Datacenter_Edition__core_installation_
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x27
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d6070
mov edx, 0x27
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x27]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d608c
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movaps xmm0, xmmword [str.Datacenter_Edition__core_installation_]
movups xmmword [rbx], xmm0
movaps xmm1, xmmword [0x140280fc0]
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [0x140280fd0]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [0x140280fe0]
movups xmmword [rbx + 0x30], xmm1
movsd xmm0, qword [0x140280ff0]
movsd qword [rbx + 0x40], xmm0
mov eax, dword [0x140280ff8]
mov dword [rbx + 0x48], eax
movzx eax, word [0x140280ffc]
mov word [rbx + 0x4c], ax
jmp case.0x1400d5bde.5
lea rax, str.Enterprise_Edition__core_installation_
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x27
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d6112
mov edx, 0x27
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x27]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d612e
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movaps xmm0, xmmword [str.Enterprise_Edition__core_installation_]
movups xmmword [rbx], xmm0
movaps xmm1, xmmword [0x140281010]
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [0x140281020]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [0x140281030]
movups xmmword [rbx + 0x30], xmm1
movsd xmm0, qword [0x140281040]
movsd qword [rbx + 0x40], xmm0
mov eax, dword [0x140281048]
mov dword [rbx + 0x48], eax
movzx eax, word [0x14028104c]
mov word [rbx + 0x4c], ax
jmp case.0x1400d5bde.5
lea rax, str.Enterprise_Edition_for_Itanium_based_Systems
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x2d
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d61b4
mov edx, 0x2d
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x2d]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d61d0
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movaps xmm0, xmmword [str.Enterprise_Edition_for_Itanium_based_Systems]
movups xmmword [rbx], xmm0
movaps xmm1, xmmword [0x140281060]
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [0x140281070]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [0x140281080]
movups xmmword [rbx + 0x30], xmm1
movaps xmm0, xmmword [0x140281090]
movups xmmword [rbx + 0x40], xmm0
movsd xmm1, qword [0x1402810a0]
movsd qword [rbx + 0x50], xmm1
movzx eax, word [0x1402810a8]
mov word [rbx + 0x58], ax
jmp case.0x1400d5bde.5
lea rax, str.Small_Business_Server
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x16
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d6258
mov edx, 0x16
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x16]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d6274
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Small_Business_Server]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x1402810c0]
movups xmmword [rbx + 0x10], xmm1
movsd xmm0, qword [0x1402810d0]
movsd qword [rbx + 0x20], xmm0
mov eax, dword [0x1402810d8]
mov dword [rbx + 0x28], eax
jmp case.0x1400d5bde.5
lea rax, str.Small_Business_Server_Premium_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x26
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d62d9
mov edx, 0x26
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x26]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d62f5
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movaps xmm0, xmmword [str.Small_Business_Server_Premium_Edition]
movups xmmword [rbx], xmm0
movaps xmm1, xmmword [0x1402810f0]
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [0x140281100]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [0x140281110]
movups xmmword [rbx + 0x30], xmm1
movsd xmm0, qword [0x140281120]
movsd qword [rbx + 0x40], xmm0
mov eax, dword [0x140281128]
mov dword [rbx + 0x48], eax
jmp case.0x1400d5bde.5
lea rax, str.Standard_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x11
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d6370
mov edx, 0x11
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x11]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d638c
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Standard_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x140281140]
movups xmmword [rbx + 0x10], xmm1
movzx eax, word [0x140281150]
mov word [rbx + 0x20], ax
jmp case.0x1400d5bde.5
lea rax, str.Standard_Edition__core_installation_
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x25
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d63e6
mov edx, 0x25
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x25]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d6402
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movaps xmm0, xmmword [str.Standard_Edition__core_installation_]
movups xmmword [rbx], xmm0
movaps xmm1, xmmword [0x140281170]
movups xmmword [rbx + 0x10], xmm1
movaps xmm0, xmmword [0x140281180]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [0x140281190]
movups xmmword [rbx + 0x30], xmm1
movsd xmm0, qword [0x1402811a0]
movsd qword [rbx + 0x40], xmm0
movzx eax, word [0x1402811a8]
mov word [rbx + 0x48], ax
jmp case.0x1400d5bde.5
lea rax, str.Web_Server_Edition
cmp rbx, rax
je case.0x1400d5bde.5
cmp dword [rsp + 0x3c], 0x13
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d647f
mov edx, 0x13
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0x13]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d649b
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str.Web_Server_Edition]
movups xmmword [rbx], xmm0
movups xmm1, xmmword [0x1402811c0]
movups xmmword [rbx + 0x10], xmm1
mov eax, dword [0x1402811d0]
mov dword [rbx + 0x20], eax
movzx eax, word [0x1402811d4]
mov word [rbx + 0x24], ax
jmp case.0x1400d5bde.5
lea rax, str._type_unknown_
cmp rbx, rax
je 0x1400d653e
cmp dword [rsp + 0x3c], 0xf
mov edx, edi
mov dword [rsp + 0x38], edx
je 0x1400d64f7
mov edx, 0xf
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edx, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rdx + 0xf]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d6513
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
movups xmm0, xmmword [str._type_unknown_]
movups xmmword [rbx], xmm0
movsd xmm1, qword [0x1402811e8]
movsd qword [rbx + 0x10], xmm1
mov eax, dword [0x1402811f0]
mov dword [rbx + 0x18], eax
movzx eax, word [0x1402811f4]
mov word [rbx + 0x1c], ax
or esi, 2
mov dword [rsp + 0x50], esi
mov r13, qword [rsp + 0x200]
lea rax, [rbp - 0x2c]
cmp rbx, rax
je 0x1400d65cd
cmp word [rbp - 0x2c], di
je 0x1400d6574
lea rax, [rbp - 0x2c]
mov rsi, 0xffffffffffffffff
inc rsi
cmp word [rax + rsi*2], di
jne 0x1400d6567
inc esi
jmp 0x1400d6576
mov esi, edi
mov dword [rsp + 0x38], edi
cmp dword [rsp + 0x3c], esi
je 0x1400d6595
mov edx, esi
lea rcx, [rsp + 0x30]
call fcn.14001ca50
mov edi, dword [rsp + 0x38]
mov rbx, qword [rsp + 0x30]
lea eax, [rsi + rdi]
mov dword [rsp + 0x38], eax
cmp eax, dword [rsp + 0x3c]
jle 0x1400d65b3
mov edx, edi
lea rcx, [rsp + 0x30]
call fcn.14001c660
mov rbx, qword [rsp + 0x30]
test esi, esi
je 0x1400d65c9
movsxd r8, esi
lea rdx, [rbp - 0x2c]
add r8, r8
mov rcx, rbx
call sub.VCRUNTIME140.dll_memcpy
mov esi, dword [rsp + 0x50]
cmp dword [rsp + 0x48], 0
mov rcx, r14
mov rdi, qword [rsp + 0x210]
cmovne rcx, qword [rsp + 0x40]
sub r12, rcx
nop word [rax + rax]
movzx eax, word [rcx]
mov word [rcx + r12], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400d65f0
cmp dword [rsp + 0x38], 0
mov r12, qword [rsp + 0x208]
cmovne r14, rbx
sub r15, r14
nop word [rax + rax]
movzx eax, word [r14]
mov word [r15 + r14], ax
lea r14, [r14 + 2]
test ax, ax
jne 0x1400d6620
mov r15, qword [rsp + 0x1f0]
mov r14, qword [rsp + 0x1f8]
test rbx, rbx
je 0x1400d664f
mov rcx, rbx
call fcn.14004dcf0
mov rcx, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x238]
test rcx, rcx
je 0x1400d6666
call fcn.14004dcf0
mov eax, esi
mov rcx, qword [rbp + 0xe0]
xor rcx, rsp
call fcn.140250070
add rsp, 0x218
pop rsi
pop rbp
ret
mov esi, 4
jmp 0x1400d65cd