Function at 0x1800d7be0
Capabilities:
Check os version

Disassembly:
mov dword [rsp + 0x20], r9d
mov qword [rsp + 0x18], r8
mov dword [rsp + 0x10], edx
mov qword [rsp + 8], rcx
push rdi
mov eax, 0x21b0
call fcn.1801339d0
sub rsp, rax
mov qword [rsp + 0x2188], 0xfffffffffffffffe
mov rax, qword [0x180161180]
xor rax, rsp
mov qword [rsp + 0x21a0], rax
mov eax, dword [rsp + 0x21e0]
mov dword [rsp + 0x2160], eax
mov eax, dword [rsp + 0x21c8]
mov dword [rsp + 0x90], eax
lea rax, [rsp + 0xb0]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x21d0]
mov qword [rsp + 0x2158], rax
mov dword [rsp + 0xa0], 0
mov dword [rsp + 0x2150], 0
lea rax, [rsp + 0x1150]
mov qword [rsp + 0x88], rax
mov dword [rsp + 0x94], 0
mov rdx, qword [rsp + 0x21c0]
add rdx, 0x12188
lea rcx, [rsp + 0x70]
call fcn.18008d200
nop
mov byte [rsp + 0x68], 0
mov word [rsp + 0x60], 0
mov byte [rsp + 0x58], 0
mov byte [rsp + 0x50], 0
mov byte [rsp + 0x48], 0
mov byte [rsp + 0x40], 0
mov byte [rsp + 0x38], 0
mov byte [rsp + 0x30], 0
mov byte [rsp + 0x28], 0
mov byte [rsp + 0x20], 0
mov r9b, 4
mov r8b, 8
mov dl, 1
mov rcx, qword [rsp + 0x21c0]
call fcn.1800b30e0
nop
cmp dword [rsp + 0x2160], 0
jne 0x1800d7d0e
mov rcx, qword [rsp + 0x21c0]
call fcn.1800b3ec0
mov dword [rsp + 0x2160], eax
mov eax, dword [rsp + 0x2160]
mov dword [rsp + 0x2198], eax
mov eax, dword [rsp + 0x2198]
sub eax, 4
mov dword [rsp + 0x2198], eax
cmp dword [rsp + 0x2198], 0xf
ja case.0x1800d7d54.10
movsxd rax, dword [rsp + 0x2198]
lea rcx, [0x180000000]
mov eax, dword [rcx + rax*4 + 0xd84e4]
add rax, rcx
jmp rax
mov r8d, dword [rsp + 0x21c8]
mov rdx, qword [rsp + 0x21d0]
mov rcx, qword [rsp + 0x21c0]
call fcn.1800b5750
jmp 0x1800d7e31
cmp dword [rsp + 0x21c8], 0xff
jne 0x1800d7dc4
lea rdi, [rsp + 0xb0]
xor eax, eax
mov ecx, 0x1000
rep stosb byte [rdi], al
mov r8d, 0x1000
lea rdx, [rsp + 0xb0]
mov rcx, qword [rsp + 0x21c0]
call fcn.1800a6310
mov rdx, qword [rsp + 0x98]
movzx eax, byte [rdx + 6]
mov dword [rsp + 0x90], eax
mov rcx, qword [rsp + 0x21c0]
mov eax, dword [rsp + 0x90]
mov dword [rcx + 0x11cb8], eax
mov rax, qword [rsp + 0x21c0]
movzx r9d, byte [rax + 0x11cb8]
movzx r8d, byte [rsp + 0x21c8]
movzx edx, byte [rsp + 0x90]
lea rcx, [0x180032220]
call fcn.1800892c0
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0x20], eax
mov r9b, 1
mov r8d, dword [rsp + 0x21d8]
mov rdx, qword [rsp + 0x21d0]
mov rcx, qword [rsp + 0x21c0]
call fcn.1800a63f0
cmp dword [rsp + 0x2160], 8
je 0x1800d7e49
cmp dword [rsp + 0x2160], 7
jne 0x1800d82ab
mov rax, qword [rsp + 0x2158]
movzx edi, byte [rax + 0x1b]
mov rax, qword [rsp + 0x2158]
movzx edx, byte [rax + 0x1a]
shl edx, 8
mov rax, qword [rsp + 0x2158]
movzx ecx, byte [rax + 0x19]
shl ecx, 0x10
mov rax, qword [rsp + 0x2158]
movzx eax, byte [rax + 0x18]
shl eax, 0x18
or eax, ecx
or eax, edx
or eax, edi
mov dword [rsp + 0xa0], eax
mov rax, qword [rsp + 0x2158]
movzx eax, byte [rax + 6]
shr al, 5
and al, 1
movzx eax, al
cmp eax, 1
jne 0x1800d82ab
mov rax, qword [rsp + 0x2158]
movzx eax, byte [rax + 6]
shr al, 6
and al, 1
movzx eax, al
test eax, eax
jne 0x1800d82ab
cmp dword [rsp + 0xa0], 0
jle 0x1800d82ab
mov rax, qword [rsp + 0x2158]
movzx eax, byte [rax + 6]
shr al, 6
and al, 1
movzx r8d, al
mov rax, qword [rsp + 0x2158]
movzx eax, byte [rax + 6]
shr al, 5
and al, 1
movzx edx, al
mov eax, dword [rsp + 0x2160]
mov dword [rsp + 0x20], eax
mov r9d, dword [rsp + 0xa0]
lea rcx, [0x180032190]
call fcn.1800892c0
lea rdi, [rsp + 0x1150]
xor eax, eax
mov ecx, 0x1000
rep stosb byte [rdi], al
mov r8d, 0x1000
lea rdx, [rsp + 0x1150]
mov rcx, qword [rsp + 0x21c0]
call fcn.1800a4d50
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 3]
cmp rax, 8
jbe 0x1800d7fa4
mov rax, qword [rsp + 0x88]
movzx edi, byte [rax + 0xf]
mov rax, qword [rsp + 0x88]
movzx edx, byte [rax + 0xe]
shl edx, 8
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rax + 0xd]
shl ecx, 0x10
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 0xc]
shl eax, 0x18
or eax, ecx
or eax, edx
or eax, edi
mov dword [rsp + 0x2150], eax
jmp 0x1800d7fea
mov rax, qword [rsp + 0x88]
movzx edi, byte [rax + 7]
mov rax, qword [rsp + 0x88]
movzx edx, byte [rax + 6]
shl edx, 8
mov rax, qword [rsp + 0x88]
movzx ecx, byte [rax + 5]
shl ecx, 0x10
mov rax, qword [rsp + 0x88]
movzx eax, byte [rax + 4]
shl eax, 0x18
or eax, ecx
or eax, edx
or eax, edi
mov dword [rsp + 0x2150], eax
mov rax, qword [rsp + 0x2158]
movzx ecx, byte [rax + 6]
and cl, 0xef
mov rax, qword [rsp + 0x2158]
mov byte [rax + 6], cl
mov rax, qword [rsp + 0x2158]
movzx ecx, byte [rax + 6]
and cl, 0xdf
mov rax, qword [rsp + 0x2158]
mov byte [rax + 6], cl
mov rax, qword [rsp + 0x2158]
movzx ecx, byte [rax + 6]
or cl, 0x40
mov rax, qword [rsp + 0x2158]
mov byte [rax + 6], cl
mov rax, qword [rsp + 0x2158]
movzx ecx, byte [rax + 7]
or cl, 1
mov rax, qword [rsp + 0x2158]
mov byte [rax + 7], cl
movsxd rax, dword [rsp + 0xa0]
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0xc], cl
movsxd rax, dword [rsp + 0xa0]
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0xd], cl
movsxd rax, dword [rsp + 0xa0]
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0xe], cl
movsxd rax, dword [rsp + 0xa0]
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0xf], cl
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x2150]
sub eax, ecx
cdqe
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x10], cl
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x2150]
sub eax, ecx
cdqe
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x11], cl
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x2150]
sub eax, ecx
cdqe
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x12], cl
mov ecx, dword [rsp + 0xa0]
mov eax, dword [rsp + 0x2150]
sub eax, ecx
cdqe
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x13], cl
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x14], 0
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x15], 0
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x16], 0
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x17], 0
movsxd rax, dword [rsp + 0x2150]
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x18], cl
movsxd rax, dword [rsp + 0x2150]
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x19], cl
movsxd rax, dword [rsp + 0x2150]
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x1a], cl
movsxd rax, dword [rsp + 0x2150]
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x1b], cl
mov eax, dword [rsp + 0xa0]
mov r8d, dword [rsp + 0x2150]
sub r8d, eax
mov r9d, dword [rsp + 0x2150]
mov edx, dword [rsp + 0xa0]
lea rcx, [0x180032120]
call fcn.1800892c0
mov rcx, qword [rsp + 0x21c0]
add rcx, 0x18
lea rdx, [0x18001ceb8]
call fcn.1800eae7c
test rax, rax
je 0x1800d84bf
mov rcx, qword [rsp + 0x21c0]
add rcx, 0x1018
lea rdx, [0x180032118]
call fcn.1800eae7c
test rax, rax
jne 0x1800d8310
mov rcx, qword [rsp + 0x21c0]
add rcx, 0x1018
lea rdx, [0x180032110]
call fcn.1800eae7c
test rax, rax
je 0x1800d84bf
mov r8, qword [rsp + 0x21c0]
add r8, 0x1018
mov rdx, qword [rsp + 0x21c0]
add rdx, 0x18
lea rcx, [0x1800320b0]
call fcn.1800892c0
lea rdi, [rsp + 0x10b0]
xor eax, eax
mov ecx, 0x94
rep stosb byte [rdi], al
mov dword [rsp + 0x10b0], 0x94
lea rcx, [rsp + 0x10b0]
call qword [sym.imp.KERNEL32.dll_GetVersionExA]
cmp dword [rsp + 0x10c0], 2
jne 0x1800d84bf
cmp dword [rsp + 0x10b4], 5
jne 0x1800d84bf
cmp dword [rsp + 0x10b8], 0
jne 0x1800d84bf
lea rcx, [0x180032050]
call fcn.1800892c0
mov rdx, qword [rsp + 0x2158]
movzx edi, byte [rdx + 0x13]
mov rax, qword [rsp + 0x2158]
movzx edx, byte [rax + 0x12]
shl edx, 8
mov rax, qword [rsp + 0x2158]
movzx ecx, byte [rax + 0x11]
shl ecx, 0x10
mov rax, qword [rsp + 0x2158]
movzx eax, byte [rax + 0x10]
shl eax, 0x18
or eax, ecx
or eax, edx
or eax, edi
mov dword [rsp + 0x94], eax
mov edx, dword [rsp + 0x94]
lea rcx, [0x180031fe0]
call fcn.1800892c0
cmp dword [rsp + 0x94], 0x2800
jle 0x1800d8410
mov eax, dword [rsp + 0x94]
sub eax, 0x2800
mov dword [rsp + 0x94], eax
mov edx, dword [rsp + 0x94]
lea rcx, [0x180031f70]
call fcn.1800892c0
movsxd rax, dword [rsp + 0x94]
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x10], cl
movsxd rax, dword [rsp + 0x94]
shr rax, 0x10
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x11], cl
movsxd rax, dword [rsp + 0x94]
and rax, 0xffff
movzx ecx, ax
shr rcx, 8
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x12], cl
movsxd rax, dword [rsp + 0x94]
and rax, 0xffff
movzx ecx, ax
and rcx, 0xff
mov rax, qword [rsp + 0x2158]
mov byte [rax + 0x13], cl
lea rcx, [rsp + 0x70]
call fcn.18008d2a0
mov rcx, qword [rsp + 0x21a0]
xor rcx, rsp
call fcn.1800eb430
add rsp, 0x21b0
pop rdi
ret