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

Disassembly:
push rbp
sub rsp, 0x60
lea rbp, [rsp + 0x60]
mov qword [rbp - 0x38], rcx
mov rax, qword [0x1401fda68]
xor rax, rbp
mov qword [rbp - 8], rax
mov ecx, dword [0x1402006f8]
mov eax, dword [0x1402006fc]
mov edx, ecx
sub edx, 0xaaff2eef
sub edx, 1
add edx, 0xaaff2eef
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete cl
and cl, 1
mov byte [rbp - 0x2a], cl
cmp eax, 0xa
setl al
and al, 1
mov byte [rbp - 0x29], al
mov dword [rbp - 0x30], 0xa6a31786
mov eax, dword [rbp - 0x30]
mov dword [rbp - 0x3c], eax
sub eax, 0xa6a31786
je 0x140135f13
jmp 0x140135d33
mov eax, dword [rbp - 0x3c]
sub eax, 0xa82157f7
je 0x140135f6b
jmp 0x140135d46
mov eax, dword [rbp - 0x3c]
sub eax, 0xae9135a3
je 0x14013673b
jmp 0x140135d59
mov eax, dword [rbp - 0x3c]
sub eax, 0xb6dec5ee
je 0x14013651c
jmp 0x140135d6c
mov eax, dword [rbp - 0x3c]
sub eax, 0xb700ab5c
je 0x140136249
jmp 0x140135d7f
mov eax, dword [rbp - 0x3c]
sub eax, 0xbac32d8e
je 0x140135fec
jmp 0x140135d92
mov eax, dword [rbp - 0x3c]
sub eax, 0xc0386556
je 0x140136090
jmp 0x140135da5
mov eax, dword [rbp - 0x3c]
sub eax, 0xc48668fb
je 0x1401365e7
jmp 0x140135db8
mov eax, dword [rbp - 0x3c]
sub eax, 0xea855985
je 0x140136510
jmp 0x140135dcb
mov eax, dword [rbp - 0x3c]
sub eax, 0xf218c09c
je 0x1401360df
jmp 0x140135dde
mov eax, dword [rbp - 0x3c]
sub eax, 0xf2413e8f
je 0x1401366cd
jmp 0x140135df1
mov eax, dword [rbp - 0x3c]
sub eax, 0xf2eaaddf
je 0x140136334
jmp 0x140135e04
mov eax, dword [rbp - 0x3c]
sub eax, 0xf4a99ceb
je 0x140136961
jmp 0x140135e17
mov eax, dword [rbp - 0x3c]
sub eax, 0xf70f1ce8
je 0x14013672b
jmp 0x140135e2a
mov eax, dword [rbp - 0x3c]
sub eax, 0xf898377a
je 0x140136167
jmp 0x140135e3d
mov eax, dword [rbp - 0x3c]
sub eax, 0xf8a63ee5
je 0x1401361fa
jmp 0x140135e50
mov eax, dword [rbp - 0x3c]
sub eax, 0xf944829d
je 0x1401368f2
jmp 0x140135e63
mov eax, dword [rbp - 0x3c]
sub eax, 0x3e65e73
je 0x140136683
jmp 0x140135e76
mov eax, dword [rbp - 0x3c]
sub eax, 0x859b4c5
je 0x14013659d
jmp 0x140135e89
mov eax, dword [rbp - 0x3c]
sub eax, 0x2097a1b4
je 0x1401362e5
jmp 0x140135e9c
mov eax, dword [rbp - 0x3c]
sub eax, 0x2fba34c1
je 0x1401366ef
jmp 0x140135eaf
mov eax, dword [rbp - 0x3c]
sub eax, 0x4806aff7
je 0x1401366d9
jmp 0x140135ec2
mov eax, dword [rbp - 0x3c]
sub eax, 0x66b7f615
je 0x140136955
jmp 0x140135ed5
mov eax, dword [rbp - 0x3c]
sub eax, 0x6ca298b2
je 0x1401360eb
jmp 0x140135ee8
mov eax, dword [rbp - 0x3c]
sub eax, 0x71a9461b
je 0x1401362ca
jmp 0x140135efb
mov eax, dword [rbp - 0x3c]
sub eax, 0x7a47e162
je 0x140136919
jmp 0x140135f0e
jmp 0x140136983
mov r11b, byte [rbp - 0x2a]
mov r10b, byte [rbp - 0x29]
mov al, r11b
xor al, 0xff
mov r8b, r10b
xor r8b, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and r11b, cl
mov r9b, r8b
and r9b, 0
and r10b, cl
or dl, r11b
or r9b, r10b
xor dl, r9b
or al, r8b
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0x2fba34c1
mov ecx, 0xa82157f7
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov ecx, dword [0x1402006f8]
mov eax, dword [0x1402006fc]
mov edx, ecx
sub edx, 0x43810054
sub edx, 1
add edx, 0x43810054
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete r11b
cmp eax, 0xa
setl r10b
mov al, r11b
xor al, 0xff
mov r8b, r10b
xor r8b, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and r11b, cl
mov r9b, r8b
and r9b, 0xff
and r10b, cl
or dl, r11b
or r9b, r10b
xor dl, r9b
or al, r8b
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x7a47e162
mov ecx, 0xbac32d8e
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov rcx, qword [rbp - 0x38]
mov eax, 0x10
mov qword [rbp - 0x50], rax
call fcn.1401b1950
sub rsp, rax
mov rax, qword [rbp - 0x50]
mov rdx, rsp
mov qword [rbp - 0x48], rdx
call fcn.1401b1950
sub rsp, rax
mov rax, qword [rbp - 0x50]
mov rdx, rsp
mov qword [rbp - 0x28], rdx
call fcn.1401b1950
sub rsp, rax
mov rax, qword [rbp - 0x48]
mov rdx, rsp
mov qword [rbp - 0x20], rdx
mov qword [rax], rcx
mov rax, qword [rax]
mov qword [rbp - 0x18], rax
mov rax, qword [rbp - 0x28]
mov dword [rax], 0x270
mov eax, dword [0x1402006f8]
mov ecx, dword [0x1402006fc]
xor r8d, r8d
sub r8d, 1
mov edx, eax
add edx, r8d
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x7a47e162
mov ecx, 0xc0386556
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov eax, dword [0x1402006f8]
mov ecx, dword [0x1402006fc]
mov edx, eax
add edx, 0xcabaf578
sub edx, 1
sub edx, 0xcabaf578
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x2fba34c1
mov ecx, 0xf218c09c
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov dword [rbp - 0x30], 0x6ca298b2
jmp 0x140136983
mov ecx, dword [0x1402006f8]
mov eax, dword [0x1402006fc]
xor r8d, r8d
sub r8d, 1
mov edx, ecx
add edx, r8d
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete r11b
cmp eax, 0xa
setl r10b
mov al, r11b
xor al, 0xff
mov r8b, r10b
xor r8b, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and r11b, cl
mov r9b, r8b
and r9b, 0xff
and r10b, cl
or dl, r11b
or r9b, r10b
xor dl, r9b
or al, r8b
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xf70f1ce8
mov ecx, 0xf898377a
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov rax, qword [rbp - 0x28]
cmp dword [rax], 0x4e0
setl al
and al, 1
mov byte [rbp - 9], al
mov ecx, dword [0x1402006f8]
mov eax, dword [0x1402006fc]
mov edx, ecx
sub edx, 0xe698365b
sub edx, 1
add edx, 0xe698365b
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete r11b
cmp eax, 0xa
setl r10b
mov al, r11b
xor al, 0xff
mov r8b, r10b
xor r8b, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and r11b, cl
mov r9b, r8b
and r9b, 0xff
and r10b, cl
or dl, r11b
or r9b, r10b
xor dl, r9b
or al, r8b
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xf70f1ce8
mov ecx, 0xf8a63ee5
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov eax, dword [0x1402006f8]
mov ecx, dword [0x1402006fc]
mov edx, eax
add edx, 0x95d4d0b6
sub edx, 1
sub edx, 0x95d4d0b6
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0x66b7f615
mov ecx, 0xb700ab5c
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov ecx, dword [0x1402006f8]
mov eax, dword [0x1402006fc]
mov edx, ecx
add edx, 0x2472e627
sub edx, 1
sub edx, 0x2472e627
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete r11b
cmp eax, 0xa
setl r10b
mov al, r11b
xor al, 0xff
mov r8b, r10b
xor r8b, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and r11b, cl
mov r9b, r8b
and r9b, 0xff
and r10b, cl
or dl, r11b
or r9b, r10b
xor dl, r9b
or al, r8b
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0x66b7f615
mov ecx, 0x71a9461b
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov dl, byte [rbp - 9]
mov eax, 0x4806aff7
mov ecx, 0x2097a1b4
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov eax, dword [0x1402006f8]
mov ecx, dword [0x1402006fc]
mov edx, eax
add edx, 0x6f9e03b0
sub edx, 1
sub edx, 0x6f9e03b0
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xae9135a3
mov ecx, 0xf2eaaddf
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
mov ecx, dword [rcx]
add ecx, 0xa9c8213d
sub ecx, 0x270
sub ecx, 0xa9c8213d
movsxd rcx, ecx
mov eax, dword [rax + rcx*4 + 4]
mov ecx, 0xffffffff
xor ecx, 0x80000000
mov r11d, eax
xor r11d, ecx
and r11d, eax
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
mov ecx, dword [rcx]
add ecx, 0xfbc4a58f
sub ecx, 0x270
sub ecx, 0xfbc4a58f
sub ecx, 0xf75e1b17
add ecx, 1
add ecx, 0xf75e1b17
movsxd rcx, ecx
mov eax, dword [rax + rcx*4 + 4]
mov ecx, 0xffffffff
xor ecx, 0x7fffffff
mov r10d, eax
xor r10d, ecx
and r10d, eax
mov eax, r11d
xor eax, 0xffffffff
mov r8d, r10d
xor r8d, 0xffffffff
mov edx, 0xffffffff
xor edx, 0x7e51ac80
mov ecx, eax
and ecx, 0x7e51ac80
and r11d, edx
mov r9d, r8d
and r9d, 0x7e51ac80
and r10d, edx
or ecx, r11d
or r9d, r10d
xor ecx, r9d
or eax, r8d
xor eax, 0xffffffff
or edx, 0x7e51ac80
and eax, edx
or ecx, eax
mov rax, qword [rbp - 0x20]
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
mov r8d, dword [rax]
shr r8d, 1
mov rax, qword [rbp - 0x20]
mov ecx, dword [rax]
xor ecx, 0xffffffff
mov edx, 0xffffffff
xor edx, 1
mov eax, 0xffffffff
xor eax, 0xcdb90228
or ecx, edx
or eax, 0xcdb90228
xor ecx, 0xffffffff
and ecx, eax
xor edx, edx
mov eax, 0x9908b0df
cmp ecx, 0
cmovne edx, eax
mov eax, r8d
xor eax, 0xffffffff
and eax, 0x84157b4f
mov r9d, 0xffffffff
xor r9d, 0x84157b4f
and r8d, r9d
mov ecx, edx
xor ecx, 0xffffffff
and ecx, 0x84157b4f
and edx, r9d
or eax, r8d
or ecx, edx
xor eax, ecx
mov rcx, qword [rbp - 0x18]
mov rdx, qword [rbp - 0x28]
mov edx, dword [rdx]
xor r8d, r8d
sub r8d, 0x270
add edx, r8d
add edx, 0x371fced6
add edx, 0x18d
sub edx, 0x371fced6
movsxd rdx, edx
mov ecx, dword [rcx + rdx*4 + 4]
mov r8d, eax
xor r8d, 0xffffffff
mov edx, ecx
and edx, r8d
xor ecx, 0xffffffff
and eax, ecx
or edx, eax
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
movsxd rcx, dword [rcx]
mov dword [rax + rcx*4 + 4], edx
mov eax, dword [0x1402006f8]
mov ecx, dword [0x1402006fc]
mov edx, eax
sub edx, 0x8a930584
sub edx, 1
add edx, 0x8a930584
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xae9135a3
mov ecx, 0xea855985
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov dword [rbp - 0x30], 0xb6dec5ee
jmp 0x140136983
mov ecx, dword [0x1402006f8]
mov eax, dword [0x1402006fc]
mov edx, ecx
sub edx, 0x3dc4726d
sub edx, 1
add edx, 0x3dc4726d
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete r11b
cmp eax, 0xa
setl r10b
mov al, r11b
xor al, 0xff
mov r8b, r10b
xor r8b, 0xff
mov cl, 1
xor cl, 0
mov dl, al
and dl, 0
and r11b, cl
mov r9b, r8b
and r9b, 0
and r10b, cl
or dl, r11b
or r9b, r10b
xor dl, r9b
or al, r8b
xor al, 0xff
or cl, 0
and al, cl
or dl, al
mov eax, 0xf944829d
mov ecx, 0x859b4c5
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov eax, dword [0x1402006f8]
mov ecx, dword [0x1402006fc]
xor r8d, r8d
sub r8d, 1
mov edx, eax
add edx, r8d
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xf4a99ceb
mov ecx, 0xc48668fb
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov rax, qword [rbp - 0x28]
mov ecx, dword [rax]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, 1
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov rax, qword [rbp - 0x28]
mov dword [rax], ecx
mov ecx, dword [0x1402006f8]
mov eax, dword [0x1402006fc]
mov edx, ecx
sub edx, 0x121825ad
sub edx, 1
add edx, 0x121825ad
imul ecx, edx
and ecx, 1
cmp ecx, 0
sete r11b
cmp eax, 0xa
setl r10b
mov al, r11b
xor al, 0xff
mov r8b, r10b
xor r8b, 0xff
mov cl, 1
xor cl, 1
mov dl, al
and dl, 0xff
and r11b, cl
mov r9b, r8b
and r9b, 0xff
and r10b, cl
or dl, r11b
or r9b, r10b
xor dl, r9b
or al, r8b
xor al, 0xff
or cl, 1
and al, cl
or dl, al
mov eax, 0xf4a99ceb
mov ecx, 0x3e65e73
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov eax, dword [0x1402006f8]
mov ecx, dword [0x1402006fc]
xor r8d, r8d
sub r8d, 1
mov edx, eax
add edx, r8d
imul eax, edx
and eax, 1
cmp eax, 0
sete al
cmp ecx, 0xa
setl cl
mov dl, al
and dl, cl
xor al, cl
or dl, al
mov eax, 0xf944829d
mov ecx, 0xf2413e8f
test dl, 1
cmovne eax, ecx
mov dword [rbp - 0x30], eax
jmp 0x140136983
mov dword [rbp - 0x30], 0x6ca298b2
jmp 0x140136983
mov rcx, qword [rbp - 8]
xor rcx, rbp
sub rsp, 0x20
call fcn.1401b19c0
nop
mov rsp, rbp
pop rbp
ret
mov rdx, qword [rbp - 0x38]
mov eax, 0x10
mov qword [rbp - 0x58], rax
call fcn.1401b1950
sub rsp, rax
mov rax, qword [rbp - 0x58]
mov rcx, rsp
call fcn.1401b1950
sub rsp, rax
mov rax, rsp
mov qword [rcx], rdx
mov dword [rax], 0x270
mov dword [rbp - 0x30], 0xa82157f7
jmp 0x140136983
mov rax, qword [rbp - 0x28]
mov dword [rbp - 0x30], 0xf898377a
jmp 0x140136983
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
mov ecx, dword [rcx]
add ecx, 0x2246cf36
sub ecx, 0x270
sub ecx, 0x2246cf36
movsxd rcx, ecx
mov r11d, dword [rax + rcx*4 + 4]
xor r11d, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x80000000
mov eax, 0xffffffff
xor eax, 0xd6d932b7
or r11d, ecx
or eax, 0xd6d932b7
xor r11d, 0xffffffff
and r11d, eax
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
mov ecx, dword [rcx]
add ecx, 0xff5b394d
sub ecx, 0x270
sub ecx, 0xff5b394d
add ecx, 0xd9e8958f
add ecx, 1
sub ecx, 0xd9e8958f
movsxd rcx, ecx
mov r10d, dword [rax + rcx*4 + 4]
xor r10d, 0xffffffff
mov ecx, 0xffffffff
xor ecx, 0x7fffffff
mov eax, 0xffffffff
xor eax, 0x80353a4e
or r10d, ecx
or eax, 0x80353a4e
xor r10d, 0xffffffff
and r10d, eax
mov eax, r11d
xor eax, 0xffffffff
mov r8d, r10d
xor r8d, 0xffffffff
mov edx, 0xffffffff
xor edx, 0xfad2a6fe
mov ecx, eax
and ecx, 0xfad2a6fe
and r11d, edx
mov r9d, r8d
and r9d, 0xfad2a6fe
and r10d, edx
or ecx, r11d
or r9d, r10d
xor ecx, r9d
or eax, r8d
xor eax, 0xffffffff
or edx, 0xfad2a6fe
and eax, edx
or ecx, eax
mov rax, qword [rbp - 0x20]
mov dword [rax], ecx
mov rax, qword [rbp - 0x20]
mov eax, dword [rax]
shr eax, 1
mov rcx, qword [rbp - 0x20]
mov ecx, dword [rcx]
mov edx, 0xffffffff
xor edx, 1
mov r8d, ecx
xor r8d, edx
and r8d, ecx
xor ecx, ecx
mov edx, 0x9908b0df
cmp r8d, 0
cmovne ecx, edx
mov edx, eax
xor edx, 0xffffffff
mov r8d, ecx
and r8d, edx
xor ecx, 0xffffffff
and eax, ecx
or r8d, eax
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
mov ecx, dword [rcx]
sub ecx, 0x1f4bf26c
sub ecx, 0x270
add ecx, 0x1f4bf26c
add ecx, 0xcdf3f3f8
add ecx, 0x18d
sub ecx, 0xcdf3f3f8
movsxd rcx, ecx
mov ecx, dword [rax + rcx*4 + 4]
mov edx, r8d
xor edx, 0xffffffff
and edx, 0x94890576
mov r9d, 0xffffffff
xor r9d, 0x94890576
and r8d, r9d
mov eax, ecx
xor eax, 0xffffffff
and eax, 0x94890576
and ecx, r9d
or edx, r8d
or eax, ecx
xor edx, eax
mov rax, qword [rbp - 0x18]
mov rcx, qword [rbp - 0x28]
movsxd rcx, dword [rcx]
mov dword [rax + rcx*4 + 4], edx
mov dword [rbp - 0x30], 0xf2eaaddf
jmp 0x140136983
mov rax, qword [rbp - 0x28]
mov ecx, dword [rax]
sub ecx, 0xf8a4ed27
add ecx, 1
add ecx, 0xf8a4ed27
mov rax, qword [rbp - 0x28]
mov dword [rax], ecx
mov dword [rbp - 0x30], 0x859b4c5
jmp 0x140136983
mov rdx, qword [rbp - 0x38]
mov eax, 0x10
mov qword [rbp - 0x60], rax
call fcn.1401b1950
sub rsp, rax
mov rax, qword [rbp - 0x60]
mov rcx, rsp
call fcn.1401b1950
sub rsp, rax
mov rax, rsp
mov qword [rcx], rdx
mov dword [rax], 0x270
mov dword [rbp - 0x30], 0xbac32d8e
jmp 0x140136983
mov dword [rbp - 0x30], 0xb700ab5c
jmp 0x140136983
mov rax, qword [rbp - 0x28]
mov ecx, dword [rax]
xor eax, eax
sub eax, ecx
xor ecx, ecx
sub ecx, 1
add eax, ecx
xor ecx, ecx
sub ecx, eax
mov rax, qword [rbp - 0x28]
mov dword [rax], ecx
mov dword [rbp - 0x30], 0xc48668fb
jmp 0x140135d1d