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

Disassembly:
push rax
pushf
mov eax, 0xa11a688e
pushf
not eax
add eax, 0x11f85aa9
xor eax, 0x3d6ecbdd
rol eax, 0xe7
popf
pushf
not eax
add eax, 0x4c9c7b4f
xor eax, 0x3233fe9e
rol eax, 0x72
popf
pushf
not eax
add eax, 0x3e79061f
xor eax, 0x1031daca
rol eax, 0xf5
popf
pushf
not eax
add eax, 0x4d0a955b
xor eax, 0x4819631f
rol eax, 0x5b
popf
cmp eax, 1
jne 0x1400fa18a
popf
pop rax
jmp 0x1400fa2cc
cmp eax, 5
jne 0x1400fa199
popf
pop rax
jmp 0x1400fa4cf
cmp eax, 4
jne 0x1400fa1a8
popf
pop rax
jmp 0x1400fa44a
cmp eax, 2
jne 0x1400fa1b7
popf
pop rax
jmp 0x1400fa331
cmp eax, 0
jne 0x1400fa1c6
popf
pop rax
jmp 0x1400fa220
cmp eax, 9
jne 0x1400fa1d5
popf
pop rax
jmp 0x1400fa811
cmp eax, 3
jne 0x1400fa1e4
popf
pop rax
jmp 0x1400fa410
cmp eax, 7
jne 0x1400fa1f3
popf
pop rax
jmp 0x1400fa65d
cmp eax, 8
jne 0x1400fa202
popf
pop rax
jmp 0x1400fa6f1
cmp eax, 0xa
jne 0x1400fa211
popf
pop rax
jmp 0x1400fa8ac
cmp eax, 6
jne 0x1400fa220
popf
pop rax
jmp 0x1400fa554
sub rsp, 8
mov r9, rcx
mov r10d, 0x985a2ccf
pushf
not r10d
add r10d, 0x737e7642
xor r10d, 0x1e5d4b8b
rol r10d, 0xc7
popf
pushf
not r10d
add r10d, 0x5d781e21
xor r10d, 0x3cf6a13e
rol r10d, 0x6a
popf
mov ecx, dword [rcx]
cmp ecx, r10d
jne 0x1400fa299
push rax
pushf
mov eax, 0xca20f01d
pushf
not eax
add eax, 0x1911e4f1
xor eax, 0x2e1a32d4
rol eax, 0x8e
popf
pushf
not eax
add eax, 0x3dca4b7
xor eax, 0x525acc78
rol eax, 0xfe
popf
jmp 0x1400fa17b
push rax
pushf
mov eax, 0x80be4aa1
pushf
not eax
add eax, 0x13bb0e0a
xor eax, 0x762c7c8b
rol eax, 0xb5
popf
pushf
not eax
add eax, 0x7750062
xor eax, 0xaf8e64a
rol eax, 0x73
popf
jmp 0x1400fa17b
lea r8, [r9 + 8]
nop dword [rax + rax]
push rax
pushf
mov eax, 0xd70a2b95
pushf
not eax
add eax, 0x1fc9d366
xor eax, 0x23b4902c
rol eax, 0x9b
popf
pushf
not eax
add eax, 0x75f3166a
xor eax, 0x19e22441
rol eax, 0x6b
popf
pushf
not eax
add eax, 0x3f4cb4f2
xor eax, 0x2acfe1d9
rol eax, 0x12
popf
pushf
not eax
add eax, 0x1ee9f593
xor eax, 0x29acb468
rol eax, 0xc5
popf
jmp 0x1400fa17b
mov edx, dword [r8 - 4]
xor edx, dword [r8]
lea r8, [r8 + 4]
btr edx, 0x1f
xor edx, dword [r8 - 8]
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
not ecx
xor ecx, 0x9908b0df
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x62c]
push rcx
not dword [rsp]
and dword [rsp], edx
push rdx
not edx
and ecx, edx
pop rdx
or ecx, dword [rsp]
add rsp, 8
mov dword [r8 + 0x9b8], ecx
sub r10, 1
jne 0x1400fa3ca
push rax
pushf
mov eax, 0xbce7568f
pushf
not eax
add eax, 0x73a69cd4
xor eax, 0x18a649ee
rol eax, 0x36
popf
pushf
not eax
add eax, 0x698c
xor eax, 0x242b5d9e
rol eax, 9
popf
pushf
not eax
add eax, 0x54642cc0
xor eax, 0x58e6805d
rol eax, 0x46
popf
jmp 0x1400fa17b
push rax
pushf
mov eax, 0xbd3a3895
pushf
not eax
add eax, 0x123d698e
xor eax, 0x3ee26324
rol eax, 0x53
popf
pushf
not eax
add eax, 0x71bae2f2
xor eax, 0x5e7269f2
rol eax, 0x46
popf
pushf
not eax
add eax, 0x2b1a5610
xor eax, 0x19fd02c
rol eax, 0x9a
popf
jmp 0x1400fa17b
mov ecx, dword [r9]
jmp 0x1400fa8ac
cmp ecx, 0x4e0
jb 0x1400fa49c
push rax
pushf
mov eax, 0xef55e065
pushf
not eax
add eax, 0x6439e7a8
xor eax, 0x3d745c03
rol eax, 0x28
popf
pushf
not eax
add eax, 0x3fb85f20
xor eax, 0xe0d707b
rol eax, 0xb2
popf
pushf
not eax
add eax, 0x26f41f4e
xor eax, 0x703d8e0c
rol eax, 0xb6
popf
jmp 0x1400fa17b
push rax
pushf
mov eax, 0xa0f254a8
pushf
not eax
add eax, 0x2f408e26
xor eax, 0x66cbd02a
rol eax, 0xc3
popf
pushf
not eax
add eax, 0x305f458f
xor eax, 0x4c2ffacf
rol eax, 0x44
popf
jmp 0x1400fa17b
lea r10, [r9 + 0x9c4]
mov qword [rsp], rbx
mov r11d, dword [r10]
mov ebx, 0x85739fe6
pushf
not ebx
add ebx, 0x238d6d83
xor ebx, 0x53f92fc5
rol ebx, 0xa1
popf
pushf
not ebx
add ebx, 0x532f7d0d
xor ebx, 0x762276b2
rol ebx, 0x14
popf
pushf
not ebx
add ebx, 0x4f09b6c6
xor ebx, 0x604da6d1
rol ebx, 0x9d
popf
push rax
pushf
mov eax, 0xef084f8b
pushf
not eax
add eax, 0x1049c2ca
xor eax, 0x51d40e7f
rol eax, 0x1a
popf
pushf
not eax
add eax, 0x2f53cbb4
xor eax, 0x299176be
rol eax, 0x19
popf
jmp 0x1400fa17b
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
add r10, 4
mov edx, r11d
push rdx
not dword [rsp]
and dword [rsp], eax
push rax
not eax
and edx, eax
pop rax
or edx, dword [rsp]
add rsp, 8
btr edx, 0x1f
push rdx
not dword [rsp]
and dword [rsp], eax
push rax
not eax
and edx, eax
pop rax
or edx, dword [rsp]
add rsp, 8
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
not ecx
xor ecx, 0x9908b0df
and ecx, 0x9908b0df
xor ecx, dword [r8 + 0x634]
push rcx
not dword [rsp]
and dword [rsp], edx
push rdx
not edx
and ecx, edx
pop rdx
or ecx, dword [rsp]
add rsp, 8
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x1400fa604
push rax
pushf
mov eax, 0xeb01e0ff
pushf
not eax
add eax, 0x467084f0
xor eax, 0x8c5b60c
rol eax, 0x1e
popf
pushf
not eax
add eax, 0x71d2c10b
xor eax, 0x5ce63b8b
rol eax, 0x72
popf
jmp 0x1400fa17b
push rax
pushf
mov eax, 0xfc1346bb
pushf
not eax
add eax, 0x5755599b
xor eax, 0x418b89f7
rol eax, 0x9c
popf
pushf
not eax
add eax, 0x544b5b6a
xor eax, 0x142fcdf5
rol eax, 0xf4
popf
pushf
not eax
add eax, 0x2a171b19
xor eax, 0x12f49f43
rol eax, 0xfa
popf
pushf
not eax
add eax, 0x4fd3ec10
xor eax, 0x21f77552
rol eax, 0xd8
popf
jmp 0x1400fa17b
lea r10, [r9 + 0xd50]
mov ebx, 0x1778496e
pushf
not ebx
add ebx, 0x57a3a584
xor ebx, 0x4d4416d8
rol ebx, 0xe5
popf
pushf
not ebx
add ebx, 0x21c948b3
xor ebx, 0x73dfee9d
rol ebx, 0x60
popf
mov r11d, dword [r10]
nop
push rax
pushf
mov eax, 0x3a1c99b2
pushf
not eax
add eax, 0x339d066c
xor eax, 0x602fc1b4
rol eax, 0x8b
popf
pushf
not eax
add eax, 0x77cd18c0
xor eax, 0x10c82cd8
rol eax, 0x2d
popf
pushf
not eax
add eax, 0x4e7d798e
xor eax, 0x6986e2bb
rol eax, 0x30
popf
pushf
not eax
add eax, 0x1ff310c
xor eax, 0x37b5cef
rol eax, 0x62
popf
jmp 0x1400fa17b
mov eax, r11d
mov r8, r10
mov r11d, dword [r10 + 4]
mov edx, eax
push rdx
not dword [rsp]
and dword [rsp], r11d
push r11
not r11d
and edx, r11d
pop r11
or edx, dword [rsp]
add rsp, 8
add r10, 4
btr edx, 0x1f
push rdx
not dword [rsp]
and dword [rsp], eax
push rax
not eax
and edx, eax
pop rax
or edx, dword [rsp]
add rsp, 8
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
not ecx
xor ecx, 0x9908b0df
and ecx, 0x9908b0df
xor ecx, dword [r8 - 0xd4c]
push rcx
not dword [rsp]
and dword [rsp], edx
push rdx
not edx
and ecx, edx
pop rdx
or ecx, dword [rsp]
add rsp, 8
mov dword [r8 - 0x9c0], ecx
sub rbx, 1
jne 0x1400fa7cb
push rax
pushf
mov eax, 0x9e345720
pushf
not eax
add eax, 0x39cc3099
xor eax, 0x7492e70a
rol eax, 0x9d
popf
pushf
not eax
add eax, 0x2c01ec5a
xor eax, 0x273804b0
rol eax, 0x7f
popf
pushf
not eax
add eax, 0x7366c1ad
xor eax, 0x548e245d
rol eax, 0x77
popf
pushf
not eax
add eax, 0x3fb1a5de
xor eax, 0x569c7bff
rol eax, 0xbe
popf
jmp 0x1400fa17b
push rax
pushf
mov eax, 0xb3f749c8
pushf
not eax
add eax, 0x58f76348
xor eax, 0x16a8a53d
rol eax, 0x15
popf
pushf
not eax
add eax, 0x1ece2f0a
xor eax, 0x7a24df32
rol eax, 0xd1
popf
pushf
not eax
add eax, 0x18f882b0
xor eax, 0x4b7eaa09
rol eax, 0xb0
popf
jmp 0x1400fa17b
mov eax, dword [r9 + 0x1380]
mov edx, eax
xor edx, dword [r9 + 4]
mov rbx, qword [rsp]
btr edx, 0x1f
push rdx
not dword [rsp]
and dword [rsp], eax
push rax
not eax
and edx, eax
pop rax
or edx, dword [rsp]
add rsp, 8
mov eax, edx
and al, 1
neg al
sbb ecx, ecx
shr edx, 1
not ecx
xor ecx, 0x9908b0df
and ecx, 0x9908b0df
xor ecx, dword [r9 + 0x634]
push rcx
not dword [rsp]
and dword [rsp], edx
push rdx
not edx
and ecx, edx
pop rdx
or ecx, dword [rsp]
add rsp, 8
mov dword [r9 + 0x9c0], ecx
xor ecx, ecx
mov dword [r9], ecx
push rax
pushf
mov eax, 0x70ca5552
pushf
not eax
add eax, 0x36347e1b
xor eax, 0x1e8658d7
rol eax, 0xf9
popf
pushf
not eax
add eax, 0x746ab930
xor eax, 0x34b3a04f
rol eax, 0x33
popf
jmp 0x1400fa17b
mov eax, ecx
mov edx, dword [r9 + rax*4 + 4]
lea eax, [rcx + 1]
mov dword [r9], eax
mov ecx, edx
mov eax, dword [r9 + 0x1384]
shr ecx, 0xb
push rax
push rcx
not eax
xor eax, ecx
pop rcx
and eax, dword [rsp]
add rsp, 8
push rdx
not dword [rsp]
and dword [rsp], eax
push rax
not eax
and edx, eax
pop rax
or edx, dword [rsp]
add rsp, 8
mov eax, edx
not eax
xor eax, 0xff3a58ad
and eax, 0xff3a58ad
shl eax, 7
push rdx
not dword [rsp]
and dword [rsp], eax
push rax
not eax
and edx, eax
pop rax
or edx, dword [rsp]
add rsp, 8
mov eax, edx
not eax
xor eax, 0xffffdf8c
and eax, 0xffffdf8c
shl eax, 0xf
push rdx
not dword [rsp]
and dword [rsp], eax
push rax
not eax
and edx, eax
pop rax
or edx, dword [rsp]
add rsp, 8
mov eax, edx
shr eax, 0x12
push rax
not dword [rsp]
and dword [rsp], edx
push rdx
not edx
and eax, edx
pop rdx
or eax, dword [rsp]
add rsp, 8
add rsp, 8
ret