Function at 0x140085ca0
Capabilities:
Check os version

Disassembly:
push rbp
push rbx
push rsi
push rdi
mov rbp, rsp
sub rsp, 0x58
mov qword [rbp - 0x18], 0xfffffffffffffffe
mov rdi, rcx
lea rdx, [0x14024d112]
lea rcx, [rbp + 0x28]
call fcn.1400cc800
nop
lea rdx, [0x14024d112]
lea rcx, [rbp + 0x30]
call fcn.1400cc800
nop
xor ebx, ebx
cmp byte [rdi], bl
je 0x14008614e
mov rax, rdi
lea rsi, [0x140000000]
nop dword [rax]
cmp byte [rax], 0x2f
jne case.0x140085d23.59
inc ebx
movsxd rax, ebx
movsx ecx, byte [rax + rdi]
add ecx, 0xffffffce
cmp ecx, 0x46
ja case.0x140085d23.59
movsxd rax, ecx
movzx eax, byte [rsi + rax + 0x86194]
mov ecx, dword [rsi + rax*4 + 0x8616c]
add rcx, rsi
jmp rcx
mov dword [0x1402c0634], 1
jmp case.0x140085d23.59
call fcn.140082400
mov dword [0x1402c0744], eax
jmp case.0x140085d23.59
mov dword [0x1402bd964], 1
jmp case.0x140085d23.59
inc ebx
movsxd rdx, ebx
add rdx, rdi
lea rcx, [rbp + 0x28]
call fcn.1400ca6a0
mov dl, 0x2f
lea rcx, [rbp + 0x28]
call fcn.1400cc020
test rax, rax
jns 0x140085d7c
mov rax, qword [rbp + 0x28]
mov rax, qword [rax - 0x10]
mov dword [0x1402c0b84], 1
mov r8, rax
lea rdx, [rbp + 0x38]
lea rcx, [rbp + 0x28]
call fcn.1400cc420
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400ca5a0
nop
lea rcx, [rbp + 0x38]
call fcn.1400ca400
lea rcx, [rbp + 0x30]
call fcn.1400caf00
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.1400ca8d0
lea rdx, [0x1402c1ca0]
sub rdx, rax
nop
movzx ecx, byte [rax]
mov byte [rdx + rax], cl
inc rax
test cl, cl
jne 0x140085dd0
jmp case.0x140085d23.59
mov dword [0x1402c0858], 1
jmp case.0x140085d23.59
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp eax, 0x80000000
jae case.0x140085d23.59
call qword [sym.imp.KERNEL32.dll_GetVersion]
cmp al, 6
jb case.0x140085d23.59
mov dword [0x1402c085c], 1
jmp case.0x140085d23.59
inc ebx
movsxd rdx, ebx
add rdx, rdi
lea rcx, [rbp + 0x28]
call fcn.1400ca6a0
mov dl, 0x2f
lea rcx, [rbp + 0x28]
call fcn.1400cc020
test rax, rax
jns 0x140085e48
mov rax, qword [rbp + 0x28]
mov rax, qword [rax - 0x10]
mov r8, rax
lea rdx, [rbp + 0x40]
lea rcx, [rbp + 0x28]
call fcn.1400cc420
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400ca5a0
nop
lea rcx, [rbp + 0x40]
call fcn.1400ca400
lea rcx, [rbp + 0x30]
call fcn.1400caf00
mov r11, qword [rbp + 0x30]
lea rcx, [0x1402c1b90]
sub rcx, r11
nop word [rax + rax]
movzx eax, byte [r11]
mov byte [rcx + r11], al
inc r11
test al, al
jne 0x140085e90
jmp case.0x140085d23.59
inc ebx
movsxd rax, ebx
movsx ecx, byte [rax + rdi]
add ecx, 0xffffffbc
cmp ecx, 0x2f
ja case.0x140085ece.71
movsxd rax, ecx
movzx eax, byte [rsi + rax + 0x861ec]
mov ecx, dword [rsi + rax*4 + 0x861dc]
add rcx, rsi
jmp rcx
inc ebx
movsxd rdx, ebx
add rdx, rdi
lea rcx, [rbp + 0x28]
call fcn.1400ca6a0
mov dl, 0x2f
lea rcx, [rbp + 0x28]
call fcn.1400cc020
test rax, rax
jns 0x140085ef9
mov rax, qword [rbp + 0x28]
mov rax, qword [rax - 0x10]
mov dword [0x1402c0064], 1
mov r8, rax
lea rdx, [rbp - 0x38]
lea rcx, [rbp + 0x28]
call fcn.1400cc420
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400ca5a0
nop
lea rcx, [rbp - 0x38]
call fcn.1400ca400
lea rcx, [rbp + 0x30]
call fcn.1400cb070
lea rcx, [rbp + 0x30]
call fcn.1400caf00
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.1400ca8d0
lea rdx, [0x1402c1640]
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx + rax], cl
inc rax
test cl, cl
jne 0x140085f60
jmp case.0x140085ece.71
inc ebx
movsxd rdx, ebx
add rdx, rdi
lea rcx, [rbp + 0x28]
call fcn.1400ca6a0
mov dl, 0x2f
lea rcx, [rbp + 0x28]
call fcn.1400cc020
test rax, rax
jns 0x140085f9b
mov rax, qword [rbp + 0x28]
mov rax, qword [rax - 0x10]
mov dword [0x1402bff54], 1
mov r8, rax
lea rdx, [rbp - 0x30]
lea rcx, [rbp + 0x28]
call fcn.1400cc420
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400ca5a0
nop
lea rcx, [rbp - 0x30]
call fcn.1400ca400
lea rcx, [rbp + 0x30]
call fcn.1400cb070
lea rcx, [rbp + 0x30]
call fcn.1400caf00
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.1400ca8d0
lea rdx, [0x1402c1530]
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx + rax], cl
inc rax
test cl, cl
jne 0x140086000
jmp case.0x140085ece.71
inc ebx
movsxd rdx, ebx
add rdx, rdi
lea rcx, [rbp + 0x28]
call fcn.1400ca6a0
mov dl, 0x2f
lea rcx, [rbp + 0x28]
call fcn.1400cc020
test rax, rax
jns 0x14008603b
mov rax, qword [rbp + 0x28]
mov rax, qword [rax - 0x10]
mov dword [0x1402c0174], 1
mov r8, rax
lea rdx, [rbp - 0x28]
lea rcx, [rbp + 0x28]
call fcn.1400cc420
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400ca5a0
nop
lea rcx, [rbp - 0x28]
call fcn.1400ca400
lea rcx, [rbp + 0x30]
call fcn.1400cb070
lea rcx, [rbp + 0x30]
call fcn.1400caf00
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.1400ca8d0
lea rdx, [0x1402c1750]
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx + rax], cl
inc rax
test cl, cl
jne 0x1400860a0
inc ebx
movsxd rdx, ebx
add rdx, rdi
lea rcx, [rbp + 0x28]
call fcn.1400ca6a0
mov dl, 0x2f
lea rcx, [rbp + 0x28]
call fcn.1400cc020
test rax, rax
jns 0x1400860d6
mov rax, qword [rbp + 0x28]
mov rax, qword [rax - 0x10]
mov r8, rax
lea rdx, [rbp - 0x20]
lea rcx, [rbp + 0x28]
call fcn.1400cc420
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400ca5a0
nop
lea rcx, [rbp - 0x20]
call fcn.1400ca400
lea rcx, [rbp + 0x30]
call fcn.1400cb070
lea rcx, [rbp + 0x30]
call fcn.1400caf00
mov edx, 1
lea rcx, [rbp + 0x30]
call fcn.1400ca8d0
lea rdx, [0x1402c1860]
sub rdx, rax
nop word [rax + rax]
movzx ecx, byte [rax]
mov byte [rdx + rax], cl
inc rax
test cl, cl
jne 0x140086130
inc ebx
movsxd rax, ebx
add rax, rdi
cmp byte [rax], 0
jne 0x140085cf0
lea rcx, [rbp + 0x30]
call fcn.1400ca400
nop
lea rcx, [rbp + 0x28]
call fcn.1400ca400
add rsp, 0x58
pop rdi
pop rsi
pop rbx
pop rbp
ret