Function at 0x180004d3c
Capabilities:
Get number of processors
Resolve function by parsing pe exports

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
mov rbp, rsp
sub rsp, 0x50
mov r12d, dword [rbp + 0x50]
mov r15, r9
mov r13d, edx
mov r9d, 1
xor edx, edx
mov esi, r8d
mov rdi, rcx
movzx r14d, r9w
test r15, r15
jne 0x1800050a1
mov ecx, 0x7ffe0014
mov rax, qword [rcx]
cmp dword [rdi + 0x28], 2
mov qword [rbp - 0x20], rax
je 0x18000507b
cmp dword [rdi + 0x28], 3
je 0x1800a53fa
lea rcx, [rbp + 0x30]
mov qword [rbp + 0x30], rdx
call sym.ntdll.dll_RtlQueryPerformanceCounter
mov rax, qword [rbp + 0x30]
mov rcx, qword gs:[0x60]
lea r8d, [rsi*8 + 0x238]
mov edx, 8
mov qword [rbp - 0x18], rax
mov rcx, qword [rcx + 0x30]
call sym.ntdll.dll_RtlAllocateHeap
mov rbx, rax
test rax, rax
je 0x1800a54f0
mov rcx, qword gs:[0x60]
mov r8d, esi
shl r8d, 2
mov edx, 8
mov rcx, qword [rcx + 0x30]
call sym.ntdll.dll_RtlAllocateHeap
mov qword [rbx + 0x218], rax
test rax, rax
je 0x1800a543a
test r15, r15
jne 0x1800050d7
mov edx, r15d
test esi, esi
je 0x180005126
mov rcx, r15
mov r14d, 1
mov rax, qword [rbx + 0x218]
mov word [rcx + rax], r15w
lea rcx, [rcx + 4]
mov rax, qword [rbx + 0x218]
mov word [rcx + rax - 2], dx
add edx, r14d
cmp edx, esi
jb 0x180004e2b
mov eax, dword [rdi + 0x30]
mov r12d, 0x4000
test eax, eax
je 0x180005131
cmp eax, r12d
ja 0x1800a5408
shl eax, 0xa
mov dword [rbx + 0xd0], eax
lea rcx, [rbx + 0x98]
mov rdx, qword [rdi + 0x98]
call sym.ntdll.dll_RtlCreateUnicodeString
test al, al
je 0x1800a543d
mov edx, dword [rdi + 0x60]
lea r8, [rbp - 0x10]
mov rcx, rdi
call fcn.180005150
test eax, eax
jne 0x1800a543d
test dword [rdi + 0x40], r12d
jne 0x1800a5414
test dword [rdi + 0x40], 0x8000
jne 0x1800a541d
mov ecx, 0x800
mov dword [rbx + 0x14], r13d
mov dword [rbx + 0x144], ecx
mov dword [rbx + 0xcc], esi
mov dword [rbx + 0x34], 0xffff
mov dword [rbx + 0x30], 0xc00d0000
mov dword [rbx + 0x2c], 0xc0130000
mov eax, dword [rdi + 0x40]
bt eax, 0xa
jb 0x1800a5430
test al, 2
je 0x180005083
mov ecx, 0x802
movups xmm0, xmmword [rbp - 0x10]
movdqu xmmword [rbx + 0xa8], xmm0
mov dword [rbx + 0x144], ecx
mov eax, dword [rdi + 0x40]
mov r9d, r14d
and eax, 0x34133024
mov byte [rsp + 0x20], r15b
or eax, ecx
xor r8d, r8d
mov dword [rbx + 0x144], eax
lea rcx, [rbx + 0x80]
mov eax, dword [rdi + 0x6c]
mov dword [rbx + 0x188], eax
mov eax, dword [rbx + 0xe0]
mov dword [rbx + 0xe4], eax
movups xmm0, xmmword [rdi + 0x18]
movdqu xmmword [rbx + 0x38], xmm0
mov eax, dword [rdi + 0x3c]
mov dword [rbx + 0x140], eax
mov eax, dword [rdi + 0x38]
mov dword [rbx + 0xd8], eax
mov eax, dword [rdi + 0x34]
mov dword [rbx + 0xdc], eax
lea rax, [rbx + 0xe8]
mov qword [rax + 8], rax
mov qword [rax], rax
xor eax, eax
mov qword [rbx + 0x108], rax
lea rax, [rbx + 0x108]
mov qword [rbx + 0xf8], rax
mov qword [rbx + 0x100], rax
xor eax, eax
mov qword [rbx + 0x120], rax
lea rax, [rbx + 0x120]
mov qword [rbx + 0x110], rax
mov qword [rbx + 0x118], rax
xor eax, eax
mov qword [rbx + 0x138], rax
lea rax, [rbx + 0x138]
mov qword [rbx + 0x128], rax
mov qword [rbx + 0x130], rax
lea rax, [rbx + 0x1d0]
mov qword [rax + 8], rax
mov qword [rax], rax
lea rax, [rbx + 0x1e0]
mov qword [rax + 8], rax
mov qword [rax], rax
mov eax, dword [rdi + 0x28]
mov dword [rbx + 0x10], eax
mov eax, dword [rdi + 0x60]
mov dword [rbx + 0x48], eax
mov eax, dword [rdi + 0x4c]
mov edi, 0x1f0003
mov edx, edi
mov dword [rbx + 0x170], eax
call sym.ntdll.dll_NtCreateEvent
test eax, eax
js 0x1800a543d
lea rcx, [rbx + 0x88]
mov byte [rsp + 0x20], r15b
mov r9d, r14d
xor r8d, r8d
mov edx, edi
call sym.ntdll.dll_NtCreateEvent
test eax, eax
js 0x1800a543d
lea rcx, [rbx + 0x58]
xor r8d, r8d
xor edx, edx
call sym.ntdll.dll_RtlInitializeCriticalSectionEx
movups xmm0, xmmword [rbp - 0x20]
mov qword [rbx + 0x50], r15
mov rax, rbx
mov dword [rbx + 0x148], r14d
movdqu xmmword [rbx], xmm0
lea r11, [rsp + 0x50]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
mov rax, qword [rcx]
jmp 0x180004db1
test al, 8
je 0x18000513b
movups xmm0, xmmword [rbp - 0x10]
mov ecx, 0x808
movdqu xmmword [rbx + 0xb8], xmm0
jmp 0x180004f0a
movzx r8d, dx
mov r14d, edx
mov ecx, edx
test r12d, r12d
je 0x1800050ce
mov eax, ecx
add r14w, r9w
add r8w, word [rax + r15 + 0x2c]
movzx eax, word [rax + r15 + 4]
add eax, 7
and eax, 0xfffffff8
add ecx, eax
cmp ecx, r12d
jb 0x1800050af
movzx esi, r8w
jmp 0x180004d80
mov r9d, r12d
mov r8, r15
movzx edx, r14w
mov rcx, rbx
call fcn.180003cc0
xor r15d, r15d
test eax, eax
jne 0x1800a543d
mov rcx, qword gs:[0x60]
lea edx, [r15 + 8]
movzx eax, r14w
mov rcx, qword [rcx + 0x30]
lea r8d, [rax + rax*2]
shl r8d, 2
call sym.ntdll.dll_RtlAllocateHeap
mov qword [rbx + 0x200], rax
test rax, rax
je 0x1800a543d
mov r14d, 1
jmp 0x180004e4e
mov eax, 0x1000
jmp 0x180004e6b
test r14b, al
je 0x180004f10
mov ecx, 0x801
jmp 0x180004efe
rdtsc
shl rdx, 0x20
or rax, rdx
jmp 0x180004db1
mov dword [rdi + 0x30], r12d
mov eax, r12d
jmp 0x180004e68
lea rax, [0x18015a428]
jmp 0x1800a5424
lea rax, [rbx + 0x198]
mov qword [rbx + 0x190], rax
jmp 0x180004eba
mov ecx, 0xc00
jmp 0x180004f0a
xor r15d, r15d
mov rcx, qword [rbx + 0x88]
test rcx, rcx
je 0x1800a5455
call sym.ntdll.dll_NtClose
mov qword [rbx + 0x88], r15
mov rcx, qword [rbx + 0x80]
test rcx, rcx
je 0x1800a546d
call sym.ntdll.dll_NtClose
mov qword [rbx + 0x80], r15
mov r8, qword [rbx + 0x200]
test r8, r8
je 0x1800a548d
mov rcx, qword gs:[0x60]
xor edx, edx
mov rcx, qword [rcx + 0x30]
call sym.ntdll.dll_RtlFreeHeap
mov r8, qword [rbx + 0x218]
test r8, r8
je 0x1800a54ad
mov rcx, qword gs:[0x60]
xor edx, edx
mov rcx, qword [rcx + 0x30]
call sym.ntdll.dll_RtlFreeHeap
mov rcx, rbx
call fcn.180003b38
lea rcx, [rbx + 0x98]
call sym.ntdll.dll_RtlFreeAnsiString
lea rcx, [rbx + 0xa8]
call sym.ntdll.dll_RtlFreeAnsiString
lea rcx, [rbx + 0xb8]
call sym.ntdll.dll_RtlFreeAnsiString
mov rcx, qword gs:[0x60]
mov r8, rbx
xor edx, edx
mov rcx, qword [rcx + 0x30]
call sym.ntdll.dll_RtlFreeHeap
xor eax, eax
jmp 0x18000505d