Function at 0x1400762e0
Capabilities:
Generate random numbers using a mersenne twister

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1d8
movaps xmmword [rsp + 0x1c0], xmm6
mov dword [rsp + 0x7c], edx
mov rax, qword [0x14028f028]
xor rax, rsp
mov qword [rsp + 0x1b8], rax
mov qword [rsp + 0x58], rcx
add rcx, 0xfffffffffffffff8
mov qword [rsp + 0x68], rcx
call fcn.140077de0
test al, al
je 0x1400778bb
movabs rdi, 0xaaaaaaaaaaaaaaaa
mov al, byte [0x140291f50]
mov byte [rsp + 0x67], al
test al, 0x19
jne 0x140077485
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0xa8], rdi
mov qword [rsp + 0xa0], rdi
mov rax, qword [rsp + 0x58]
mov rbp, qword [rax + 0x60]
test rbp, rbp
je 0x140076428
lea r14, [0x14001b320]
lea r15, [0x1400c8070]
xor esi, esi
xchg qword [rbp], rsi
test rsi, rsi
jne 0x14007639b
mov rbp, qword [rbp + 0x218]
test rbp, rbp
jne 0x14007637f
jmp 0x140076428
bsf rax, rsi
btc rsi, rax
mov rcx, qword [rbp + rax*8 + 0x10]
mov rax, qword [rcx + 8]
cmp rax, r14
jne 0x140077d51
mov rax, qword [rcx + 0x20]
mov r12, qword [rcx + 0x28]
cmp rax, r15
jne 0x140077d4e
mov rdi, qword [r12 + 0xb0]
mov rcx, qword [rdi + 0x30]
mov rdx, rdi
int3
test rsi, rsi
movabs rdi, 0xaaaaaaaaaaaaaaaa
je 0x14007638a
jmp 0x14007639b
movaps xmm6, xmmword [0x140257270]
movaps xmmword [rsp + 0x1a0], xmm6
movaps xmmword [rsp + 0x190], xmm6
mov rax, qword [rsp + 0x58]
mov rcx, qword [rax + 0x28]
mov rax, qword [rcx]
call qword [rax + pe_nt_image_headers64]
mov qword [rsp + 0x190], rax
mov byte [rsp + 0x198], 0
mov r15b, byte [0x140291f50]
test r15b, 0x19
jne 0x1400778be
xor ebx, ebx
mov rbp, rdi
mov rax, qword [rsp + 0x58]
mov r14, qword [rax + 0xd68]
lea r12, [rax + 0xd70]
cmp r14, r12
je 0x1400765c9
mov r13, qword [r14 + 0x20]
mov rax, qword [rsp + 0x58]
cmp r13, qword [rax + 0xd80]
jne 0x140076534
mov rsi, qword [r13 + 0x18]
cmp rsi, qword [r13 + 0x20]
je 0x140076509
cmp byte [rsp + 0x198], 0
je 0x1400764d0
mov rax, qword [rsp + 0x1a0]
cmp qword [rsi], rax
jg 0x140076509
jmp 0x140077305
lea rcx, [rsp + 0xf0]
call qword [fcn.14007b660]
cmp byte [rsp + 0x198], 0
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x1a0], rax
jne 0x1400764c2
mov byte [rsp + 0x198], 1
cmp qword [rsi], rax
jle 0x140077305
mov rcx, qword [r14 + 8]
test rcx, rcx
jne 0x1400772da
mov rax, qword [r14 + 0x10]
cmp qword [rax], r14
jne 0x1400772eb
mov r14, rax
cmp rax, r12
jne 0x140076490
jmp 0x1400765c9
movaps xmmword [rsp + 0x100], xmm6
movaps xmmword [rsp + 0xf0], xmm6
mov rax, qword [r13]
mov rcx, r13
lea rdx, [rsp + 0xf0]
call qword [rax + 8]
mov rsi, qword [r13 + 0x18]
cmp rsi, qword [r13 + 0x20]
je 0x140076509
cmp byte [rsp + 0xf8], 0
je 0x140076579
mov rax, qword [rsp + 0x100]
cmp qword [rsi], rax
jg 0x140076509
jmp 0x1400765b2
lea rcx, [rsp + 0xc8]
call qword [fcn.14007b660]
cmp byte [rsp + 0xf8], 0
mov rax, qword [rsp + 0xc8]
mov qword [rsp + 0x100], rax
jne 0x140076572
mov byte [rsp + 0xf8], 1
cmp qword [rsi], rax
jg 0x140076509
mov rax, qword [r13 + 0x18]
mov rcx, qword [rax + 0x10]
lea rdx, [rsp + 0xf0]
call fcn.14007a1a0
jmp 0x140076556
test r15b, 0x19
jne 0x140077924
cmp byte [rsp + 0x198], 0
movabs r12, 0xaaaaaaaaaaaaaaaa
mov rcx, qword [rsp + 0x58]
je 0x140076604
mov rax, qword [rsp + 0x1a0]
cmp rax, qword [rcx + 0xd90]
jl 0x140076604
mov byte [rcx + 0xd88], 1
lea rbp, [rcx + 0xad0]
xor ebx, ebx
mov rcx, rbp
mov edx, dword [rsp + 0x7c]
call fcn.140077df0
mov r13, rax
test byte [0x140291f60], 0x19
jne 0x140077391
movabs r15, 0xcccccccccccccccd
test r13, r13
je 0x140077506
mov rcx, r13
call fcn.140078990
test al, al
jne 0x14007660d
cmp qword [r13 + 0x10], 0
je 0x140077940
mov rcx, qword [r13]
mov rax, qword [rcx + 8]
add rax, 1
cmp rax, qword [rcx]
mov edx, 0
cmovne rdx, rax
mov rax, rdx
shl rax, 7
lea rax, [rax + rdx*8]
add rax, qword [rcx + 0x18]
cmp byte [rax + 0x70], 0
mov rbx, qword [rsp + 0x58]
jne 0x14007668f
cmp dword [rbx + 0x78], 0
jg 0x14007751b
mov rbp, qword [r13 + 0x30]
mov rax, qword [rbp + 0xb0]
mov rcx, qword [rbx + 0xe58]
mov cl, byte [rcx + 0x20]
cmp cl, byte [rax + 0x38]
jb 0x1400774f7
cmp qword [rbp + 0x160], 0
jne 0x140076e6d
cmp qword [rbp + 0x168], 0
jne 0x140076e6d
mov rax, qword [rsp + 0x58]
cmp dword [rax + 0x78], 0
jne 0x140077358
xor r14d, r14d
cmp qword [rax + 0xd58], 0
jne 0x140076e6d
xor esi, esi
xorpd xmm0, xmm0
movupd xmmword [rsp + 0xda], xmm0
movupd xmmword [rsp + 0xca], xmm0
lea rdx, [rsp + 0xf0]
mov rcx, r13
int3
cmp byte [rsi], 0
je 0x140076cc9
mov rcx, rsi
mov rdx, qword [rsp + 0xa8]
mov r8, qword [rsp + 0xa0]
call fcn.140079550
test rbx, rbx
jne 0x140076cfd
mov rcx, qword [rsp + 0x1b8]
xor rcx, rsp
call fcn.1400ccfe0
mov rax, rbx
movaps xmm6, xmmword [rsp + 0x1c0]
add rsp, 0x1d8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, rbx
mov rbx, qword [rsp + 0x58]
mov rcx, qword [rbx + 0xe08]
add rcx, qword [rbx + 0xe10]
mov rbp, qword [rbx + 0xdf0]
mov rax, rcx
mul r15
shr rdx, 4
mov rax, qword [rbp + rdx*8]
cmp qword [rbx + 0xdf8], rbp
je 0x140077bd5
lea rbx, [rdx*4]
lea rbx, [rbx + rbx*4]
sub rcx, rbx
imul rdi, rcx, 0xc8
add rdi, rax
cmp rdi, rax
mov rbx, rsi
je 0x140077bdc
test byte [0x140291980], 0x19
je 0x140076cce
movsx rax, byte [rdi - 8]
lea rcx, str.RunControlPriorityTask
mov r14, qword [rcx + rax*8]
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov r15d, eax
lea rbx, [rsp + 0xc8]
mov qword [rbx], r12
mov rcx, rbx
int3
mov rdi, qword [rsp + 0x58]
movsd xmm0, qword [rdi + 0x48]
mov r14b, 1
xorpd xmm1, xmm1
ucomisd xmm0, xmm1
jbe 0x1400766e9
movsd xmm0, qword [rdi + 0xac8]
subsd xmm0, qword [rdi + 0xac0]
mov rbp, qword [rdi + 0xab8]
lea rax, [rbp + 1]
shr rax, 3
movabs r8, 0xd20d20d20d20d21
mul r8
shr rdx, 1
imul rax, rdx, 0x138
neg rax
mov rdx, 0xffffffff80000000
and rdx, qword [rdi + rbp*8 + 0xf8]
lea r9, [rax + rbp]
add r9, 1
mov rcx, qword [rdi + r9*8 + 0xf8]
mov esi, ecx
and esi, 0x7ffffffe
or rsi, rdx
lea rax, [rbp + 0x9c]
shr rax, 3
mul r8
shr rdx, 1
imul rax, rdx, 0x138
neg rax
add rax, rbp
add rax, 0x9c
shr rsi, 1
and ecx, 1
movabs rdx, 0xb5026f5aa96619e9
imul rdx, rcx
xor rdx, qword [rdi + rax*8 + 0xf8]
xor rdx, rsi
mov qword [rdi + rbp*8 + 0xf8], rdx
mov rax, qword [rdi + 0xab8]
mov rax, qword [rdi + rax*8 + 0xf8]
mov rcx, rax
shr rcx, 0x1d
movabs rdx, 0x555555555
and rdx, rcx
xor rdx, rax
mov rax, rdx
shl rax, 0x11
movabs rcx, 0x71d67fffeda60000
and rcx, rax
xor rcx, rdx
mov eax, ecx
and eax, 0x7ffbf77
shl rax, 0x25
xor rax, rcx
mov rcx, rax
shr rcx, 0x2b
xor rcx, rax
movq xmm1, rcx
punpckldq xmm1, xmmword [0x140251c50]
subpd xmm1, xmmword [0x140251c60]
movapd xmm2, xmm1
unpckhpd xmm2, xmm1
addsd xmm2, xmm1
mulsd xmm2, qword [0x14026c4d0]
mov qword [rdi + 0xab8], r9
mulsd xmm2, xmm0
addsd xmm2, qword [rdi + 0xac0]
movsd xmm0, qword [rdi + 0x48]
ucomisd xmm0, xmm2
seta sil
mov rbp, qword [r13 + 0x30]
jmp 0x1400766eb
mov rax, rcx
mov rcx, qword [rcx]
test rcx, rcx
je 0x140076523
jmp 0x1400772da
add r14, 0x10
mov rcx, qword [r14]
lea r14, [rcx + 0x10]
mov rax, qword [rcx + 0x10]
cmp qword [rax], rcx
je 0x140076523
jmp 0x1400772ef
mov rax, qword [r13 + 0x18]
mov rcx, qword [rax + 0x10]
lea rdx, [rsp + 0x190]
call fcn.14007a1a0
jmp 0x1400764a6
xor r14d, r14d
jmp 0x1400766e9
lea rdx, [rsp + 0xc0]
mov rdi, qword [rsp + 0x68]
mov rcx, rdi
mov r8, r13
int3
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
lea rbp, [rsp + 0xf0]
mov qword [rbp], rdi
mov rcx, rbp
int3
test byte [0x140291f50], 0x19
jne 0x140077813
xor ebx, ebx
mov rsi, qword [rsp + 0x70]
test byte [rsp + 0x67], 0x19
jne 0x140076cac
jmp 0x140076cc9
lea r14, [rbx + 0x80]
lea rsi, [rsp + 0xf0]
mov r8d, 0x98
mov rcx, rsi
mov dl, 0xaa
call fcn.1400cf750
mov rcx, r13
mov rdx, rsi
int3
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebp, eax
lea rdi, [rsp + 0xf0]
mov qword [rdi], r12
mov rcx, rdi
int3
int3
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov esi, eax
lea rbp, [rsp + 0xf0]
mov qword [rbp], rdi
mov rcx, rbp
int3
cmp byte [rbx], 0
je 0x1400765d3
mov rcx, rbx
mov rdx, rdi
mov r8, rbp
call fcn.140079550
jmp 0x1400765d3
xor eax, eax
jmp 0x14007667a
xor edi, edi
jmp 0x140076d4f
mov edi, 0xfa0
add rdi, qword [rbp + rdx*8 - 8]
jmp 0x140076d5b
mov rcx, r12
call rax
jmp 0x140076410