Function at 0x1400b5ae0
Capabilities:
Get number of processors
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, 0x1e8
movdqa xmmword [rsp + 0x1d0], xmm8
movdqa xmmword [rsp + 0x1c0], xmm7
movdqa xmmword [rsp + 0x1b0], xmm6
mov qword [rsp + 0x188], r9
mov rbx, r8
mov qword [rsp + 0x38], rdx
mov qword [rsp + 0x90], rcx
cmp byte [r8 + 0x10], 2
jne 0x1400b5c2d
mov rax, qword [rsp + 0x90]
cmp qword [rax + 0x58], 0
je 0x1400b5c2d
mov rdi, qword [rsp + 0x90]
mov rcx, qword [rdi + 0x60]
mov rdx, qword [rdi + 0x68]
mov r15, qword [rsp + 0x38]
mov r8, r15
call fcn.14007fb70
mov r14, rax
mov rsi, qword [rdi + 0x40]
mov rdi, qword [rdi + 0x48]
shr rax, 0x39
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
add r15, 0x10
xor r12d, r12d
pcmpeqd xmm7, xmm7
and r14, rdi
movdqu xmm8, xmmword [rsi + r14]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb r13d, xmm0
test r13d, r13d
jne 0x1400b5bdf
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x1400b5c2d
add r14, r12
add r14, 0x10
add r12, 0x10
jmp 0x1400b5b8e
lea eax, [r13 - 1]
and eax, r13d
mov r13d, eax
test ax, ax
je 0x1400b5baa
tzcnt eax, r13d
add rax, r14
and rax, rdi
neg rax
lea rbp, [rax + rax*8]
lea rdx, [rsi + rbp*8]
add rdx, 0xffffffffffffffb8
mov rcx, qword [rsp + 0x38]
call fcn.140026680
test al, al
je 0x1400b5bd0
lea rdx, [rsi + rbp*8]
add rdx, 0xffffffffffffffc8
mov rcx, r15
call fcn.140022c10
test al, al
je 0x1400b5bd0
mov rcx, rbx
call fcn.1400b5720
mov r14, qword [rsp + 0x38]
jmp 0x1400b693e
mov rax, qword [rbx + 0x30]
mov qword [rsp + 0xf0], rax
movdqu xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmm2, xmmword [rbx + 0x20]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmmword [rsp + 0xd0], xmm1
movdqa xmmword [rsp + 0xc0], xmm0
mov rax, qword [rsp + 0x90]
lea rcx, [rax + 0x70]
mov qword [rsp + 0x190], rcx
mov rdx, qword [rsp + 0x38]
call fcn.1400802d0
test rax, rax
je 0x1400b6346
mov r15, rax
lea r13, [rsp + 0xf2]
xor edi, edi
jmp 0x1400b5cad
lea rcx, [rsp + 0x100]
call fcn.140043e30
mov rax, qword [r15 + 0x18]
test rax, rax
je 0x1400b62f8
mov rcx, qword [r15 + 0x10]
lea rdx, [rcx + 1]
mov r8, qword [r15]
mov r9, qword [r15 + 8]
cmp rdx, r8
cmovb r8, rdi
neg r8
lea rdx, [rcx + r8]
inc rdx
mov qword [r15 + 0x10], rdx
dec rax
mov qword [r15 + 0x18], rax
mov rax, qword [r9 + rcx*8]
mov qword [rsp + 0x100], rax
movzx eax, byte [rax + 0x80]
test al, al
je 0x1400b5d60
mov rsi, qword [rsp + 0x100]
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
jne 0x1400b5d35
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
mov edx, 0
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x1400b5d35
call qword [rax + 8]
mov al, 1
xchg byte [rsi + 0x78], al
test al, al
je 0x1400b5e00
mov rax, qword [rsp + 0x100]
lock dec qword [rax]
jne 0x1400b5cad
jmp 0x1400b5ca0
mov qword [rsp + 0x138], rbp
mov byte [rsp + 0x25], bl
movzx r12d, byte [rsp + 0xf1]
mov byte [rsp + 0xf1], 2
cmp r12b, 2
je 0x1400b6f30
mov rbx, r14
mov r8, qword [rsp + 0xc0]
mov r14, qword [rsp + 0xc8]
movzx edi, byte [rsp + 0xd0]
mov rbp, qword [rsp + 0xd8]
mov rdx, qword [rsp + 0xe0]
mov r10, qword [rsp + 0xe8]
movzx r9d, byte [rsp + 0xf0]
cmp dil, 2
jne 0x1400b5e34
mov esi, r9d
test rbp, rbp
je 0x1400b5e8f
mov rcx, rbp
mov rdi, r10
mov rbp, r8
call qword [rdx + 0x18]
mov r8, rbp
mov r10, rdi
mov rbp, rax
lock inc qword [r10]
jg 0x1400b5e9b
jmp 0x1400b6f2e
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
test rax, rax
je 0x1400b5e18
call qword [rax + 0x18]
xor eax, eax
xchg byte [rsi + 0x78], al
mov rax, qword [rsp + 0x100]
lock dec qword [rax]
jne 0x1400b5cad
jmp 0x1400b5ca0
movzx eax, word [r13 + 4]
mov word [rsp + 0x144], ax
mov ecx, dword [r13]
mov dword [rsp + 0x140], ecx
mov r11d, dword [r13 - 0x21]
mov rsi, r8
mov r8d, dword [r13 - 0x1e]
mov dword [rsp + 0x50], r11d
mov dword [rsp + 0x53], r8d
mov r11d, dword [rsp + 0x50]
mov r8d, dword [rsp + 0x53]
mov dword [rsp + 0xa8], r11d
mov dword [rsp + 0xab], r8d
mov r8, rsi
mov dword [rsp + 0xb8], ecx
mov word [rsp + 0xbc], ax
jmp 0x1400b5ee5
xor ebp, ebp
lock inc qword [r10]
jle 0x1400b6f2e
lock inc qword [r8]
jle 0x1400b6f2e
lock inc qword [r14 + 0x1d0]
lock inc qword [r14]
jle 0x1400b6f2e
mov r9d, esi
movzx eax, word [r13 + 4]
mov word [rsp + 0x144], ax
mov eax, dword [r13]
mov dword [rsp + 0x140], eax
mov byte [rsp + 0xd0], 2
mov byte [rsp + 0xf1], r12b
mov dil, 2
mov rsi, qword [rsp + 0x100]
mov eax, dword [rsp + 0xa8]
mov ecx, dword [rsp + 0xab]
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x33], ecx
mov eax, dword [rsp + 0xb8]
mov dword [rsp + 0x48], eax
movzx eax, word [rsp + 0xbc]
mov word [rsp + 0x4c], ax
mov qword [rsp + 0x140], rsi
movzx eax, byte [rsi + 0x80]
test al, al
je 0x1400b5f71
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x33]
mov dword [rsp + 0x2b], ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
movzx eax, word [rsp + 0x4c]
mov word [rsp + 0x44], ax
mov qword [rsp + 0xa0], r8
mov ebx, edi
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xb0], r10
mov byte [rsp + 0x26], r9b
jmp 0x1400b5fd5
lea rcx, [rsi + 0x10]
mov al, 1
xchg byte [rsi + 0x48], al
mov r13d, 0
test al, al
cmove r13, rcx
je 0x1400b612f
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x33]
mov dword [rsp + 0x2b], ecx
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x48]
mov dword [rsp + 0x40], eax
movzx eax, word [rsp + 0x4c]
mov word [rsp + 0x44], ax
mov qword [rsp + 0xa0], r8
mov ebx, edi
mov qword [rsp + 0x98], rdx
mov qword [rsp + 0xb0], r10
mov byte [rsp + 0x26], r9b
lea r13, [rsp + 0xf2]
xor edi, edi
mov rsi, qword [rsp + 0x140]
mov al, 1
xchg byte [rsi + 0x80], al
mov al, 1
xchg byte [rsi + 0x60], al
test al, al
jne 0x1400b6010
mov rax, qword [rsi + 0x50]
mov rcx, qword [rsi + 0x58]
mov qword [rsi + 0x50], 0
mov edx, 0
xchg byte [rsi + 0x60], dl
test rax, rax
je 0x1400b6010
call qword [rax + 8]
mov al, 1
xchg byte [rsi + 0x78], al
test al, al
je 0x1400b60e1
mov rax, qword [rsp + 0x140]
lock dec qword [rax]
jne 0x1400b6110
lea rcx, [rsp + 0x140]
call fcn.140043e30
movzx eax, byte [rsp + 0xf1]
cmp r12b, 2
je 0x1400b6122
cmp al, 2
je 0x1400b605f
lea rcx, [rsp + 0xc0]
call fcn.1400b5720
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], r14
mov byte [rsp + 0xd0], bl
mov eax, dword [rsp + 0x28]
mov ecx, dword [rsp + 0x2b]
mov dword [r13 - 0x1e], ecx
mov dword [r13 - 0x21], eax
mov qword [rsp + 0xd8], rbp
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsp + 0xb0]
mov qword [rsp + 0xe8], rax
movzx eax, byte [rsp + 0x26]
mov byte [rsp + 0xf0], al
mov byte [rsp + 0xf1], r12b
movzx eax, word [rsp + 0x44]
mov word [r13 + 4], ax
mov eax, dword [rsp + 0x40]
mov dword [r13], eax
jmp 0x1400b5cad
mov rax, qword [rsi + 0x68]
mov rcx, qword [rsi + 0x70]
mov qword [rsi + 0x68], 0
test rax, rax
je 0x1400b60f9
call qword [rax + 0x18]
xor eax, eax
xchg byte [rsi + 0x78], al
mov rax, qword [rsp + 0x140]
lock dec qword [rax]
je 0x1400b602f
movzx eax, byte [rsp + 0xf1]
cmp r12b, 2
jne 0x1400b604e
cmp al, 2
jne 0x1400b5cad
jmp 0x1400b62f1
mov qword [rsp + 0x180], rcx
mov qword [rsp + 0x198], r8
mov qword [rsp + 0x1a0], rdx
mov qword [rsp + 0x1a8], r10
mov byte [rsp + 0x27], r9b
cmp byte [r13 + 0x31], 2
jne 0x1400b6f4d
mov rcx, r13
call fcn.14008a8a0
mov rax, qword [rsp + 0x198]
mov qword [r13], rax
mov qword [r13 + 8], r14
mov byte [r13 + 0x10], dil
mov eax, dword [rsp + 0x30]
mov ecx, dword [rsp + 0x33]
mov dword [r13 + 0x11], eax
mov dword [r13 + 0x14], ecx
mov qword [r13 + 0x18], rbp
mov rax, qword [rsp + 0x1a0]
mov qword [r13 + 0x20], rax
mov rax, qword [rsp + 0x1a8]
mov qword [r13 + 0x28], rax
movzx eax, byte [rsp + 0x27]
mov byte [r13 + 0x30], al
mov byte [r13 + 0x31], r12b
mov eax, dword [rsp + 0x48]
mov dword [r13 + 0x32], eax
movzx eax, word [rsp + 0x4c]
mov word [r13 + 0x36], ax
xor eax, eax
xchg byte [r13 + 0x38], al
movzx eax, byte [rsi + 0x80]
mov r12b, 2
test al, al
je 0x1400b6205
mov al, 1
xchg byte [rsi + 0x48], al
test al, al
lea r13, [rsp + 0xf2]
mov edi, 0
mov r14, rbx
mov rbp, qword [rsp + 0x138]
je 0x1400b6224
movzx ebx, byte [rsp + 0x25]
jmp 0x1400b5fd7
lea r13, [rsp + 0xf2]
xor edi, edi
mov r14, rbx
movzx ebx, byte [rsp + 0x25]
mov rbp, qword [rsp + 0x138]
jmp 0x1400b5fd7
mov rcx, qword [rsp + 0x180]
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x80], rax
movdqu xmm0, xmmword [rcx]
movups xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
movdqa xmmword [rsp + 0x50], xmm0
mov byte [rsi + 0x41], 2
movzx r12d, byte [rsp + 0x81]
cmp r12b, 2
movzx ebx, byte [rsp + 0x25]
jne 0x1400b6283
lea rcx, [rsp + 0x50]
call fcn.14008a8a0
xor eax, eax
xchg byte [rsi + 0x48], al
mov r12b, 2
jmp 0x1400b5fd7
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0xa0], rax
mov r14, qword [rsp + 0x58]
movzx ebx, byte [rsp + 0x60]
lea rdx, [rsp + 0x61]
mov eax, dword [rdx]
mov ecx, dword [rdx + 3]
mov dword [rsp + 0x28], eax
mov dword [rsp + 0x2b], ecx
mov rbp, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x98], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0xb0], rax
movzx eax, byte [rsp + 0x80]
mov byte [rsp + 0x26], al
mov eax, dword [rdx + 0x21]
mov dword [rsp + 0x40], eax
movzx eax, word [rdx + 0x25]
mov word [rsp + 0x44], ax
xor eax, eax
xchg byte [rsi + 0x48], al
jmp 0x1400b5fd7
cmp qword [r15 + 0x18], 0
jne 0x1400b6346
lea rcx, [rsp + 0x50]
mov rdx, qword [rsp + 0x190]
mov r8, qword [rsp + 0x38]
call fcn.140080030
mov rsi, qword [rsp + 0x50]
movabs rax, 0x8000000000000000
cmp rsi, rax
je 0x1400b6346
lea rcx, [rsp + 0x50]
call fcn.14005b4e0
test rsi, rsi
je 0x1400b6346
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x14016b208]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp byte [rsp + 0xf1], 2
mov r14, qword [rsp + 0x38]
je 0x1400b693e
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x170], rax
movaps xmm0, xmmword [rsp + 0xc0]
movaps xmm1, xmmword [rsp + 0xd0]
movaps xmm2, xmmword [rsp + 0xe0]
movaps xmmword [rsp + 0x160], xmm2
movaps xmmword [rsp + 0x150], xmm1
movaps xmmword [rsp + 0x140], xmm0
movzx eax, byte [r14]
test rax, rax
je 0x1400b63b0
cmp eax, 1
jne 0x1400b63b4
movzx ecx, byte [r14 + 1]
mov al, 1
jmp 0x1400b642f
xor eax, eax
jmp 0x1400b642f
mov rsi, qword [r14 + 8]
movzx eax, byte [0x14016b2a0]
mov rcx, qword [0x14016b208]
test rcx, rcx
jne 0x1400b63e4
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x1400b6f65
mov rcx, rax
mov qword [0x14016b208], rax
mov r8d, 0x20
xor edx, edx
call sub.kernel32.dll_HeapAlloc
test rax, rax
je 0x1400b6f65
mov rbx, rax
lea rdx, [rsi + 0x18]
mov rax, qword [rsi]
mov r8, qword [rsi + 8]
mov r9, qword [rsi + 0x10]
lea rcx, [rsp + 0x100]
call qword [rax]
movups xmm0, xmmword [rsp + 0x100]
movups xmm1, xmmword [rsp + 0x110]
movups xmmword [rbx + 0x10], xmm1
movups xmmword [rbx], xmm0
mov al, 2
mov byte [rsp + 0x50], al
mov byte [rsp + 0x51], cl
mov qword [rsp + 0x58], rbx
lea r15, [rsp + 0x60]
mov rcx, qword [rsp + 0x38]
lea rdx, [rcx + 0x28]
mov rax, qword [rcx + 0x10]
mov r8, qword [rcx + 0x18]
mov r9, qword [rcx + 0x20]
mov rcx, r15
call qword [rax]
mov rsi, qword [rsp + 0x90]
lea rax, [rsi + 0x40]
mov qword [rsp + 0x98], rax
mov rcx, qword [rsi + 0x60]
mov rdx, qword [rsi + 0x68]
lea r12, [rsp + 0x50]
mov r8, r12
call fcn.14007fb70
mov rdi, rax
mov r13, qword [rsi + 0x40]
mov rbp, qword [rsi + 0x48]
shr rax, 0x39
mov qword [rsp + 0xb0], rax
movd xmm0, eax
punpcklbw xmm0, xmm0
pshuflw xmm0, xmm0, 0
pshufd xmm6, xmm0, 0
xor eax, eax
mov qword [rsp + 0xa0], rax
pcmpeqd xmm7, xmm7
mov r14, rdi
and r14, rbp
movdqu xmm8, xmmword [r13 + r14]
movdqa xmm0, xmm8
pcmpeqb xmm0, xmm6
pmovmskb ebx, xmm0
test ebx, ebx
jne 0x1400b651c
pcmpeqb xmm8, xmm7
pmovmskb eax, xmm8
test eax, eax
jne 0x1400b680d
mov rax, qword [rsp + 0xa0]
add r14, rax
add r14, 0x10
add rax, 0x10
mov qword [rsp + 0xa0], rax
jmp 0x1400b64be
lea eax, [rbx - 1]
and eax, ebx
mov ebx, eax
test ax, ax
je 0x1400b64d9
tzcnt eax, ebx
add rax, r14
and rax, rbp
neg rax
lea rsi, [rax + rax*8]
lea rcx, [rsi*8 - 0x48]
add rcx, r13
mov rdx, r12
call fcn.140026680
test al, al
je 0x1400b6510
lea rsi, [rsi*8]
add rsi, r13
lea rcx, [rsi - 0x38]
mov rdx, r15
call fcn.140022c10
test al, al
je 0x1400b6510
movups xmm0, xmmword [rsp + 0x50]
movups xmm1, xmmword [rsp + 0x60]
movups xmm2, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x120], xmm2
movaps xmmword [rsp + 0x110], xmm1
movaps xmmword [rsp + 0x100], xmm0
movaps xmmword [rsp + 0x50], xmm0
movaps xmmword [rsp + 0x70], xmm2
movaps xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x80], rsi
mov rax, qword [rsp + 0x98]
mov qword [rsp + 0x88], rax
movzx eax, byte [rsp + 0x50]
cmp al, 3
mov r14, qword [rsp + 0x38]
mov r15, qword [rsp + 0x90]
je 0x1400b6607
cmp al, 2
jb 0x1400b65f0
mov rbx, qword [rsp + 0x58]
lea rcx, [rbx + 0x18]
mov rax, qword [rbx]
mov rdx, qword [rbx + 8]
mov r8, qword [rbx + 0x10]
call qword [rax + 0x10]
mov rcx, qword [0x14016b208]
xor edx, edx
mov r8, rbx
call qword [sym.imp.kernel32.dll_HeapFree]
lea rcx, [rsp + 0x78]
mov rax, qword [rsp + 0x60]
mov rdx, qword [rsp + 0x68]
mov r8, qword [rsp + 0x70]
call qword [rax + 0x10]
mov rax, qword [r15 + 0xa0]
cmp rax, qword [rsi - 8]
jbe 0x1400b6931
mov r15, qword [rsp + 0x90]
cmp qword [r15 + 0x50], 0
je 0x1400b6f18
lea rdx, [r15 + 0x60]
lea rcx, str.value_already_sent