Function at 0x180632634
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
cmp byte [0x1806361b8], 1
jne 0x180632686
mov rcx, qword [0x1806361c0]
xor r8d, r8d
call qword [fcn.1806361c8]
mov al, 1
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
mov rdi, rcx
movsxd rax, dword [rcx + 0x3c]
mov eax, dword [rax + rcx + 0x54]
mov r15, qword [rcx + rax - 0x28]
add r15, rcx
mov rcx, qword [rcx + rax - 0x20]
mov r12, qword [rdi + rax - 0x18]
mov rbx, qword [rdi + rax - 0x10]
mov rax, qword [rdi + rax - 8]
lea r11, [r12 + 7]
and r11, 0xfffffffffffffff8
mov rsi, r15
test r11, r11
je 0x1806326ec
test rsi, rsi
je 0x1806326ec
lea r8, [rsi + 8]
add r11, 0xfffffffffffffff8
mov qword [rsp + 0x30], rax
xor r9d, r9d
cmp r9, 8
je 0x1806326e7
mov r10b, byte [rsp + r9 + 0x30]
xor byte [rsi + r9], r10b
inc r9
jmp 0x1806326d3
mov rsi, r8
jmp 0x1806326b9
test rcx, rcx
mov dword [rsp + 0x74], edx
mov qword [rsp + 0x78], rdi
mov qword [rsp + 0x68], rbx
je 0x180632724
js 0x180632cc8
mov edx, 1
mov rbx, rcx
call fcn.180632db0
mov qword [rsp + 0x28], rax
test rax, rax
jne 0x180632731
mov rcx, rbx
jmp 0x180632cc1
mov rbx, rcx
mov eax, 1
mov qword [rsp + 0x28], rax
mov ecx, 0x536
call fcn.180632ecd
mov rbp, rax
mov rdi, rdx
mov ecx, 0x192
call fcn.180632ecd
mov r14, 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.1806325c6
test rax, rax
je 0x180632cbc
mov r13, rax
mov qword [rax + 0x18], rbp
mov qword [rax + 0x20], rdi
mov qword [rax + 0x28], 0x536
mov qword [rax + 0x30], r14
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.180636121
lea r9, [rsp + 0xb8]
movzx eax, word [r9 - 8]
mov word [r13 + 0x176], ax
mov qword [rsp + 0x80], r13
mov byte [r13 + 0x18c], 1
and dword [r13 + 8], 0
and dword [r13], 0
and word [r13 + 0x18d], 0
movups xmmword [r13 + 0x48], xmm6
and dword [r13 + 0x188], 0
movups xmmword [r13 + 0x178], xmm6
mov qword [r9 - 8], r13
mov rbp, qword [rsp + 0x28]
mov qword [r9], rbp
mov r14, rbx
mov qword [r9 + 8], rbx
and qword [r9 + 0x10], 0
mov byte [r9 + 0x18], sil
mov byte [rsp + 0x20], sil
mov rcx, r13
mov rdx, r15
mov r8, r12
call fcn.180632f04
cmp al, 4
jne 0x180632890
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 0x18063289f
mov rbx, qword [rsp + 0x78]
jmp 0x1806328d4
lea rcx, [rsp + 0xb0]
call fcn.180635fe9
jmp 0x1806328e3
mov al, 1
lea r9, [rsp + 0x38]
mov byte [r9 + 0x18], al
mov rcx, qword [r9 - 8]
mov byte [rsp + 0x20], al
lea rdx, [0x1806362d0]
xor r8d, r8d
call fcn.180632f04
cmp al, 4
mov rbx, qword [rsp + 0x78]
jne 0x1806328d4
mov rax, qword [rsp + 0x30]
mov esi, dword [rax]
mov edi, dword [rax + 4]
lea rcx, [rsp + 0x30]
call fcn.180635fe9
cmp esi, 2
jne 0x1806328fd
lea rcx, [rsp + 0x80]
call fcn.180632089
mov rcx, rbp
mov rdx, r14
call fcn.18063206f
jmp 0x1806328fb
lea rcx, [rsp + 0x80]
call fcn.180632089
test esi, esi
cmove edi, esi
cmp qword [rsp + 0x68], rdi
jne 0x1806328f0
lea rsi, [rsp + 0x30]
movabs rdx, 0x7d52b10b2b6fca23
mov rcx, rsi
call fcn.180632104
cmp byte [rsi], 0
jne 0x18063299b
lea rdi, [rsp + 0x30]
mov rsi, qword [rdi + 8]
movabs r8, 0x69d265fe6b1c110f
mov rcx, rdi
mov rdx, rsi
call fcn.1806321e9
cmp byte [rdi], 0
jne 0x18063299b
lea rdi, [rsp + 0x30]
mov r15, qword [rdi + 8]
movabs r8, 0x578960f1fc7fff25
mov rcx, rdi
mov rdx, rsi
call fcn.1806321e9
cmp byte [rdi], 0
jne 0x18063299b
lea rdi, [rsp + 0x30]
mov r12, qword [rdi + 8]
movabs r8, 0xed1006223abbbd53
mov rcx, rdi
mov rdx, rsi
call fcn.1806321e9
cmp byte [rdi], 0
je 0x1806329bd
mov al, byte [rsp + 0x31]
movzx r12d, al
mov rcx, rbp
mov rdx, r14
call fcn.18063206f
cmp r12b, 3
jne 0x1806328fb
jmp 0x180632668
test r15, r15
je 0x1806329a3
mov qword [rsp + 0xa8], r15
mov qword [rsp + 0x60], r14
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x68], rax
movsxd r14, dword [rbp + 0x3c]
mov rax, rbp
add rbp, r14
add rbp, 0x11c
add r14, 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 + 0x70], eax
mov esi, dword [rbp - 0x6c]
mov r13d, dword [rbp - 0x68]
movzx eax, word [rbp - 0x116]
imul r15, rax, 0x28
xor edi, edi
cmp r15, rdi
je 0x180632a7f
mov edx, dword [rbp + rdi]
test rdx, rdx
je 0x180632a79
mov r8d, dword [rbp + rdi - 4]
test r8d, r8d
je 0x180632a79
add r8d, edx
cmp r8d, edx
jb 0x180632cd6
cmp qword [rsp + 0x60], r8
jb 0x180632cde
sub r8, rdx
add rdx, qword [rsp + 0x28]
mov ecx, dword [rbp + rdi - 8]
add rcx, rbx
call fcn.180636055
add rdi, 0x28
jmp 0x180632a36
test r13d, r13d
mov rcx, qword [rsp + 0x98]
je 0x180632b21
cmp rcx, rbx
je 0x180632b21
test esi, esi
je 0x180632b21
mov rax, rbx
sub rax, rcx
lea rcx, [rsi + rbx]
mov rdx, rax
shr rdx, 0x30
lea r8, [0x180632cf0]
cmp dword [rcx], 0
je 0x180632b21
mov r9d, dword [rcx + 4]
add r9, 0xfffffffffffffff8
shr r9, 1
xor r10d, r10d
cmp r9, r10
je 0x180632b18
movzx r11d, word [rcx + r10*2 + 8]
mov esi, r11d
shr esi, 0xc
cmp esi, 0xa
ja case.0x180632af9.5
and r11d, 0xfff
add r11, rbx
mov edi, dword [rcx]
movsxd rsi, dword [r8 + rsi*4]
add rsi, r8
jmp rsi
add word [rdi + r11], dx
jmp case.0x180632af9.0
add word [rdi + r11], ax
jmp case.0x180632af9.0
add dword [rdi + r11], eax
jmp case.0x180632af9.0
add qword [rdi + r11], rax
inc r10
jmp 0x180632acc
mov r9d, dword [rcx + 4]
add rcx, r9
jmp 0x180632ab9
mov rax, qword [rsp + 0x88]
test eax, eax
je 0x180632bdc
cmp dword [rsp + 0x70], 0
je 0x180632bdc
add rax, rbx
xor esi, esi
mov qword [rsp + 0xa0], r14
imul r13, rsi, 0x14
mov edi, dword [rax + r13]
test rdi, rdi
je 0x180632bdc
mov r14, rax
add r13, rax
mov ecx, dword [r13 + 0xc]
add rcx, rbx
call qword [rsp + 0xa8]
mov r15, rax
test rax, rax
jne 0x180632b7d
mov al, byte [0x2000]
add rdi, rbx
mov r13d, dword [r13 + 0x10]
add r13, rbx
xor ebp, ebp
mov rax, qword [rdi + rbp*8]
test rax, rax
je 0x180632bc9
js 0x180632baa
lea rdx, [rax + rbx]
add rdx, 2
mov rax, rdx
cmp byte [rax], 0
lea rax, [rax + 1]
jne 0x180632b9f
jmp 0x180632bad
movzx edx, ax
mov rcx, r15
call r12
test rax, rax
jne 0x180632bbf
mov cl, byte [0x3000]
mov qword [r13 + rbp*8], rax
inc rbp
jmp 0x180632b89
inc rsi
mov rax, r14
mov r14, qword [rsp + 0xa0]
jmp 0x180632b49
movzx eax, word [r14 + 6]
add r14, 0x110
imul rsi, rax, 0x28
xor edi, edi
mov ebp, 1
mov r12d, 2
lea r15, [rsp + 0x30]
mov r13d, 0x40
cmp rsi, rdi
je 0x180632c7c
mov eax, dword [r14 + rdi + 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 0x180632c52
test r8b, 2
jne 0x180632c4a
and eax, 0x60000000
or r8d, 4
cmp eax, 0x60000000
cmove r8d, r13d
jmp 0x180632c52
and r8d, 0xfffffff1
or r8d, 4
mov edx, dword [r14 + rdi]
mov ecx, dword [r14 + rdi + 4]
add rcx, rbx
and dword [rsp + 0x30], 0
mov r9, r15
call qword [rsp + 0x68]
cmp eax, 1
je 0x180632c76
mov al, byte [0x1000]
add rdi, 0x28
jmp 0x180632c04
mov rsi, qword [rsp + 0x90]
add rsi, rbx
mov byte [0x1806361b8], 1
mov qword [0x1806361c0], rbx
mov qword [fcn.1806361c8], rsi
mov rcx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0x60]
call fcn.18063206f
mov rcx, rbx
mov edx, dword [rsp + 0x74]
xor r8d, r8d
call rsi
jmp 0x180632668
mov ecx, 0x190
call fcn.180632dd0
ud2
call fcn.180632de0
ud2
call fcn.1806361a0
ud2
mov rcx, rdx
mov rdx, r8
jmp 0x180632ce6
mov rcx, r8
mov rdx, qword [rsp + 0x60]
call fcn.1806361a0
ud2