Function at 0x140020d10
Capabilities:
Check os version
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push rbp
push rsi
push rdi
push r13
sub rsp, 0xb8
mov rax, qword gs:[0x58]
mov ecx, 8
mov qword [rsp + 0xa8], r12
movaps xmmword [rsp + 0x60], xmm8
mov r13, qword [rax]
cmp byte [rcx + r13], 0
jne 0x140020d48
call fcn.140082398
mov qword [rsp + 0xb0], rbx
xor ebp, ebp
mov eax, 0x10
xorps xmm8, xmm8
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0x98], r15
mov rdi, qword [rax + r13]
mov r12d, dword [rdi + 0x3e6c]
shr r12d, 0xa
and r12b, 1
mov dword [rsp + 0xe0], r12d
je 0x140020fef
mov rsi, qword [rdi + 0x4c38]
mov r14d, ebp
movsxd rax, dword [rdi + 0x4c30]
lea r12, [rsi + rax*8]
cmp rsi, r12
je 0x140020fe7
nop word [rax + rax]
mov rbx, qword [rsi]
mov rax, qword [rdi + 0x3970]
movzx r15d, byte [rbx + 0x58]
test rax, rax
je 0x140020de2
test r15b, r15b
je 0x140020de2
mov rcx, rbx
call rax
mov ecx, dword [rbx + 4]
test al, al
je 0x140020ddb
bts ecx, 0xc
jmp 0x140020ddf
btr ecx, 0xc
mov dword [rbx + 4], ecx
mov rax, qword [rdi + 0x3968]
test rax, rax
je 0x140020e0f
test r15b, r15b
je 0x140020e0f
mov rcx, rbx
call rax
mov ecx, dword [rbx + 4]
test al, al
je 0x140020e08
bts ecx, 0xd
mov r14, rbx
jmp 0x140020e0c
btr ecx, 0xd
mov dword [rbx + 4], ecx
add rsi, 8
cmp rsi, r12
jne 0x140020db0
test r14, r14
je 0x140020fe7
mov edx, dword [rdi + 0x4c60]
mov r8d, dword [r14]
cmp edx, r8d
je 0x140020fb1
test dword [rdi + 0x61fc], 0x100
je 0x140020e4b
lea rcx, str._viewport__Focused_viewport_changed__08X_____08X__attempting_to_apply_our_focus._n
call fcn.14002cab0
mov ebx, dword [rdi + 0x4c60]
mov r8d, 8
cmp byte [r8 + r13], bpl
jne 0x140020e68
call fcn.140082398
mov r8d, 8
mov esi, 0x10
mov rax, qword [rsi + r13]
mov rcx, qword [rax + 0x4c38]
movsxd rax, dword [rax + 0x4c30]
lea rdx, [rcx + rax*8]
cmp rcx, rdx
je 0x140020ea4
nop dword [rax + rax]
mov rax, qword [rcx]
cmp dword [rax], ebx
je 0x140020f15
add rcx, 8
cmp rcx, rdx
jne 0x140020e90
mov bl, 1
mov eax, dword [rdi + 0x4ca0]
cmp dword [r14 + 0x70], eax
je 0x140020ebe
inc eax
mov dword [rdi + 0x4ca0], eax
mov dword [r14 + 0x70], eax
mov eax, dword [r14]
mov dword [rdi + 0x4c60], eax
cmp byte [r8 + r13], bpl
jne 0x140020ed8
call fcn.140082398
mov r8d, 8
mov rcx, qword [rsi + r13]
mov rax, rbp
nop
cmp byte [rcx + rax + 0xe58], bpl
jne 0x140020fb1
inc rax
cmp rax, 5
jl 0x140020ee0
test bl, bl
jne 0x140020fb1
mov rax, qword [rdi + 0x4ca8]
test rax, rax
je 0x140020f26
cmp qword [rax + 0x40], r14
jne 0x140020f26
mov al, 1
jmp 0x140020f28
cmp byte [rax + 0x58], bpl
je 0x140020ea4
xor bl, bl
jmp 0x140020ea6
xor al, al
or al, byte [r14 + 0x88]
mov rcx, qword [r14 + 0x60]
mov byte [r14 + 0x88], al
test rcx, rcx
jne 0x140020fa7
test al, al
je 0x140020fa5
cmp byte [r8 + r13], bpl
jne 0x140020f4e
call fcn.140082398
mov rcx, qword [rsi + r13]
mov eax, dword [rcx + 0x40f8]
sub eax, 1
js 0x140020fa0
movsxd rdx, eax
mov rax, qword [rcx + 0x4100]
lea r8, [rax + rdx*8]
nop dword [rax + rax]
mov rcx, qword [r8]
test rcx, rcx
je 0x140020f96
cmp byte [rcx + 0xf4], bpl
je 0x140020f96
cmp qword [rcx + 0x40], r14
jne 0x140020f96
mov eax, dword [rcx + 0x14]
and eax, 0x10200
cmp eax, 0x10200
jne 0x140020fa7
sub r8, 8
sub rdx, 1
jns 0x140020f70
mov rcx, rbp
jmp 0x140020fa7
xor ecx, ecx
mov edx, 3
call fcn.140012cc0
mov rax, qword [rdi + 0x4ca8]
test rax, rax
je 0x140020fc7
cmp qword [rax + 0x40], r14
jne 0x140020fc7
mov al, 1
jmp 0x140020fc9
xor al, al
mov r12d, dword [rsp + 0xe0]
lea r15, [rdi + 0x4c38]
mov byte [r14 + 0x88], al
mov rax, qword [r15]
mov rdx, qword [rax]
jmp 0x14002100e
mov r12d, dword [rsp + 0xe0]
lea r15, [rdi + 0x4c38]
mov rax, qword [r15]
mov qword [rsp + 0x30], r15
mov rdx, qword [rax]
mov qword [rsp + 0xe8], rdx
test r12b, r12b
je 0x14002106c
mov rax, qword [rdi + 0x3948]
lea rcx, [rsp + 0xe8]
mov rbx, rdx
mov qword [rsp + 0x30], r15
call rax
test dword [rbx + 4], 0x1000
movsd xmm1, qword [rdi + 0x10]
movsd xmm0, qword [rax]
movsd qword [rsp + 0xf8], xmm0
movsd qword [rsp + 0xf0], xmm1
mov qword [rsp + 0xe8], rbx
je 0x140021097
movsd xmm0, qword [rbx + 8]
movsd xmm1, qword [rbx + 0x10]
mov qword [rsp + 0x30], r15
mov qword [rsp + 0xe8], rbx
jmp 0x140021085
movsd xmm1, qword [rdi + 0x10]
lea rax, [rsp + 0xf0]
mov qword [rsp + 0xf0], rbp
movsd xmm0, qword [rax]
movsd qword [rsp + 0xf0], xmm1
movsd qword [rsp + 0xf8], xmm0
lea r9, [rsp + 0xf0]
mov dword [rsp + 0x20], 0x804
lea r8, [rsp + 0xf8]
mov edx, 0x11111111
xor ecx, ecx
call fcn.1400217c0
mov esi, ebp
mov dword [rdi + 0x4c40], ebp
mov qword [rdi + 0x4c48], rbp
mov qword [rdi + 0x4c50], rbp
cmp dword [rdi + 0x4c30], ebp
jle 0x1400213d6
movaps xmmword [rsp + 0x80], xmm6
mov r14, rbp
movaps xmmword [rsp + 0x50], xmm9
movss xmm9, dword [0x1400add1c]
movaps xmmword [rsp + 0x70], xmm7
nop dword [rax]
mov rax, qword [r15]
mov rbx, qword [r14 + rax]
mov dword [rbx + 0x68], esi
test esi, esi
jle 0x14002112f
mov eax, dword [rdi + 0x40a0]
sub eax, 2
cmp dword [rbx + 0x6c], eax
jge 0x14002112f
mov rcx, rbx
call fcn.140021b90
dec esi
sub r14, 8
jmp 0x1400213a9
movzx r15d, byte [rbx + 0x58]
test r12b, r12b
je 0x1400211bf
test dword [rbx + 4], 0x1000
jne 0x1400211bf
test r15b, r15b
je 0x1400211bf
cmp byte [rbx + 0x59], bpl
je 0x140021185
mov rdx, rbx
lea rcx, [rsp + 0xf0]
call qword [rdi + 0x3948]
movss xmm0, dword [rax]
movss xmm1, dword [rax + 4]
movss dword [rbx + 0x108], xmm0
movss dword [rbx + 0x10c], xmm1
movss dword [rbx + 8], xmm0
movss dword [rbx + 0xc], xmm1
cmp byte [rbx + 0x5a], bpl
je 0x1400211bf
mov rdx, rbx
lea rcx, [rsp + 0xf8]
call qword [rdi + 0x3958]
movss xmm0, dword [rax]
movss xmm1, dword [rax + 4]
movss dword [rbx + 0x110], xmm0
movss dword [rbx + 0x114], xmm1
movss dword [rbx + 0x10], xmm0
movss dword [rbx + 0x14], xmm1
movss xmm0, dword [rbx + 8]
lea rcx, [rsp + 0x38]
movss xmm1, dword [rbx + 0xc]
movss dword [rsp + 0x38], xmm0
addss xmm0, dword [rbx + 0x10]
movss dword [rsp + 0x3c], xmm1
addss xmm1, dword [rbx + 0x14]
movss dword [rsp + 0x40], xmm0
movss dword [rsp + 0x44], xmm1
call fcn.140022b40
test dword [rbx + 4], 0x800
lea rdx, [rbx + 0x78]
movsd xmm4, qword [rbx + 0x130]
movsd xmm3, qword [rbx + 0x138]
movaps xmm0, xmm4
movss xmm6, dword [rbx + 0xc]
movaps xmm2, xmm4
movss xmm5, dword [rbx + 8]
movaps xmm1, xmm6
shufps xmm0, xmm0, 0x55
addss xmm2, xmm5
addss xmm1, xmm0
mov word [rbx + 0x8a], ax
movss xmm0, dword [rbx + 0x10]
subss xmm0, xmm4
mov qword [rbx + 0x138], rbp
mov qword [rbx + 0x130], rbp
movss dword [rbx + 0x18], xmm2
movaps xmm2, xmm8
movss dword [rbx + 0x1c], xmm1
movss xmm1, dword [rbx + 0x14]
addss xmm0, xmm3
movsd qword [rbx + 0x128], xmm3
movsd qword [rbx + 0x120], xmm4
maxss xmm2, xmm0
movaps xmm0, xmm4
shufps xmm0, xmm0, 0x55
subss xmm1, xmm0
movaps xmm0, xmm8
addss xmm1, dword [rbx + 0x12c]
movss dword [rbx + 0x20], xmm2
mov dword [rbx + 0x80], 0x3f800000
maxss xmm0, xmm1
movss dword [rbx + 0x24], xmm0
subss xmm5, dword [rdx]
subss xmm6, dword [rdx + 4]
je 0x1400212ce
ucomiss xmm5, xmm8
jp 0x1400212c2
jne 0x1400212c2
ucomiss xmm6, xmm8
jp 0x1400212c2
je 0x1400212ce
lea r8, [rbx + 8]
mov rcx, rbx
call fcn.140020950
mov rax, qword [rdi + 0x39a0]
test rax, rax
je 0x1400212e9
test r15b, r15b
je 0x1400212e9
mov rcx, rbx
call rax
movaps xmm7, xmm0
jmp 0x14002131e
movsx rax, word [rbx + 0x8a]
cmp ax, 0xffff
je 0x14002130d
lea rcx, [rax + rax*2]
mov rax, qword [rdi + 0x39e8]
add rcx, rcx
movss xmm7, dword [rax + rcx*8 + 0x20]
jmp 0x14002131e
movss xmm7, dword [rbx + 0x28]
ucomiss xmm7, xmm8
jp 0x14002131e
jne 0x14002131e
movaps xmm7, xmm9
movss xmm0, dword [rbx + 0x28]
ucomiss xmm0, xmm8
jp 0x14002132b
je 0x14002139f
ucomiss xmm7, xmm0
jp 0x140021332
je 0x14002139f
test dword [rdi + 8], 0x4000
movaps xmm6, xmm7
divss xmm6, xmm0
je 0x14002139f
mov eax, 8
cmp byte [rax + r13], bpl
jne 0x140021352
call fcn.140082398
mov rcx, qword [rbx + 0x60]
mov eax, 0x10
mov rax, qword [rax + r13]
test rcx, rcx
je 0x14002136e
movaps xmm1, xmm6
call fcn.140008f20
jmp 0x14002139f
mov rdx, qword [rax + 0x40f0]
movsxd rax, dword [rax + 0x40e8]
lea r8, [rdx + rax*8]
cmp rdx, r8
je 0x14002139f
mov rcx, qword [rdx]
cmp qword [rcx + 0x40], rbx
jne 0x140021396
movaps xmm1, xmm6
call fcn.140008f20
add rdx, 8
cmp rdx, r8
jne 0x140021385
mov r15, qword [rsp + 0x30]
movss dword [rbx + 0x28], xmm7
mov r12d, dword [rsp + 0xe0]
inc esi
add r14, 8
cmp esi, dword [rdi + 0x4c30]
jl 0x140021100
movaps xmm9, xmmword [rsp + 0x50]
movaps xmm7, xmmword [rsp + 0x70]
movaps xmm6, xmmword [rsp + 0x80]
movaps xmm8, xmmword [rsp + 0x60]
mov r15, qword [rsp + 0x98]
mov r14, qword [rsp + 0xa0]
mov r12, qword [rsp + 0xa8]
mov rcx, qword [rsp + 0xe8]
cmp dword [rdi + 0x39e0], ebp
jne 0x140021441
movsd xmm0, qword [rcx + 8]
movsd qword [rdi + 0x4c68], xmm0
movsd xmm1, qword [rcx + 0x10]
movsd qword [rdi + 0x4c70], xmm1
movsd xmm0, qword [rcx + 0x18]
movsd qword [rdi + 0x4c78], xmm0
movsd xmm1, qword [rcx + 0x20]
movsd qword [rdi + 0x4c80], xmm1
mov eax, dword [rcx + 0x28]
mov dword [rdi + 0x4c88], eax
cmp byte [rsp + 0xe0], bpl
jne 0x140021457
mov qword [rdi + 0x4c50], rcx
jmp 0x14002159e
test dword [rdi + 0xc], 0x800
je 0x1400214be
mov esi, dword [rdi + 0xe6c]
test esi, esi
je 0x1400214e7
mov eax, 8
cmp byte [rax + r13], bpl
jne 0x14002147a
call fcn.140082398
mov eax, 0x10
mov rax, qword [rax + r13]
mov rcx, qword [rax + 0x4c38]
movsxd rax, dword [rax + 0x4c30]
lea rdx, [rcx + rax*8]
cmp rcx, rdx
je 0x1400214b0
nop word [rax + rax]
mov rbx, qword [rcx]
cmp dword [rbx], esi
je 0x1400214b3
add rcx, 8
cmp rcx, rdx
jne 0x1400214a0
mov rbx, rbp
test rbx, rbx
je 0x1400214cd
test byte [rbx + 4], 0x80
je 0x1400214cd
lea rcx, [rdi + 0xe50]
call fcn.140020c50
mov rbx, rax
lea rax, [rdi + 0x4c58]
mov rcx, rax
test rbx, rbx
je 0x1400214f4
mov qword [rax], rbx
mov rdx, rbx
mov rax, rbx
jmp 0x14002150f
lea rax, [rdi + 0x4c58]
mov rbx, rbp
mov rcx, rax
mov rax, qword [rax]
mov rdx, rax
test rax, rax
jne 0x14002150f
mov rax, qword [rdi + 0x4c38]
mov rax, qword [rax]
mov qword [rcx], rax
mov rdx, rax
mov rcx, qword [rdi + 0x4160]
test rcx, rcx
je 0x140021524
mov rcx, qword [rcx + 0x40]
test rcx, rcx
jne 0x140021527
mov rcx, rax
mov qword [rdi + 0x4c50], rcx
cmp byte [rdi + 0x4ec0], bpl
je 0x140021541
test rbx, rbx
jne 0x140021588
mov rbx, rdx
jmp 0x140021583
cmp dword [rdi + 0x41ac], ebp
je 0x140021583
mov rax, qword gs:[0x58]
mov rsi, qword [rax]
mov eax, 8
cmp byte [rsi + rax], bpl
jne 0x140021565
call fcn.140082398
mov eax, 0x10
mov rax, qword [rax + rsi]
nop
cmp byte [rax + rbp + 0xe58], 0
jne 0x14002159e
inc rbp
cmp rbp, 5
jl 0x140021570
test rbx, rbx
je 0x14002159e
cmp rbx, qword [rdi + 0x4c50]
je 0x14002159e
test byte [rbx + 4], 0x80
jne 0x14002159e
mov qword [rdi + 0x4c50], rbx
mov rbx, qword [rsp + 0xb0]
add rsp, 0xb8
pop r13
pop rdi
pop rsi
pop rbp
ret