Function at 0x14002e634
Capabilities:
Check os version
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xf8
movaps xmmword [rsp + 0xe0], xmm6
xor r11, r11
add r11, 0x5f
inc r11
mov rax, qword gs:[r11]
xor r10, r10
mov r10, 0x11
dec r10
mov rax, qword ds:[rax + r10]
movsxd rcx, dword [rax + 0x3c]
mov edx, dword [rax + rcx + 0x138]
mov r14d, dword [rax + rcx + 0x13c]
add r14, rax
mov rcx, qword [rdx + r14 - 0x20]
mov r15, qword [rdx + r14 - 0x18]
mov rdi, qword [rdx + r14 - 0x10]
mov rsi, qword [rdx + r14 - 8]
lea r11, [r15 + 7]
and r11, 0xfffffffffffffff8
mov rdx, r14
test r11, r11
je 0x14002e6d7
test rdx, rdx
je 0x14002e6d7
lea r8, [rdx + 8]
add r11, 0xfffffffffffffff8
mov qword [rsp + 0x30], rsi
xor r9d, r9d
cmp r9, 8
je 0x14002e6d2
mov r10b, byte [rsp + r9 + 0x30]
xor byte [rdx + r9], r10b
inc r9
jmp 0x14002e6be
mov rdx, r8
jmp 0x14002e6a4
test rcx, rcx
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x68], rdi
je 0x14002e70b
js 0x14002ecb2
mov edx, 1
mov rdi, rcx
call fcn.14002edb0
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x14002e718
mov rcx, rdi
jmp 0x14002ecab
mov rdi, rcx
mov eax, 1
mov qword [rsp + 0x28], rax
mov ecx, 0x536
call fcn.14002eebd
mov r13, rax
mov rbp, rdx
mov ecx, 0x192
call fcn.14002eebd
mov rbx, rax
mov rsi, rdx
xorps xmm6, xmm6
movups xmmword [rsp + 0x32], xmm6
and dword [rsp + 0x42], 0
movups xmm0, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0xb0], xmm0
mov rax, qword [rsp + 0x3e]
mov qword [rsp + 0xbe], rax
mov eax, 0x30
mov rax, qword gs:[eax]
mov rax, qword [rax + 0x60]
mov rcx, qword [rax + 0x30]
mov r8d, 0x190
xor edx, edx
call fcn.14002e5c6
test rax, rax
je 0x14002eca6
mov r12, rax
mov qword [rax + 0x18], r13
mov qword [rax + 0x20], rbp
mov qword [rax + 0x28], 0x536
mov qword [rax + 0x30], rbx
mov qword [rax + 0x38], rsi
mov qword [rax + 0x40], 0x192
mov rcx, rax
add rcx, 0x58
xor esi, esi
mov r8d, 0x11e
xor edx, edx
call fcn.140032111
lea r9, [rsp + 0xb8]
movzx eax, word [r9 - 8]
mov word [r12 + 0x176], ax
mov qword [rsp + 0x80], r12
mov byte [r12 + 0x18c], 1
and dword [r12 + 8], 0
and dword [r12], 0
and word [r12 + 0x18d], 0
movups xmmword [r12 + 0x48], xmm6
and dword [r12 + 0x188], 0
movups xmmword [r12 + 0x178], xmm6
mov qword [r9 - 8], r12
mov rbp, qword [rsp + 0x28]
mov qword [r9], rbp
mov r13, rdi
mov qword [r9 + 8], rdi
and qword [r9 + 0x10], 0
mov byte [r9 + 0x18], sil
mov byte [rsp + 0x20], sil
mov rcx, r12
mov rdx, r14
mov r8, r15
call fcn.14002eef4
cmp al, 4
jne 0x14002e87e
mov rax, qword [rsp + 0xd0]
mov qword [rsp + 0x50], rax
movups xmm0, xmmword [rsp + 0xb0]
movups xmm1, xmmword [rsp + 0xc0]
movaps xmmword [rsp + 0x40], xmm1
movaps xmmword [rsp + 0x30], xmm0
mov esi, 2
test al, al
je 0x14002e88d
mov rdi, qword [rsp + 0x78]
jmp 0x14002e8c2
lea rcx, [rsp + 0xb0]
call fcn.140031fd9
jmp 0x14002e8d1
mov al, 1
lea r9, [rsp + 0x38]
mov byte [r9 + 0x18], al
mov rcx, qword [r9 - 8]
mov byte [rsp + 0x20], al
lea rdx, [0x1400322a8]
xor r8d, r8d
call fcn.14002eef4
cmp al, 4
mov rdi, qword [rsp + 0x78]
jne 0x14002e8c2
mov rax, qword [rsp + 0x30]
mov esi, dword [rax]
mov ebx, dword [rax + 4]
lea rcx, [rsp + 0x30]
call fcn.140031fd9
cmp esi, 2
jne 0x14002e8eb
lea rcx, [rsp + 0x80]
call fcn.14002e089
mov rcx, rbp
mov rdx, r13
call fcn.14002e06f
jmp 0x14002e8e9
lea rcx, [rsp + 0x80]
call fcn.14002e089
test esi, esi
cmove ebx, esi
cmp qword [rsp + 0x68], rbx
jne 0x14002e8de
lea rsi, [rsp + 0x30]
movabs rdx, 0x7d52b10b2b6fca23
mov rcx, rsi
call fcn.14002e104
cmp byte [rsi], 0
jne 0x14002e989
lea rbx, [rsp + 0x30]
mov rsi, qword [rbx + 8]
movabs r8, 0x69d265fe6b1c110f
mov rcx, rbx
mov rdx, rsi
call fcn.14002e1e9
cmp byte [rbx], 0
jne 0x14002e989
lea rbx, [rsp + 0x30]
mov r14, qword [rbx + 8]
movabs r8, 0x578960f1fc7fff25
mov rcx, rbx
mov rdx, rsi
call fcn.14002e1e9
cmp byte [rbx], 0
jne 0x14002e989
lea rbx, [rsp + 0x30]
mov r12, qword [rbx + 8]
movabs r8, 0xed1006223abbbd53
mov rcx, rbx
mov rdx, rsi
call fcn.14002e1e9
cmp byte [rbx], 0
je 0x14002e9c4
mov al, byte [rsp + 0x31]
movzx r12d, al
mov rcx, rbp
mov rdx, r13
call fcn.14002e06f
cmp r12b, 3
jne 0x14002e8e9
xor eax, eax
movaps xmm6, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
test r14, r14
je 0x14002e991
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0x60], r13
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x68], rax
movsxd rbx, dword [rbp + 0x3c]
mov rax, rbp
add rbp, rbx
add rbp, 0x11c
add rbx, rax
mov eax, dword [rbp - 0xf4]
mov qword [rsp + 0x90], rax
mov rax, qword [rbp - 0xec]
mov qword [rsp + 0x98], rax
mov eax, dword [rbp - 0x8c]
mov qword [rsp + 0x88], rax
mov eax, dword [rbp - 0x88]
mov dword [rsp + 0x74], eax
mov esi, dword [rbp - 0x6c]
mov r13d, dword [rbp - 0x68]
movzx eax, word [rbp - 0x116]
imul r14, rax, 0x28
xor r15d, r15d
cmp r14, r15
je 0x14002ea89
mov edx, dword [rbp + r15]
test rdx, rdx
je 0x14002ea83
mov r8d, dword [rbp + r15 - 4]
test r8d, r8d
je 0x14002ea83
add r8d, edx
cmp r8d, edx
jb 0x14002ecc0
cmp qword [rsp + 0x60], r8
jb 0x14002ecc8
sub r8, rdx
add rdx, qword [rsp + 0x28]
mov ecx, dword [rbp + r15 - 8]
add rcx, rdi
call fcn.140032045
add r15, 0x28
jmp 0x14002ea3e
test r13d, r13d
mov rcx, qword [rsp + 0x98]
je 0x14002eb2c
cmp rdi, rcx
je 0x14002eb2c
test esi, esi
je 0x14002eb2c
mov rax, rdi
sub rax, rcx
lea rcx, [rsi + rdi]
mov rdx, rax
shr rdx, 0x30
lea r8, [0x14002ecd8]
cmp dword [rcx], 0
je 0x14002eb2c
mov r9d, dword [rcx + 4]
add r9, 0xfffffffffffffff8
shr r9, 1
xor r10d, r10d
cmp r9, r10
je 0x14002eb23
movzx r11d, word [rcx + r10*2 + 8]
mov esi, r11d
shr esi, 0xc
cmp esi, 0xa
ja case.0x14002eb04.5
and r11d, 0xfff
add r11, rdi
mov r14d, dword [rcx]
movsxd rsi, dword [r8 + rsi*4]
add rsi, r8
jmp rsi
add word [r14 + r11], dx
jmp case.0x14002eb04.0
add word [r14 + r11], ax
jmp case.0x14002eb04.0
add dword [r14 + r11], eax
jmp case.0x14002eb04.0
add qword [r14 + r11], rax
inc r10
jmp 0x14002ead6
mov r9d, dword [rcx + 4]
add rcx, r9
jmp 0x14002eac3
mov rax, qword [rsp + 0x88]
test eax, eax
je 0x14002ebe8
cmp dword [rsp + 0x74], 0
je 0x14002ebe8
add rax, rdi
xor r15d, r15d
mov qword [rsp + 0xa0], rbx
imul r13, r15, 0x14
mov esi, dword [rax + r13]
test rsi, rsi
je 0x14002ebe8
mov rbx, rax
add r13, rax
mov ecx, dword [r13 + 0xc]
add rcx, rdi
call qword [rsp + 0xa8]
mov r14, rax
test rax, rax
jne 0x14002eb89
mov al, byte [0x2000]
add rsi, rdi
mov r13d, dword [r13 + 0x10]
add r13, rdi
xor ebp, ebp
mov rax, qword [rsi + rbp*8]
test rax, rax
je 0x14002ebd5
js 0x14002ebb6
lea rdx, [rax + rdi]
add rdx, 2
mov rax, rdx
cmp byte [rax], 0
lea rax, [rax + 1]
jne 0x14002ebab
jmp 0x14002ebb9
movzx edx, ax
mov rcx, r14
call r12
test rax, rax
jne 0x14002ebcb
mov cl, byte [0x3000]
mov qword [r13 + rbp*8], rax
inc rbp
jmp 0x14002eb95
inc r15
mov rax, rbx
mov rbx, qword [rsp + 0xa0]
jmp 0x14002eb55
movzx eax, word [rbx + 6]
add rbx, 0x110
imul rsi, rax, 0x28
xor r15d, r15d
mov ebp, 1
mov r12d, 2
lea r14, [rsp + 0x30]
mov r13d, 0x40
cmp rsi, r15
je 0x14002ec88
mov eax, dword [rbx + r15 + 0x1c]
bt eax, 0x1d
mov ecx, 0x10
cmovae ecx, ebp
mov r8d, 0x20
cmovae r8d, r12d
bt eax, 0x1e
cmovae r8d, ecx
test eax, eax
jns 0x14002ec5e
test r8b, 2
jne 0x14002ec56
and eax, 0x60000000
or r8d, 4
cmp eax, 0x60000000
cmove r8d, r13d
jmp 0x14002ec5e
and r8d, 0xfffffff1
or r8d, 4
mov edx, dword [rbx + r15]
mov ecx, dword [rbx + r15 + 4]
add rcx, rdi
and dword [rsp + 0x30], 0
mov r9, r14
call qword [rsp + 0x68]
cmp eax, 1
je 0x14002ec82
mov al, byte [0x1000]
add r15, 0x28
jmp 0x14002ec10
add rdi, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x60]
call fcn.14002e06f
call rdi
jmp 0x14002e9a6
mov ecx, 0x190
call fcn.14002edd0
ud2
call fcn.14002ed10
ud2
call fcn.140032190
ud2
mov rcx, rdx
mov rdx, r8
jmp 0x14002ecd0
mov rcx, r8
mov rdx, qword [rsp + 0x60]
call fcn.140032190
ud2