Function at 0x14018d390
Capabilities:
Check os version

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xa8
mov rsi, rcx
mov eax, dword [rsp + 0x118]
mov r10, qword [rsp + 0x110]
mov rcx, qword [0x1404a7eb8]
xor rcx, rsp
mov qword [rsp + 0xa0], rcx
mov rcx, qword [r10 + 8]
cmp rcx, qword [0x1404a6c80]
je 0x14018d3de
mov r11, qword [rcx + 0xf]
cmp r11, 1
ja 0x14018d42d
cmp r8, 0x20
setge cl
mov r10, r8
xor r10, r9
or r10, rdx
setne r10b
or r10b, cl
jne 0x14018d407
lea rax, [0x1404ab520]
mov rax, qword [rax + r8*8]
jmp 0x14018d87f
mov dword [rsp + 0x28], eax
mov byte [rsp + 0x20], 1
mov rcx, rsi
call fcn.14018d920
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
call fcn.14029fd30
jmp 0x14018d896
mov qword [rsp + 0x68], rsi
mov rbp, r11
sar rbp, 1
mov r12, r8
sub r12, rbp
mov ecx, dword [0x1404b15b8]
mov r10, qword gs:[0x58]
mov rsi, qword [r10 + rcx*8]
mov rcx, qword [rsi + 8]
mov qword [rsp + 0x60], rcx
mov r13, qword [rcx + 0x18]
and r11, 0xfffffffffffffffe
mov qword [rsp + 0x58], r11
lea r10, [r11 + 5]
lea rcx, [rsp + 0x98]
mov r15, rdx
mov edx, 0x5a
mov r14, r8
mov r8, r10
mov rdi, r9
mov r9d, eax
call fcn.1401e5270
mov rdx, qword [rsp + 0x98]
mov rcx, r13
call fcn.1401604c0
mov rbx, rax
add r15, r15
mov rcx, r15
call fcn.140160580
mov rdx, qword [rbx + 8]
lea rcx, [rdx - 1]
mov r8, qword [rax + 8]
add rdx, 0x17
call fcn.14015e600
add r14, r14
mov rcx, r14
call fcn.140160580
mov rdx, qword [rbx + 8]
lea rcx, [rdx - 1]
mov r8, qword [rax + 8]
add rdx, 0x1f
call fcn.14015e600
add rdi, rdi
mov rcx, rdi
call fcn.140160580
mov rdx, qword [rbx + 8]
lea rcx, [rdx - 1]
mov r8, qword [rax + 8]
add rdx, 0x27
call fcn.14015e600
mov qword [rsp + 0x70], r12
lea rcx, [r12 + r12]
call fcn.140160580
mov rdx, qword [rbx + 8]
lea rcx, [rdx - 1]
mov r8, qword [rax + 8]
add rdx, 0x2f
call fcn.14015e600
mov rcx, r13
call fcn.140164ae0
mov rdi, rax
mov rcx, r13
call fcn.140165a80
mov r14, rax
mov rcx, r13
call fcn.140164ae0
mov rcx, r13
mov r13, rax
call fcn.140165a80
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x78], rbp
test rbp, rbp
jle 0x14018d82d
lea rax, [rsi + 8]
mov qword [rsp + 0x48], rax
mov esi, 6
mov r15d, 0x28
xor r12d, r12d
mov qword [rsp + 0x30], r14
mov qword [rsp + 0x88], rdi
jmp 0x14018d5f1
add rsi, 0xfffffffffffffffe
mov r14, qword [rsp + 0x30]
mov r15, qword [rsp + 0x40]
mov r12, qword [rsp + 0x38]
mov rcx, qword [rbx + 8]
mov r8, qword [rdi + 8]
lea rdx, [rcx + rsi*8]
add rdx, 0x17
dec rcx
call fcn.14015e600
mov rcx, qword [rbx + 8]
mov r8, qword [r14 + 8]
lea rdx, [rcx + rsi*8]
add rdx, 0x1f
dec rcx
call fcn.14015e600
inc r12
mov rsi, qword [rsp + 0x80]
add rsi, 2
add r15, 0x10
cmp r12, qword [rsp + 0x78]
je 0x14018d82d
mov rax, qword [rsp + 0x110]
mov rax, qword [rax + 8]
mov rax, qword [rax + r12*8 + 0x17]
mov qword [rdi + 8], rax
mov rax, qword [rsp + 0x70]
add rax, r12
add rax, rax
mov qword [r14 + 8], rax
test r12, r12
mov qword [rsp + 0x80], rsi
je 0x14018d820
mov qword [rsp + 0x38], r12
mov qword [rsp + 0x40], r15
jmp 0x14018d65d
mov rcx, rdi
mov rdx, rbp
call fcn.140225020
nop dword [rax]
add rsi, 0xfffffffffffffffe
add r15, 0xfffffffffffffff0
cmp rsi, 6
mov rdi, qword [rsp + 0x88]
mov r13, r12
jle 0x14018d590
mov rax, qword [rbx + 8]
mov rax, qword [rax + rsi*8 - 9]
mov qword [r13 + 8], rax
mov rcx, rdi
mov rdx, r13
call fcn.1401e13f0
test rax, rax
jg 0x14018d590
mov rax, qword [rbx + 8]
mov rax, qword [rax + rsi*8 - 1]
mov rcx, qword [rsp + 0x50]
mov qword [rcx + 8], rax
mov rax, qword [rbx + 8]
mov r12, r13
mov rbp, qword [r13 + 8]
mov qword [rax + rsi*8 + 7], rbp
test bpl, 1
je 0x14018d750
lea rcx, [rax - 1]
mov rdx, qword [rsp + 0x48]
mov rdi, qword [rdx]
mov r13, qword [rcx]
mov r14, qword [rbp - 1]
shr r13, 2
and r13, qword [rdi + 0x40]
and r13, r14
je 0x14018d750
test r13b, 8
je 0x14018d700
test qword [rcx], 1
jne 0x14018d723
lock btr qword [rcx], 5
jae 0x14018d700
or rcx, 1
mov rdx, rcx
mov rcx, rdi
call fcn.140224d20
nop word cs:[rax + rax]
test r13b, 4
je 0x14018d750
and r14d, 0xfffff000
cmp r14d, 0x14000
jne 0x14018d738
mov rcx, rdi
mov rdx, rbp
call fcn.140225020
jmp 0x14018d750
lea rdx, [rax + r15]
add rdx, 0xf
call fcn.140205a10
test r13b, 4
jne 0x14018d706
jmp 0x14018d750
lea rax, [rbp - 1]
lock btr qword [rax], 2
jae 0x14018d750
mov rcx, rdi
mov rdx, rbp
call fcn.140224f30
nop
mov rax, qword [rbx + 8]
mov rcx, qword [rsp + 0x50]
mov rbp, qword [rcx + 8]
mov qword [rax + rsi*8 + 0xf], rbp
test bpl, 1
je 0x14018d640
lea rcx, [rax - 1]
mov rdx, qword [rsp + 0x48]
mov rdi, qword [rdx]
mov r13, qword [rcx]
mov r14, qword [rbp - 1]
shr r13, 2
and r13, qword [rdi + 0x40]
and r13, r14
je 0x14018d640
test r13b, 8
je 0x14018d7c0
test qword [rcx], 1
jne 0x14018d7fe
lock btr qword [rcx], 5
jae 0x14018d7c0
or rcx, 1
mov rdx, rcx
mov rcx, rdi
call fcn.140224d20
nop word cs:[rax + rax]
test r13b, 4
je 0x14018d640
and r14d, 0xfffff000
cmp r14d, 0x14000
je 0x14018d632
lea rax, [rbp - 1]
lock btr qword [rax], 2
jae 0x14018d640
mov rcx, rdi
mov rdx, rbp
call fcn.140224f30
jmp 0x14018d640
lea rdx, [rax + r15]
add rdx, 0x17
call fcn.140205a10
test r13b, 4
je 0x14018d640
jmp 0x14018d7ca
lea rsi, [r12*2 + 4]
jmp 0x14018d5a3
mov rax, qword [0x1404abdc8]
mov rcx, qword [rbx + 8]
mov r8, qword [rax + 8]
mov rax, qword [rsp + 0x58]
lea rdx, [rcx + rax*8]
add rdx, 0x37
dec rcx
call fcn.14015e600
mov rcx, rbx
call fcn.1401d40a0
lea rdx, [rsp + 0x90]
mov rcx, rbx
mov r8, qword [rsp + 0x60]
call fcn.1401d91b0
mov rax, qword [rsp + 0x90]
mov qword [rbx + 8], rax
mov rsi, qword [rsp + 0x68]
mov qword [rsi], rax
mov rcx, qword [rsp + 0xa0]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x14018d8ad
mov rax, rsi
add rsp, 0xa8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
call fcn.14029fd30
int3