Function at 0x1400b50b0
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
mov eax, 0x1488
call fcn.1400b8450
sub rsp, rax
mov rsi, rcx
mov rax, qword [0x1401c6840]
xor rax, rsp
mov qword [rsp + 0x1480], rax
movabs rdi, 0xb515cefa857f5e9a
movabs r12, 0xb515cefa5b14880b
xor r13d, r13d
xor ecx, ecx
call fcn.1400cb38c
mov ecx, eax
call fcn.1400cc388
lea rbx, [rsp + 0xc0]
mov qword [rbx + 0x10], r13
vxorps xmm0, xmm0, xmm0
vmovaps xmmword [rbx], xmm0
lea r9, [rsi + 8]
mov rdx, qword [rsi + 8]
sub rdx, qword [rsi]
sar rdx, 3
mov rcx, rbx
mov r8, rsi
call fcn.1400b5f50
call fcn.1400e4f84
lea rsi, [rsp + 0xf8]
mov dword [rsi + 0x1384], 0xffffffff
mov rcx, rsi
mov edx, eax
mov r8d, 0x6c078965
call fcn.14007c46c
mov r14, qword [rbx]
mov r15, qword [rbx + 8]
lea rbp, [rsp + 0xe0]
mov rcx, rbp
mov rdx, rsi
call fcn.1400b62a8
mov rcx, r14
mov rdx, r15
mov r8, rbp
call fcn.1400b633f
mov qword [rbp + 8], r13
mov ecx, 1
call fcn.14000e59f
mov rcx, rax
call fcn.14000dcb4
mov qword [rax], rax
mov qword [rax + 8], rax
mov qword [rax + 0x10], rax
mov word [rax + 0x18], 0x101
mov qword [rbp], rax
mov rax, qword [rbx]
mov qword [rsp + 0x58], rax
mov rax, qword [rbx + 8]
mov qword [rsp + 0xa8], rax
lea rcx, [rdi + 0x1f85de2b]
lea r14, [r12 + 0xc883486]
lea r15, [r12 - 0x2b370464]
lea rbp, [r12 - 0x44bfee65]
lea rsi, [r12 - 0x55f8287f]
lea rax, [r12 - 0x5822c971]
mov qword [rsp + 0x78], rax
lea rax, [r12 - 0x5a7baaf1]
mov qword [rsp + 0x90], rax
lea rbx, [r12 - 0xe3f6276]
lea rax, [r12 - 0x363bc52b]
mov qword [rsp + 0x98], rax
lea rax, [r12 - 0x57ddfc64]
mov qword [rsp + 0x88], rax
lea rax, [r12 - 0x40518969]
mov qword [rsp + 0xa0], rax
lea rax, [r12 - 0x526a4948]
mov qword [rsp + 0x70], rax
lea rax, [r12 - 0x52e73ec2]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x38], rbp
mov qword [rsp + 0x30], rsi
cmp rcx, r14
jge 0x1400b52c3
cmp rcx, r15
jae 0x1400b5318
cmp rcx, rbp
jae 0x1400b53a9
cmp rcx, rsi
jae 0x1400b54e1
cmp rcx, qword [rsp + 0x78]
jae 0x1400b5736
cmp rcx, qword [rsp + 0x90]
jne 0x1400b527b
cmp dword [rsp + 0x60], 0xa
mov rcx, rbx
cmovl rcx, qword [rsp + 0x98]
jmp 0x1400b527b
lea rdx, [rdi + 0x2f947bf6]
cmp rcx, rdx
jge 0x1400b536b
lea rax, [rdi + 0x1943ab27]
cmp rcx, rax
jae 0x1400b53fb
lea rax, [r12 + 0x22ae4a99]
cmp rcx, rax
jae 0x1400b5558
lea rax, [r12 + 0xe0e1041]
cmp rcx, rax
jae 0x1400b5754
lea rax, [rdi + 0x2cc83282]
cmp rcx, r14
cmove rcx, rax
jmp 0x1400b527b
cmp rcx, rbx
jae 0x1400b5443
lea rax, [r12 - 0x2036fecf]
cmp rcx, rax
jae 0x1400b5590
lea rax, [r12 - 0x27bc1dfa]
cmp rcx, rax
jae 0x1400b5773
cmp rcx, r15
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rcx, [r12 + 0x809cc90]
lea rdx, [rdi + 0x71d096a3]
cmp eax, 0xa
cmovl rcx, rdx
jmp 0x1400b527b
lea rax, [rdi + 0x50ff6737]
cmp rcx, rax
jge 0x1400b5489
lea rax, [rdi + 0x42bbf244]
cmp rcx, rax
jae 0x1400b55da
lea rax, [rdi + 0x3200b4ae]
cmp rcx, rax
jae 0x1400b57cf
cmp rcx, rdx
cmove rcx, qword [rsp + 0x78]
jmp 0x1400b527b
lea rax, [r12 - 0x41ded850]
cmp rcx, rax
jae 0x1400b5622
lea rax, [r12 - 0x4391c40a]
cmp rcx, rax
jae 0x1400b5829
lea rax, [r12 - 0x44bfee65]
cmp rcx, rax
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rdx, [r12 + 0x447f603]
lea rcx, [rdi + 0x75d0bad3]
cmp eax, 5
cmovl rcx, rdx
jmp 0x1400b527b
lea rdx, [rdi + 0x1f85de2b]
cmp rcx, rdx
jae 0x1400b5669
lea rdx, [rdi + 0x1ccb3924]
cmp rcx, rdx
jae 0x1400b5884
lea rdx, [r12 - 0xd5b549f]
xor r8d, r8d
cmp rcx, rax
sete r8b
cmove rcx, rdx
mov rax, qword [rsp + 0x68]
add eax, r8d
mov qword [rsp + 0x68], rax
jmp 0x1400b527b
lea rax, [r12 + 0x44582f6]
cmp rcx, rax
jae 0x1400b56b6
lea rax, [r12 - 0xad25d18]
cmp rcx, rax
jae 0x1400b58a2
lea rax, [r12 - 0xd5b549f]
cmp rcx, rax
jae 0x1400b5af7
lea rax, [rdi + 0x1ccb3924]
cmp rcx, rbx
cmove rcx, rax
jmp 0x1400b527b
lea rdx, [rdi + 0x6e4f8dd7]
cmp rcx, rdx
jge 0x1400b56fe
lea rdx, [rdi + 0x581f6905]
cmp rcx, rdx
jae 0x1400b58f1
lea rdx, [rdi + 0x544e50df]
cmp rcx, rdx
jae 0x1400b5b19
lea rdx, [r12 + 0x44582f6]
xor r8d, r8d
cmp rcx, rax
sete r8b
cmove rcx, rdx
mov rax, qword [rsp + 0x40]
add eax, r8d
mov qword [rsp + 0x40], rax
jmp 0x1400b527b
cmp rcx, qword [rsp + 0x70]
jae 0x1400b5929
cmp rcx, qword [rsp + 0x80]
jae 0x1400b5b37
lea rax, [r12 - 0x55f8287f]
cmp rcx, rax
jne 0x1400b527b
lea rsi, [rsp + 0xe0]
mov rcx, rsi
lea rdx, [rsp + 0xf8]
lea r13, [rsp + 0xbc]
mov r8, r13
call fcn.1400b6a06
mov rdx, qword [rsp + 0x108]
mov rcx, rsi
mov rsi, qword [rsp + 0x30]
mov r8, r13
call fcn.1400b699a
lea rcx, [rdi + 0x2bc41692]
test al, al
cmovne rcx, rdi
jmp 0x1400b527b
cmp rcx, rdi
jae 0x1400b5962
lea rdx, [rdi - 0x47c1335]
cmp rcx, rdx
jae 0x1400b5b67
cmp rcx, rax
jne 0x1400b527b
lea rsi, [0x1401df660]
mov rcx, rsi
lea rdx, str.Trash_code_8
jmp 0x1400b5dbc
lea rdx, [r12 - 0x1ca5e9b9]
cmp rcx, rdx
jae 0x1400b59ad
lea rdx, [r12 - 0x1f698ce4]
cmp rcx, rdx
jae 0x1400b5b7a
cmp rcx, rax
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rcx, [r12 + 0x9570838]
lea rdx, [rdi + 0x48f2c7fe]
cmp eax, 7
cmovl rcx, rdx
jmp 0x1400b527b
lea rdx, [rdi + 0x4d7ffd1b]
cmp rcx, rdx
jae 0x1400b59cc
lea rdx, [rdi + 0x48f2c7fe]
cmp rcx, rdx
jae 0x1400b5ba2
lea rdx, [rdi + 0x1f85de2b]
xor r8d, r8d
cmp rcx, rax
sete r8b
mov rax, qword [rsp + 0x58]
lea rax, [rax + r8*8]
mov qword [rsp + 0x58], rax
cmove rcx, rdx
jmp 0x1400b527b
lea rdx, [r12 - 0x3caabb86]
cmp rcx, rdx
jae 0x1400b59e9
lea rdx, [r12 - 0x40518969]
cmp rcx, rdx
jae 0x1400b5bbe
cmp rcx, rax
jne 0x1400b527b
lea rcx, [rdi - 0x47c1335]
lea rax, [rdi + 0x1d942cc5]
cmp dword [rsp + 0x50], 0xa
cmovl rcx, rax
jmp 0x1400b527b
lea rax, [rdi + 0x2bc41692]
cmp rcx, rax
jae 0x1400b5a3d
lea rax, [rdi + 0x2b78dc0b]
cmp rcx, rax
jae 0x1400b5bda
cmp rcx, rdx
jne 0x1400b527b
lea rcx, [rdi + 0x6e4f8dd7]
lea rax, [rdi + 0x5c442739]
mov rdx, qword [rsp + 0xa8]
cmp qword [rsp + 0x58], rdx
cmove rcx, rax
jmp 0x1400b527b
lea rdx, [r12 + 0x809cc90]
cmp rcx, rdx
jae 0x1400b5a86
lea rdx, [r12 + 0x447f603]
cmp rcx, rdx
jae 0x1400b5be3
cmp rcx, rax
jne 0x1400b527b
lea rax, [r12 - 0x4391c40a]
lea rcx, [rdi + 0x2f947bf6]
cmp dword [rsp + 0x40], 0xa
cmovl rcx, rax
jmp 0x1400b527b
lea rax, [rdi + 0x75d0bad3]
cmp rcx, rax
jge 0x1400b5abf
lea rax, [rdi + 0x71d096a3]
cmp rcx, rax
jae 0x1400b5c07
cmp rcx, rdx
jne 0x1400b527b
mov rax, qword [rsp + 0x58]
call qword [rax]
mov rcx, rdi
jmp 0x1400b527b
cmp rcx, qword [rsp + 0x88]
jae 0x1400b5c4a
cmp rcx, qword [rsp + 0x78]
jne 0x1400b527b
jmp 0x1400b5e23
lea rdx, [r12 + 0x137209c3]
cmp rcx, rdx
jae 0x1400b5c8d
cmp rcx, rax
jne 0x1400b527b
jmp 0x1400b5e23
lea rdx, [r12 - 0x23eef4e6]
cmp rcx, rdx
jae 0x1400b5ca9
cmp rcx, rax
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Random_number:
call fcn.14000c603
mov r13, rax
lea rcx, [rsp + 0xba]
call fcn.1400b7d00
mov rcx, r13
mov edx, eax
call fcn.14004203a
mov rcx, rax
call fcn.14000cc2d
mov rcx, qword [rsp + 0x80]
jmp 0x1400b527b
lea rdx, [rdi + 0x34649b25]
cmp rcx, rdx
jae 0x1400b5cd1
cmp rcx, rax
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Random_number:
call fcn.14000c603
mov r13, rax
lea rcx, [rsp + 0xb9]
call fcn.1400b7d00
mov rcx, r13
mov edx, eax
call fcn.14004203a
mov rcx, rax
call fcn.14000cc2d
lea rcx, [rdi + 0x1943ab27]
jmp 0x1400b527b
lea rdx, [r12 - 0x424d2e3b]
cmp rcx, rdx
jae 0x1400b5ced
cmp rcx, rax
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Random_number:
call fcn.14000c603
mov r13, rax
lea rcx, [rsp + 0xb7]
call fcn.1400b7d00
mov rcx, r13
mov edx, eax
call fcn.14004203a
mov rcx, rax
call fcn.14000cc2d
lea rcx, [rdi + 0x50ff6737]
jmp 0x1400b527b
lea rax, [rdi + 0x1d942cc5]
cmp rcx, rax
jae 0x1400b5d09
cmp rcx, rdx
jne 0x1400b527b
jmp 0x1400b5e23
cmp rcx, r12
jae 0x1400b5d51
cmp rcx, rax
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Trash_code_1
call fcn.14000c603
mov rcx, rax
call fcn.14000cc2d
xor eax, eax
mov qword [rsp + 0x50], rax
xor ecx, ecx
call fcn.1400cb38c
mov ecx, eax
call fcn.1400cc388
lea rcx, [r12 - 0x41ded850]
jmp 0x1400b527b
lea rax, [rdi + 0x5c442739]
cmp rcx, rax
jae 0x1400b5d63
cmp rcx, rdx
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rdx, [r12 + 0x137209c3]
lea rcx, [rdi + 0x75d999dc]
cmp eax, 3
cmovl rcx, rdx
jmp 0x1400b527b
lea rax, [r12 - 0x4585d1b1]
cmp rcx, rax
jae 0x1400b5d77
cmp rcx, qword [rsp + 0x70]
jne 0x1400b527b
lea rax, [r12 - 0x424d2e3b]
lea rcx, [rdi + 0x2b78dc0b]
cmp dword [rsp + 0x2c], 0
cmove rcx, rax
jmp 0x1400b527b
lea rax, [rdi + 0x10f1b361]
cmp rcx, rax
jae 0x1400b5d9d
cmp rcx, rdi
jne 0x1400b527b
call fcn.1400cc35c
cdqe
imul rcx, rax, 0x2e8ba2e9
mov rdx, rcx
shr rdx, 0x3f
sar rcx, 0x21
add ecx, edx
lea edx, [rcx + rcx*4]
lea ecx, [rcx + rdx*2]
sub eax, ecx
mov dword [rsp + 0xbc], eax
mov rcx, rsi
jmp 0x1400b527b
lea rax, [r12 - 0x15566d71]
cmp rcx, rax
jae 0x1400b5da5
cmp rcx, rdx
jne 0x1400b527b
jmp 0x1400b5ef6
lea rax, [rdi + 0x50f22c93]
cmp rcx, rax
jae 0x1400b5e2b
lea rax, [r12 + 0xe0e1041]
jmp 0x1400b5b6e
cmp rcx, qword [rsp + 0x98]
jae 0x1400b5e49
cmp rcx, rdx
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Trash_code_5
call fcn.14000c603
mov rcx, rax
call fcn.14000cc2d
xor eax, eax
mov qword [rsp + 0x68], rax
xor ecx, ecx
call fcn.1400cb38c
mov ecx, eax
call fcn.1400cc388
lea rcx, [r12 - 0xd5b549f]
jmp 0x1400b527b
lea rdx, [rdi + 0x2cc83282]
cmp rcx, rdx
jae 0x1400b5d9d
cmp rcx, rax
jne 0x1400b527b
lea rcx, [rsp + 0xe0]
lea rdx, [rsp + 0xf8]
lea r8, [rsp + 0xbc]
call fcn.1400b6ade
mov eax, dword [rsp + 0xbc]
mov dword [rsp + 0x2c], eax
mov rcx, rbp
jmp 0x1400b527b
lea rax, [r12 + 0x9570838]
cmp rcx, rax
jae 0x1400b5e91
cmp rcx, rdx
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rdx, [r12 - 0x15566d71]
lea rcx, [rdi + 0x2b78dc0b]
cmp eax, 0xa
cmove rcx, rdx
jmp 0x1400b527b
lea rdx, [rdi + 0x75d999dc]
cmp rcx, rdx
jge 0x1400b5ed4
cmp rcx, rax
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rdx, [r12 - 0x4585d1b1]
lea rcx, [rdi + 0x50f22c93]
cmp eax, 8
cmovl rcx, rdx
jmp 0x1400b527b
jne 0x1400b527b
lea rcx, [rdi + 0x4d7ffd1b]
lea rax, [rdi + 0x3200b4ae]
cmp dword [rsp + 0x68], 0xa
cmovl rcx, rax
jmp 0x1400b527b
jne 0x1400b527b
lea rcx, [r12 - 0xad25d18]
cmp dword [rsp + 0x2c], 0
cmovle rcx, qword [rsp + 0x70]
jmp 0x1400b527b
lea rax, [r12 - 0x52e73ec2]
lea rdx, [r12 - 0x40518969]
xor r8d, r8d
cmp rcx, rax
sete r8b
cmove rcx, rdx
mov rax, qword [rsp + 0x48]
add eax, r8d
mov qword [rsp + 0x48], rax
jmp 0x1400b527b
lea rax, [rdi + 0x10f1b361]
cmp rcx, rdx
cmove rcx, rax
jmp 0x1400b527b
lea rax, [r12 - 0x5a7baaf1]
xor r8d, r8d
cmp rcx, rdx
sete r8b
cmove rcx, rax
mov rax, qword [rsp + 0x60]
add eax, r8d
mov qword [rsp + 0x60], rax
jmp 0x1400b527b
jne 0x1400b527b
lea rsi, [0x1401df660]
mov rcx, rsi
lea rdx, str.Trash_code_6
jmp 0x1400b5dbc
jne 0x1400b527b
lea rcx, [r12 - 0x27bc1dfa]
cmp dword [rsp + 0x48], 0xa
cmovge rcx, r14
jmp 0x1400b527b
cmove rcx, r12
jmp 0x1400b527b
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rcx, [rdi + 0x581f6905]
lea rdx, [rdi + 0x544e50df]
cmp eax, 2
cmovl rcx, rdx
jmp 0x1400b527b
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Trash_code_9
call fcn.14000c603
mov rcx, rax
call fcn.14000cc2d
xor eax, eax
mov qword [rsp + 0x40], rax
xor ecx, ecx
call fcn.1400cb38c
mov ecx, eax
call fcn.1400cc388
lea rcx, [r12 + 0x44582f6]
jmp 0x1400b527b
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Trash_code_3
call fcn.14000c603
mov rcx, rax
call fcn.14000cc2d
xor eax, eax
mov qword [rsp + 0x48], rax
xor ecx, ecx
call fcn.1400cb38c
mov ecx, eax
call fcn.1400cc388
mov rcx, qword [rsp + 0xa0]
jmp 0x1400b527b
jne 0x1400b527b
lea rsi, [0x1401df660]
mov rcx, rsi
lea rdx, str.Trash_code_2
jmp 0x1400b5dbc
lea rax, [r12 - 0x41ded850]
xor r8d, r8d
cmp rcx, rdx
sete r8b
cmove rcx, rax
mov rax, qword [rsp + 0x50]
add eax, r8d
mov qword [rsp + 0x50], rax
jmp 0x1400b527b
jne 0x1400b527b
lea rsi, [0x1401df660]
mov rcx, rsi
lea rdx, str.Trash_code_4
jmp 0x1400b5dbc
jne 0x1400b527b
lea rsi, [0x1401df660]
mov rcx, rsi
lea rdx, str.Trash_code_0
jmp 0x1400b5dbc
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Random_number:_:
call fcn.14000c603
mov r13, rax
lea rcx, [rsp + 0xbb]
call fcn.1400b7d00
mov rcx, r13
mov edx, eax
call fcn.14004203a
mov rcx, rax
call fcn.14000cc2d
lea rcx, [r12 - 0x23eef4e6]
jmp 0x1400b527b
jne 0x1400b527b
lea rcx, [rdi + 0x42bbf244]
jmp 0x1400b527b
lea rdx, [r12 - 0x1ca5e9b9]
cmp rcx, rax
cmove rcx, rdx
jmp 0x1400b527b
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rcx, [r12 - 0x2036fecf]
lea rdx, [r12 - 0x3caabb86]
cmp eax, 6
cmovl rcx, rdx
jmp 0x1400b527b
jne 0x1400b527b
jmp 0x1400b5e23
jne 0x1400b527b
lea rsi, [0x1401df660]
mov rcx, rsi
lea rdx, str.Trash_code_10
call fcn.14000c603
mov rcx, rax
call fcn.14000cc2d
mov rcx, rsi
lea rdx, str.Random_string:
call fcn.14000c603
mov r13, rax
lea rsi, [rsp + 0xf8]
mov rcx, rsi
call fcn.1400b781c
mov rbp, qword [rsp + 0x108]
mov rcx, rsi
call fcn.1400121c8
mov rcx, r13
mov rdx, rax
mov r8, rbp
mov rbp, qword [rsp + 0x38]
call fcn.14007f952
mov rcx, rax
call fcn.14000cc2d
mov rcx, rsi
mov rsi, qword [rsp + 0x30]
call fcn.14000e914
mov rcx, r12
jmp 0x1400b527b
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rcx, [r12 + 0x22ae4a99]
cmp eax, 9
cmovge rcx, r15
jmp 0x1400b527b
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Random_number:
call fcn.14000c603
mov r13, rax
lea rcx, [rsp + 0xb8]
call fcn.1400b7d00
mov rcx, r13
mov edx, eax
call fcn.14004203a
mov rcx, rax
call fcn.14000cc2d
lea rcx, [r12 - 0x1f698ce4]
jmp 0x1400b527b
jne 0x1400b527b
lea rcx, [0x1401df660]
lea rdx, str.Trash_code_7
call fcn.14000c603
mov rcx, rax
call fcn.14000cc2d
xor eax, eax
mov qword [rsp + 0x60], rax
xor ecx, ecx
call fcn.1400cb38c
mov ecx, eax
call fcn.1400cc388
mov rcx, qword [rsp + 0x90]
jmp 0x1400b527b
jne 0x1400b527b
mov eax, dword [rsp + 0x2c]
lea rcx, [rdi + 0x34649b25]
cmp eax, 4
cmovl rcx, qword [rsp + 0x88]
jmp 0x1400b527b
lea rsi, [rsp + 0xe0]
mov rax, qword [rsi]
mov r8, qword [rax + 8]
mov rcx, rsi
mov rdx, rsi
call fcn.1400b6218
mov rcx, qword [rsi]
mov edx, 0x20
call fcn.14000e72a
lea rcx, [rsp + 0xc0]
call fcn.1400b618c
mov rcx, qword [rsp + 0x1480]
xor rcx, rsp
call fcn.1400b84b0
nop
add rsp, 0x1488
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret