Function at 0x1400ee8e0
Capabilities:
Check os version
Get number of processors
Get system information on windows

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3b8
movaps xmmword [rsp + 0x3a0], xmm6
mov r12, rdx
cmp byte [rdx + 0xb0], 0
mov qword [rsp + 0x90], rcx
je 0x1400ee922
cmp qword [r12], 0
je 0x1400ee990
mov r13, qword [r12 + 8]
mov al, 1
jmp 0x1400eefe9
movzx eax, word [r12 + 0xb1]
movzx ecx, byte [r12 + 0xb3]
mov rdx, qword [r12 + 0x48]
mov word [rsp + 0x78], ax
mov byte [rsp + 0x7a], 1
mov byte [rsp + 0x7b], cl
mov qword [rsp + 0x70], rdx
lea rcx, [rsp + 0x2b0]
lea rdx, [rsp + 0x70]
call fcn.1400f0500
mov r14, qword [rsp + 0x2b0]
mov rdi, qword [rsp + 0x2b8]
cmp r14, 2
jne 0x1400eea05
mov rax, qword [rsp + 0x90]
mov qword [rax + 8], rdi
mov qword [rax], 2
jmp 0x1400f0046
lea rdx, str.TOKIO_WORKER_THREADS___cannot_be_set_to_0
lea rdi, [rsp + 0x2b0]
mov r8d, 0x14
mov rcx, rdi
call fcn.1400d9cb0
mov rcx, qword [rsp + 0x2b0]
movabs rax, 0x8000000000000000
cmp rcx, rax
jne 0x1400eeacf
xorps xmm0, xmm0
movaps xmmword [rsp + 0x2d0], xmm0
movaps xmmword [rsp + 0x2c0], xmm0
movaps xmmword [rsp + 0x2b0], xmm0
lea rcx, [rsp + 0x2b0]
call sub.kernel32.dll_GetSystemInfo
mov r13d, dword [rsp + 0x2d0]
cmp r13d, 1
adc r13d, 0
jmp 0x1400eefe0
lea rdx, [rsp + 0x2c0]
lea rcx, [rsp + 0xe0]
mov r8d, 0xe0
call sub.VCRUNTIME140.dll_memcpy
movups xmm0, xmmword [rsp + 0xe0]
movups xmm1, xmmword [rsp + 0xf0]
movups xmm2, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmmword [rsp + 0x1d0], xmm1
movaps xmmword [rsp + 0x1e0], xmm2
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x1f8]
mov r8d, 0xb0
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [r12 + 0x50]
mov rcx, r12
call case.0x1400d88a8.258
lock inc qword [rax]
jle 0x1400f0150
mov r15, rax
mov r13, rdx
lea rsi, [r12 + 0xa4]
mov rcx, rsi
call fcn.1400eb580
mov ebp, eax
mov dword [rsp + 0x28], edx
mov rcx, rsi
call fcn.1400eb580
mov rsi, qword [r12 + 0x78]
test rsi, rsi
je 0x1400eeb3c
mov rcx, qword [r12 + 0x80]
mov qword [rsp + 0xa0], rcx
lock inc qword [rsi]
jg 0x1400eeb3c
jmp 0x1400f0150
mov r8, qword [rsp + 0x2b8]
mov r9, qword [rsp + 0x2c0]
cmp byte [rsp + 0x2c8], 0
je 0x1400eee74
mov qword [rsp + 0x1f8], rcx
mov qword [rsp + 0x200], r8
mov qword [rsp + 0x208], r9
cmp r9, 1
je 0x1400eee4e
test r9, r9
je 0x1400f04eb
cmp byte [r8], 0x2b
jne 0x1400eef35
lea r10, [r8 + 1]
lea rax, [r9 - 1]
cmp r9, 0x12
mov r9, rax
jb 0x1400eef3e
jmp 0x1400eef7c
mov rbx, qword [r12 + 0x88]
test rbx, rbx
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0xa8], r14
mov qword [rsp + 0xb8], r13
mov dword [rsp + 0x50], eax
mov dword [rsp + 0xc8], edx
mov dword [rsp + 0x34], ebp
je 0x1400eeb8b
mov rax, qword [r12 + 0x90]
mov qword [rsp + 0x2a8], rax
lock inc qword [rbx]
jg 0x1400eeb8b
jmp 0x1400f0150
mov qword [rsp + 0x98], r15
mov eax, dword [r12 + 0x20]
mov dword [rsp + 0x20], eax
mov r14d, dword [r12 + 0x24]
mov eax, dword [r12 + 0xa0]
mov dword [rsp + 0x88], eax
mov rdi, qword [r12 + 0x98]
movzx eax, byte [r12 + 0xb4]
mov byte [rsp + 0xc0], al
movzx ebp, byte [r12 + 0xb5]
movzx eax, byte [0x14017d2b0]
mov edx, 0x60
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0405
mov r13, rax
xorps xmm0, xmm0
movups xmmword [rax + 0x50], xmm0
movups xmmword [rax + 0x40], xmm0
movups xmmword [rax + 0x30], xmm0
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax], xmm0
nop word [rax + rax]
mov r15d, 1
lock xadd qword [0x14017d060], r15
test r15, r15
je 0x1400eec10
movzx eax, byte [0x14017d2b0]
mov edx, 0x180
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0414
mov r12, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov eax, dword [rsp + 0x20]
mov dword [r12 + 0x10], eax
mov dword [r12 + 0x14], r14d
mov qword [r12 + 0x18], rdi
mov qword [r12 + 0x20], rsi
mov rax, qword [rsp + 0xa0]
mov qword [r12 + 0x28], rax
mov qword [r12 + 0x30], rbx
mov rax, qword [rsp + 0x2a8]
mov qword [r12 + 0x38], rax
mov eax, dword [rsp + 0x88]
mov dword [r12 + 0x40], eax
mov word [r12 + 0x44], 0
mov eax, dword [rsp + 0x34]
mov dword [r12 + 0x48], eax
mov eax, dword [rsp + 0x28]
mov dword [r12 + 0x4c], eax
movzx eax, byte [rsp + 0xc0]
mov byte [r12 + 0x50], al
mov byte [r12 + 0x51], bpl
mov qword [r12 + 0x58], r13
mov qword [r12 + 0x60], 4
mov qword [r12 + 0x68], 0
mov qword [r12 + 0x70], 3
mov qword [r12 + 0x78], r15
mov byte [r12 + 0x80], 0
xorps xmm0, xmm0
movups xmmword [r12 + 0x91], xmm0
movups xmmword [r12 + 0x88], xmm0
mov qword [r12 + 0xa8], 0
mov byte [r12 + 0xb0], 0
mov rcx, r12
add rcx, 0xb8
lea rdx, [rsp + 0x1f8]
mov r8d, 0xb0
call sub.VCRUNTIME140.dll_memcpy
mov rdi, qword [rsp + 0x98]
mov qword [r12 + 0x168], rdi
mov word [r12 + 0x170], 0
mov eax, dword [rsp + 0x50]
mov dword [r12 + 0x174], eax
mov eax, dword [rsp + 0xc8]
mov dword [r12 + 0x178], eax
movzx eax, byte [0x14017d2b0]
mov edx, 0x200
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0423
mov rsi, rax
movzx eax, byte [0x14017d2b0]
mov edx, 0x70
xor ecx, ecx
call fcn.1400e0010
test rax, rax
mov rdx, qword [rsp + 0xb8]
je 0x1400f0432
cmp dword [rsp + 0x20], 0
mov ecx, 0x1f
cmove r14d, ecx
mov rcx, qword [rsp + 0xa8]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xb0]
mov qword [rax + 8], rcx
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmm1, xmmword [rsp + 0x1d0]
movaps xmm2, xmmword [rsp + 0x1e0]
movups xmmword [rax + 0x10], xmm0
movups xmmword [rax + 0x20], xmm1
movups xmmword [rax + 0x30], xmm2
mov qword [rax + 0x40], 0x40
mov qword [rax + 0x48], rsi
xorps xmm0, xmm0
movups xmmword [rax + 0x50], xmm0
mov dword [rax + 0x60], 0
mov dword [rax + 0x64], r14d
mov byte [rax + 0x68], 0
mov rcx, qword [rsp + 0x90]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx], xmm0
mov qword [rcx + 0x20], 0
mov qword [rcx + 0x28], rax
mov qword [rcx + 0x30], 0
mov qword [rcx + 0x38], r12
mov qword [rcx + 0x40], rdi
mov qword [rcx + 0x48], rdx
jmp 0x1400f0046
movzx edx, byte [r8]
mov al, 1
cmp edx, 0x2b
je 0x1400f025e
mov r9d, 1
mov r10, r8
cmp edx, 0x2d
jne 0x1400eef3e
jmp 0x1400f025e
test r9, r9
je 0x1400f04d3
movzx edx, byte [rsp + 0x2cf]
shl edx, 0x10
movzx r10d, word [rsp + 0x2cd]
or r10d, edx
shl r10, 0x20
mov edx, dword [rsp + 0x2c9]
or rdx, r10
lea r10, [r8 + r9]
mov rsi, r8
jmp 0x1400eeecc
add rsi, 2
cmp r11, r10
cmovne r11, rsi
nop word cs:[rax + rax]
mov rsi, r11
cmp r11, r10
je 0x1400eeaed
lea r11, [rsi + 1]
movzx ebx, byte [rsi]
test bl, bl
jns 0x1400eeec0
cmp bl, 0xe0
jb 0x1400eeeab
cmp bl, 0xed
jne 0x1400eef0a
cmp r11, r10
je 0x1400eeaed
lea r11, [rsi + 2]
cmp r11, r10
je 0x1400eeaed
cmp byte [rsi + 1], 0x9f
ja 0x1400f008f
add rsi, 3
mov r11, rsi
jmp 0x1400eeec0
add rsi, 2
cmp r11, r10
cmove rsi, r11
xor r11d, r11d
cmp rsi, r10
setne r11b
add r11, rsi
cmp bl, 0xf0
jb 0x1400eeec0
xor esi, esi
cmp r11, r10
setne sil
add r11, rsi
jmp 0x1400eeec0
mov r10, r8
cmp r9, 0x11
jae 0x1400eef7c
xor eax, eax
xor r13d, r13d
nop word cs:[rax + rax]
movzx edx, byte [r10 + rax]
add edx, 0xffffffd0
cmp edx, 9
ja 0x1400f025c
lea r11, [r13*4]
add r11, r13
mov edx, edx
lea r13, [rdx + r11*2]
inc rax
cmp r9, rax
jne 0x1400eef50
jmp 0x1400eefc3
xor r11d, r11d
mov esi, 0xa
xor r13d, r13d
nop word [rax + rax]
movzx ebx, byte [r10 + r11]
add ebx, 0xffffffd0
mov rax, r13
mul rsi
jo 0x1400f037a
cmp ebx, 0xa
jae 0x1400f025c
mov r13, rax
mov eax, ebx
add r13, rax
jb 0x1400f0386
inc r11
cmp r9, r11
jne 0x1400eef90
test r13, r13
je 0x1400f0446
test rcx, rcx
je 0x1400eefe0
mov rcx, qword [0x14017d208]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
movzx eax, byte [r12 + 0xb0]
movzx ecx, word [r12 + 0xb1]
movzx edx, byte [r12 + 0xb3]
mov r8, qword [r12 + 0x48]
mov word [rsp + 0x200], cx
xor al, 1
mov byte [rsp + 0x202], al
mov byte [rsp + 0x203], dl
mov qword [rsp + 0x1f8], r8
lea rcx, [rsp + 0x2b0]
lea rdx, [rsp + 0x1f8]
call fcn.1400f0500
mov r15, qword [rsp + 0x2b0]
mov r14, qword [rsp + 0x2b8]
cmp r15, 2
jne 0x1400ef063
mov rax, qword [rsp + 0x90]
mov qword [rax + 8], r14
mov qword [rax], 2
jmp 0x1400f0046
lea rdx, [rsp + 0x2c0]
lea rcx, [rsp + 0xe0]
mov r8d, 0xe0
call sub.VCRUNTIME140.dll_memcpy
movups xmm0, xmmword [rsp + 0xe0]
movups xmm1, xmmword [rsp + 0xf0]
movups xmm2, xmmword [rsp + 0x100]
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmmword [rsp + 0x1d0], xmm1
movaps xmmword [rsp + 0x1e0], xmm2
lea rdx, [rsp + 0x110]
lea rcx, [rsp + 0x2b0]
mov r8d, 0xb0
call sub.VCRUNTIME140.dll_memcpy
mov rdx, qword [r12 + 0x50]
add rdx, r13
mov rcx, r12
call case.0x1400d88a8.258
mov qword [rsp + 0xa8], rdx
mov qword [rsp + 0x88], rax
lock inc qword [rax]
jle 0x1400f0150
lea rbx, [r12 + 0xa4]
mov rcx, rbx
call fcn.1400eb580
mov esi, eax
mov edi, edx
mov rcx, rbx
call fcn.1400eb580
mov rbp, qword [r12 + 0x78]
test rbp, rbp
je 0x1400ef12d
mov rcx, qword [r12 + 0x80]
lock inc qword [rbp]
jg 0x1400ef12d
jmp 0x1400f0150
mov dword [rsp + 0xb0], edx
mov dword [rsp + 0xb8], eax
mov rdx, qword [r12 + 0x88]
test rdx, rdx
je 0x1400ef15b
mov r8, qword [r12 + 0x90]
lock inc qword [rdx]
jg 0x1400ef15b
jmp 0x1400f0150
mov r9d, dword [r12 + 0xa0]
mov r10, qword [r12 + 0x20]
mov r11, qword [r12 + 0x98]
movzx ebx, word [r12 + 0xb4]
mov qword [rsp + 0x1f8], r10
mov dword [rsp + 0x228], r9d
mov qword [rsp + 0x200], r11
mov qword [rsp + 0x208], rbp
mov qword [rsp + 0x210], rcx
mov qword [rsp + 0x218], rdx
mov qword [rsp + 0x220], r8
mov word [rsp + 0x238], bx
mov word [rsp + 0x22c], 0
mov dword [rsp + 0x230], esi
mov dword [rsp + 0x234], edi
movzx eax, byte [0x14017d2b0]
mov edx, 0x58
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0392
mov rsi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r14
movaps xmm0, xmmword [rsp + 0x1c0]
movaps xmm1, xmmword [rsp + 0x1d0]
movaps xmm2, xmmword [rsp + 0x1e0]
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm1
movups xmmword [rax + 0x40], xmm2
mov byte [rax + 0x50], 0
movzx eax, byte [0x14017d2b0]
mov edx, 0x30
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0161
mov r14, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], rsi
xorps xmm0, xmm0
movups xmmword [rax + 0x18], xmm0
mov byte [rax + 0x28], 0
mov qword [rsp + 0xd0], rax
test r13, r13
mov qword [rsp + 0x98], r13
je 0x1400ef6ba
mov rax, r13
shr rax, 0x3c
jne 0x1400f038d
lea rsi, [r13*8]
movzx eax, byte [0x14017d2b0]
xor ecx, ecx
mov rdx, rsi
call fcn.1400e0010
test rax, rax
je 0x1400f024f
mov qword [rsp + 0xa0], rsi
mov qword [rsp + 0x38], r13
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], 0
mov rax, r13
shr rax, 0x3b
jne 0x1400f038d
mov rsi, r13
shl rsi, 4
movzx eax, byte [0x14017d2b0]
xor ecx, ecx
mov rdx, rsi
call fcn.1400e0010
test rax, rax
je 0x1400f024f
mov r15, rax
mov qword [rsp + 0x58], r13
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], 0
xor ebp, ebp
lea rdi, [rsp + 0x70]
xorps xmm6, xmm6
xor r13d, r13d
mov qword [rsp + 0xc0], r14
jmp 0x1400ef35b
mov rax, rbp
shl rax, 4
mov qword [r15 + rax], rsi
mov qword [r15 + rax + 8], rdi
inc rbp
mov qword [rsp + 0x68], rbp
mov r13, qword [rsp + 0x50]
cmp r13, r12
lea rdi, [rsp + 0x70]
je 0x1400ef600
movzx eax, byte [0x14017d2b0]
mov edx, 0x800
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0170
inc r13
mov qword [rsp + 0x70], 0x100
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], 0
mov esi, 0x100
xor ebx, ebx
jmp 0x1400ef3b0
inc rbx
mov qword [rsp + 0x80], rbx
dec rsi
je 0x1400ef3d0
cmp rbx, qword [rsp + 0x70]
jne 0x1400ef3a0
mov rcx, rdi
call fcn.1400cf300
mov rbx, qword [rsp + 0x80]
jmp 0x1400ef3a0
mov rdi, qword [rsp + 0x78]
cmp qword [rsp + 0x70], rbx
jbe 0x1400ef40e
test rbx, rbx
je 0x1400f0310
lea rsi, [rbx*8]
mov rcx, qword [0x14017d208]
xor edx, edx
mov r8, rdi
mov r9, rsi
call qword [sym.imp.kernel32.dll_HeapReAlloc]
mov rdi, rax
test rax, rax
je 0x1400f024f
mov qword [rsp + 0xd8], rbx
cmp rbx, 0x100
jne 0x1400f032e
movzx eax, byte [0x14017d2b0]
mov edx, 0x28
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0152
mov rsi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 0
mov dword [rax + 0x20], 0
lock inc qword [rax]
jle 0x1400f0150
mov rbx, qword [r14 + 0x10]
lock inc qword [rbx]
jle 0x1400f0150
movzx eax, byte [0x14017d2b0]
mov edx, 0x30
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f0161
mov rdi, rax
mov qword [rsp + 0x50], r13
mov qword [rsp + 0x28], r15
mov qword [rsp + 0x20], rbp
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], rbx
movups xmmword [rax + 0x18], xmm6
mov byte [rax + 0x28], 0
lock inc qword [rax]
jle 0x1400f0150
call fcn.1400dfe70
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0x34], edx
movzx ebp, byte [rsp + 0x238]
mov r12d, dword [rsp + 0x1f8]
mov ebx, dword [rsp + 0x1fc]
lea rcx, [rsp + 0x22c]
call fcn.1400eb580
mov r14d, eax
mov r15d, edx
movzx eax, byte [0x14017d2b0]
mov edx, 0x50
xor ecx, ecx
call fcn.1400e0010
test rax, rax
je 0x1400f017f
mov r13, rax
xor bpl, 1
test r12d, r12d
mov eax, 0x3d
cmove ebx, eax
mov qword [r13], 0
mov qword [r13 + 8], rdi
mov dword [r13 + 0x10], r14d
mov dword [r13 + 0x14], r15d
mov qword [r13 + 0x18], rsi
mov qword [r13 + 0x20], 0
movabs rax, 0x40a99d60864b8a7e
mov qword [r13 + 0x28], rax
mov rax, qword [rsp + 0xc8]
mov qword [r13 + 0x30], rax
mov eax, dword [rsp + 0x34]
mov dword [r13 + 0x38], eax
mov dword [r13 + 0x40], 0
mov dword [r13 + 0x44], ebx
mov byte [r13 + 0x48], bpl
mov word [r13 + 0x49], 0
mov byte [r13 + 0x4b], 0
mov rax, qword [rsp + 0x48]
cmp rax, qword [rsp + 0x38]
jne 0x1400ef5b1
lea rcx, [rsp + 0x38]
call fcn.1400cf300
mov rax, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x40]
mov qword [rcx + rax*8], r13
inc rax
mov qword [rsp + 0x48], rax
mov rbp, qword [rsp + 0x20]
cmp rbp, qword [rsp + 0x58]
mov r12, qword [rsp + 0x98]
mov r14, qword [rsp + 0xc0]
mov r15, qword [rsp + 0x28]
jne 0x1400ef330
lea rcx, [rsp + 0x58]
call fcn.1400b1950
mov r15, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
jmp 0x1400ef330
movzx eax, byte [0x14017d2b0]
xor ecx, ecx
mov rsi, qword [rsp + 0xa0]
mov rdx, rsi
call fcn.1400e0010
test rax, rax
je 0x1400f024f
mov rdi, rax
mov r15, qword [rsp + 0x60]
cmp qword [rsp + 0x58], rbp
jbe 0x1400ef662
test rbp, rbp
je 0x1400f0062
mov rsi, rbp
shl rsi, 4
mov rcx, qword [0x14017d208]
xor edx, edx
mov r8, r15
mov r9, rsi
call qword [sym.imp.kernel32.dll_HeapReAlloc]
mov r15, rax
test rax, rax
je 0x1400f024f
mov r14d, 0x10000
cmp r12, 1
je 0x1400ef700
mov qword [rsp + 0x38], 0
mov qword [rsp + 0x40], 8
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x58], 0
mov qword [rsp + 0x60], 8
mov qword [rsp + 0x68], 0
mov r15d, 8
xor ebp, ebp
xor r14d, r14d
mov edi, 8
mov rcx, qword [0x14017d208]
xor edx, edx
mov r8, r15
call qword [sym.imp.kernel32.dll_HeapFree]
add byte [rcx - 0x41], al
or byte [rax], al
add byte [rax], al
cmp rcx, rax
je 0x1400ee9c8
shl rdx, 8
mov qword [rsp + 0x1f8], rcx
add byte [rcx + rcx*4 - 0x7c], cl
and al, 0
add al, byte [rax]
invalid
mov al, 2
jmp 0x1400f025e
call fcn.140010910
mov ecx, 8
mov edx, 0x58
call fcn.140104380