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

Disassembly:
push rsi
push rdi
sub rsp, 0x48
mov rdi, rcx
mov qword [rsp + 0x38], rcx
mov rax, qword [rsp + 0x38]
mov qword [rsp + 0x30], rax
mov eax, 0x25de1de5
jmp 0x1400ad33a
mov eax, 0x298859f7
cmp ecx, 0xa
cmovl eax, edx
cmp eax, 0x4c87911
jle 0x1400ad380
cmp eax, 0x298859f6
jg 0x1400ad3b0
cmp eax, 0x1523b187
jg 0x1400ad429
cmp eax, 0x4c87912
je 0x1400ad50e
cmp eax, 0xdef5246
jne 0x1400ad33a
mov eax, dword [rsp + 0x28]
cmp eax, 0x4e0
setae byte [rsp + 0x27]
mov eax, 0x4224b4b0
jmp 0x1400ad33a
cmp eax, 0x97f1bf50
jg 0x1400ad3e0
cmp eax, 0x8dd2497e
jg 0x1400ad462
cmp eax, 0x80a281ed
je 0x1400ad539
cmp eax, 0x891cee3a
jne 0x1400ad33a
mov eax, 0x1523b188
jmp 0x1400ad33a
cmp eax, 0x4224b4af
jg 0x1400ad4a8
cmp eax, 0x298859f7
je 0x1400ad54b
cmp eax, 0x375f87c8
jne 0x1400ad33a
mov eax, 0x1523b188
jmp 0x1400ad33a
cmp eax, 0xa99590f7
jg 0x1400ad4e9
cmp eax, 0x97f1bf51
je 0x1400ad555
cmp eax, 0x99abbcfd
jne 0x1400ad33a
mov eax, dword [0x140355980]
mov ecx, dword [0x140355984]
lea esi, [rax - 1]
imul esi, eax
mov edx, 0x95de7ebe
mov eax, 0x95de7ebe
test sil, 1
je 0x1400ad334
jmp 0x1400ad49e
cmp eax, 0x1523b188
je 0x1400ad55f
cmp eax, 0x25de1de5
jne 0x1400ad33a
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
mov dword [rsp + 0x28], eax
mov eax, dword [rsp + 0x28]
cmp eax, 0x270
sete byte [rsp + 0x26]
mov eax, 0x4c87912
jmp 0x1400ad33a
cmp eax, 0x8dd2497f
je 0x1400ad582
cmp eax, 0x95de7ebe
jne 0x1400ad33a
mov eax, dword [0x140355980]
mov ecx, dword [0x140355984]
lea esi, [rax - 1]
imul esi, eax
mov edx, 0x375f87c8
mov eax, 0x375f87c8
test sil, 1
je 0x1400ad334
mov eax, 0x97f1bf51
jmp 0x1400ad334
cmp eax, 0x4224b4b0
je 0x1400ad594
cmp eax, 0x5110a4ae
jne 0x1400ad33a
mov eax, dword [0x140355980]
mov ecx, dword [0x140355984]
lea esi, [rax - 1]
imul esi, eax
mov edx, 0xc0406ea8
mov eax, 0xc0406ea8
test sil, 1
je 0x1400ad334
jmp 0x1400ad32f
cmp eax, 0xc0406ea8
jne 0x1400ad5ae
cmp byte [rsp + 0x26], 0
mov eax, 0x8dd2497f
jne 0x1400ad33a
mov eax, 0xdef5246
jmp 0x1400ad33a
mov eax, dword [0x140355980]
mov ecx, dword [0x140355984]
lea esi, [rax - 1]
imul esi, eax
mov edx, 0x5110a4ae
mov eax, 0x5110a4ae
test sil, 1
je 0x1400ad334
jmp 0x1400ad32f
mov rcx, rdi
call fcn.1400ad7a0
mov eax, 0x891cee3a
jmp 0x1400ad33a
mov eax, 0x5110a4ae
jmp 0x1400ad33a
mov eax, 0x95de7ebe
jmp 0x1400ad33a
mov rax, qword [rsp + 0x38]
add rax, 4
mov qword [rsp + 0x40], rax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax]
mov dword [rsp + 0x2c], eax
mov eax, 0xa99590f8
jmp 0x1400ad33a
mov rcx, rdi
call fcn.1400ad610
mov eax, 0x99abbcfd
jmp 0x1400ad33a
cmp byte [rsp + 0x27], 0
mov eax, 0x80a281ed
jne 0x1400ad33a
mov eax, 0x1523b188
jmp 0x1400ad33a
cmp eax, 0xa99590f8
jne 0x1400ad33a
mov eax, dword [rsp + 0x2c]
add eax, 1
mov rcx, qword [rsp + 0x30]
mov dword [rcx], eax
mov eax, dword [rsp + 0x2c]
mov rcx, qword [rsp + 0x40]
mov eax, dword [rcx + rax*4]
mov ecx, eax
shr ecx, 0xb
and ecx, dword [rdi + 0x1384]
xor ecx, eax
mov eax, ecx
shl eax, 7
and eax, 0x9d2c5680
xor eax, ecx
mov ecx, eax
shl ecx, 0xf
and ecx, 0xefc60000
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
add rsp, 0x48
pop rdi
pop rsi
ret