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

Disassembly:
mov rax, rsp
push rbp
push r13
push r15
sub rsp, 0xa0
mov r13, qword [0x140101108]
xor bpl, bpl
mov qword [rax + 8], rbx
mov rbx, r8
mov qword [rax - 0x20], rsi
mov r8d, 0xa
xor esi, esi
mov qword [rax - 0x28], rdi
mov qword [rax - 0x30], r12
xor dil, dil
mov qword [rax - 0x38], r14
mov r12, rcx
mov eax, 0xffffffff
mov qword [rsp + 0x38], rsi
mov dword [rsp + 0x44], eax
lea r15d, [rsi + 1]
xor al, al
mov qword [rsp + 0x48], r13
mov r14, rdx
movzx edx, r8w
mov qword [0x140101108], rsi
mov word [rsp + 0x30], dx
mov byte [0x1401011c5], sil
mov byte [0x1401011c4], sil
mov byte [0x1401010df], sil
mov dword [0x140101104], esi
mov byte [rsp + 0xd0], sil
mov byte [rsp + 0xd8], dil
mov byte [rsp + 0x34], sil
mov byte [rsp + 0x33], al
mov byte [rsp + 0x32], al
cmp word [rbx], si
je 0x14004859d
lea rdi, [0x140000000]
movzx ecx, word [rbx]
call fcn.1400afcd8
movzx eax, ax
add eax, 0xffffffbd
cmp eax, 0x19
ja case.0x1400483bd.76
cdqe
movzx eax, byte [rdi + rax + 0x48d54]
mov ecx, dword [rdi + rax*4 + 0x48d2c]
add rcx, rdi
jmp rcx
movzx edi, word [rbx + 2]
test edi, 0xffffff80
jne 0x1400483de
mov edx, 2
mov ecx, edi
call fcn.1400aa514
test eax, eax
je 0x1400483de
and edi, 0xffffffdf
movzx edx, word [rsp + 0x30]
cmp di, 0x4c
lea rdi, [0x140000000]
jne 0x140048402
add rbx, 2
mov byte [0x1401011c5], 2
xor esi, esi
jmp 0x140048586
mov byte [0x1401011c5], r15b
xor esi, esi
jmp 0x140048586
cmp word [rbx + 2], 0
lea rax, [rbx + 2]
je case.0x1400483bd.76
mov rbx, rax
movzx eax, word [rax]
test ax, ax
je case.0x1400483bd.76
movzx edx, ax
mov word [rsp + 0x30], ax
jmp 0x140048586
movzx eax, word [rbx + 2]
add rbx, 2
cmp ax, 0x20
je case.0x1400483bd.69
cmp ax, 9
je case.0x1400483bd.69
mov rdi, rbx
movzx edx, ax
test ax, ax
je 0x14004848f
nop word [rax + rax]
lea rcx, [0x1400df950]
mov eax, SafeArrayAllocDescriptor
nop dword [rax]
cmp dx, ax
je 0x1400484a3
movzx eax, word [rcx + 2]
add rcx, 2
test ax, ax
jne 0x140048470
movzx edx, word [rdi + 2]
add rdi, 2
test dx, dx
jne 0x140048460
or rax, 0xffffffffffffffff
cmp word [rbx + rax*2 + 2], 0
lea rax, [rax + 1]
jne 0x140048493
lea rdi, [rbx + rax*2]
mov r8, rdi
lea rcx, [0x1401053a0]
sub r8, rbx
xor r9d, r9d
sar r8, 1
mov rdx, rbx
call fcn.140023dc0
mov qword [0x140101108], rax
mov rcx, rax
test rax, rax
je 0x140048cbb
cmp byte [rax + 0x5d], 0
jne 0x140048cbb
mov eax, dword [rax + 0x20]
sub eax, 2
cmp eax, r15d
ja 0x140048cbb
mov rax, qword [rcx + 0x18]
cmp word [rax + 8], 0
jne 0x140048cbb
cmp word [rax + 0x20], 0
jne 0x140048cbb
lea rbx, [rdi - 2]
lea rdi, [0x140000000]
jmp case.0x1400483bd.76
mov byte [0x1401011c4], r15b
jmp case.0x1400483bd.76
lea rcx, [rbx + 2]
call fcn.1400ab54c
cmp eax, r15d
cmovl eax, r15d
dec eax
mov dword [0x140101104], eax
jmp case.0x1400483bd.76
mov r8d, 6
lea rdx, str.Random
mov rcx, rbx
call fcn.1400a9f58
movzx edx, word [rsp + 0x30]
test eax, eax
jne 0x140048560
movzx eax, r15b
add rbx, 0xa
mov byte [rsp + 0x33], al
jmp 0x140048586
mov byte [0x1401010df], r15b
jmp 0x140048586
mov dword [rsp + 0x44], esi
xor esi, esi
mov byte [rsp + 0x32], r15b
jmp case.0x1400483bd.76
movzx ebp, r15b
jmp case.0x1400483bd.76
mov byte [rsp + 0x34], r15b
movzx edx, word [rsp + 0x30]
add rbx, 2
cmp word [rbx], 0
jne 0x140048392
xor dil, dil
mov r8d, 0xa
movzx ecx, word [r14]
test cx, cx
je 0x140048cbb
mov r13, qword [0x140105130]
mov qword [rsp + 0x58], r13
movzx eax, byte [r13 + 0x23]
test al, al
jne 0x1400485c7
mov rax, qword [r13 + 0x10]
movzx eax, byte [rax + 0x23]
cmp al, 2
ja 0x140048cb6
mov rbx, r15
mov rax, r14
cmp cx, dx
jne 0x1400485dd
inc rbx
movzx ecx, word [rax + 2]
add rax, 2
test cx, cx
jne 0x1400485d5
mov rsi, rax
sub rsi, r14
sar rsi, 1
test bpl, bpl
jne 0x140048610
cmp rax, r14
jbe 0x140048610
cmp word [rax - 2], dx
jne 0x140048610
mov byte [rsp + 0xd0], r15b
dec rbx
jmp 0x140048646
cmp dx, 0xa
jne 0x140048646
mov edx, r8d
mov rcx, r14
call fcn.1400a5b28
test rax, rax
je 0x140048646
cmp rax, r14
jbe 0x140048646
cmp word [rax - 2], 0xd
jne 0x140048646
movzx edi, r15b
mov byte [rsp + 0xd8], r15b
mov byte [rsp + 0xd0], r15b
cmp rbx, r15
jne 0x140048669
xor r9d, r9d
mov byte [rsp + 0x20], r15b
mov r8, rsi
mov rdx, r14
mov rcx, r13
call fcn.14008ac50
mov r15d, eax
jmp 0x140048cb6
cmp qword [0x140101108], 0
jne 0x14004867c
test dil, dil
je 0x140048704
lea rcx, [rsi*2 + 6]
call fcn.1400a7ae8
mov qword [rsp + 0x38], rax
mov rbp, rax
test rax, rax
jne 0x1400486bc
lea r9, [0x1400e8120]
xor r8d, r8d
lea rdx, str.Out_of_memory.
mov rcx, r12
call fcn.1400358e0
mov r13, qword [rsp + 0x48]
mov r15d, eax
jmp 0x140048cc0
lea rdi, [rsi + rsi]
mov rdx, r14
lea r8, [rdi + 2]
mov rcx, rax
call fcn.1400a56f0
cmp byte [rsp + 0xd8], 0
mov r14, rbp
je 0x140048704
lea rcx, [0x1400e7050]
sub rdi, rcx
lea rdx, [rdi + rbp]
nop word [rax + rax]
movzx eax, word [rcx]
mov word [rdx + rcx], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x1400486f0
add rsi, 2
movzx ebp, byte [rsp + 0x33]
lea rcx, [rbx + 1]
xor eax, eax
test bpl, bpl
setne al
inc eax
cdqe
lea rdi, [rax*8]
imul rcx, rdi
mov qword [rsp + 0x50], rdi
call fcn.1400a7ae8
mov qword [rsp + 0x60], rax
mov r15, rax
test rax, rax
jne 0x14004875d
lea r9, [0x1400e8120]
xor r8d, r8d
lea rdx, str.Out_of_memory.
mov rcx, r12
call fcn.1400358e0
mov r15d, eax
jmp 0x140048cb6
mov rdx, qword [0x140106bf0]
xor ecx, ecx
mov qword [rax], r14
mov rbx, rax
mov r12d, ecx
cmp word [r14], cx
je 0x1400487fc
movzx eax, word [rsp + 0x30]
nop
cmp word [r14], ax
jne 0x1400487f1
inc r12
mov word [r14], cx
test bpl, bpl
je 0x1400487e2
sub dword [0x1400fe454], 1
jne 0x1400487a7
call fcn.140015000
mov rdx, qword [0x140106bf0]
mov ecx, dword [rdx]
mov eax, ecx
shr eax, 0xb
add rdx, 4
xor ecx, eax
mov qword [0x140106bf0], rdx
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
shr eax, 1
mov qword [rbx + 8], rax
xor ecx, ecx
lea rax, [r14 + 2]
add rbx, rdi
mov qword [rbx], rax
movzx eax, word [rsp + 0x30]
add r14, 2
cmp word [r14], 0
jne 0x140048780
cmp byte [rsp + 0xd0], 0
jne 0x14004885c
inc r12
test bpl, bpl
je 0x14004885c
sub dword [0x1400fe454], 1
jne 0x140048823
call fcn.140015000
mov rdx, qword [0x140106bf0]
mov ecx, dword [rdx]
mov eax, ecx
shr eax, 0xb
add rdx, 4
xor ecx, eax
mov qword [0x140106bf0], rdx
mov eax, ecx
and eax, 0xff3a58ad
shl eax, 7
xor ecx, eax
mov eax, ecx
and eax, 0xffffdf8c
shl eax, 0xf
xor ecx, eax
mov eax, ecx
shr eax, 0x12
xor eax, ecx
shr eax, 1
mov qword [rbx + 8], rax
cmp qword [0x140101108], 0
je 0x14004886f
lea r9, [0x1400480a0]
jmp 0x140048894
test bpl, bpl
je 0x14004887d
lea r9, [0x140048090]
jmp 0x140048894
cmp byte [rsp + 0x34], 0
lea r9, [0x140047e60]
lea rax, [0x140047fe0]
cmovne r9, rax
mov r8, rdi
mov rdx, r12
mov rcx, r15
call fcn.1400aa1e0
xor r9d, r9d
mov byte [rsp + 0x20], 1
mov r8, rsi
xor edx, edx
mov rcx, r13
call fcn.14008ac50
cmp eax, 1
je 0x1400488c6
xor eax, eax
mov r15d, eax
jmp 0x140048cb6
xor eax, eax
lea rdi, [r12 - 1]
mov esi, eax
mov dword [rsp + 0x40], eax
mov r14, r15
cmp byte [r13 + 0x23], al
jne 0x1400488e2
mov rbx, qword [r13 + 0x10]
jmp 0x1400488e5
mov rbx, r13
test byte [rbx + 0x21], 8
je 0x1400488f3
mov rcx, rbx
call fcn.140001500
movzx eax, byte [rbx + 0x23]
lea rbp, [0x1400cbfb0]
lea r15, [0x140105300]
cmp al, 1
jne 0x14004891d
test byte [rbx + 0x21], 4
je 0x140048917
mov rdx, rbx
call fcn.1400366a0
mov rbx, qword [rbx + 8]
jmp 0x140048975
cmp al, 2
jne 0x140048972
mov rbx, qword [0x140105fe8]
test rbx, rbx
jne 0x140048975
lea ecx, [rbx + 0xd]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x140048952
lea ecx, [rbx + 0xf]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
lea rbx, [0x1400e8120]
cmovne rbx, rbp
jmp 0x140048975
xor edx, edx
call fcn.140004cf0
mov ecx, 0xffffffff
lea rbx, [0x1400e8120]
cmp rax, rcx
cmovne rbx, qword [0x140105fe0]
jmp 0x140048975
mov rbx, r15
xor r8d, r8d
mov ebp, r8d
test r12, r12
je 0x140048a9a
movzx r15d, word [rsp + 0x30]
mov r13d, esi
movaps xmmword [rsp + 0x70], xmm6
cmp byte [rsp + 0x32], 0
je 0x140048a29
test rsi, rsi
je 0x140048a29
cmp byte [0x1401011c4], 0
je 0x140048ad1
cmp dword [0x140101104], 0
jne 0x140048ad1
mov rdi, qword [r14]
mov rcx, rdi
call fcn.14000ed20
mov rcx, rdi
test al, al
je 0x1400489e7
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.1400ab950
xorps xmm6, xmm6
cvtsi2sd xmm6, rax
jmp 0x1400489ef
call fcn.1400af730
movaps xmm6, xmm0
mov rcx, rsi
call fcn.14000ed20
mov rcx, rsi
test al, al
je 0x140048a13
xor edx, edx
lea r8d, [rdx + 0x10]
call fcn.1400ab950
xorps xmm0, xmm0
cvtsi2sd xmm0, rax
jmp 0x140048a18
call fcn.1400af730
ucomisd xmm6, xmm0
jp 0x140048a24
je 0x140048b2c
lea rdi, [r12 - 1]
mov rax, qword [r14]
movzx ecx, word [rax]
test cx, cx
je 0x140048a53
nop dword [rax]
nop dword [rax + rax]
mov word [rbx], cx
lea rax, [rax + 2]
movzx ecx, word [rax]
add rbx, 2
test cx, cx
jne 0x140048a40
cmp rbp, rdi
jb 0x140048a62
cmp byte [rsp + 0xd0], 0
je 0x140048a6a
mov word [rbx], r15w
add rbx, 2
mov rsi, qword [r14]
add r14, qword [rsp + 0x50]
inc rbp
mov r8d, 0
cmp rbp, r12
jb 0x140048992
movaps xmm6, xmmword [rsp + 0x70]
lea r15, [0x140105300]
mov dword [rsp + 0x40], r13d
mov r13, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
call fcn.1400aba10
xor eax, eax
lea rdi, [0x140106c28]
cmp byte [rsp + 0xd8], al
je 0x140048b7e
mov word [rbx - 4], ax
cmp byte [r13 + 0x23], al
jne 0x140048b54
mov rbx, qword [r13 + 0x10]
jmp 0x140048b57
cmp byte [0x1401011c5], 0
mov rdx, rsi
jne 0x140048ae7
mov rcx, qword [r14]
call fcn.1400a7970
jmp 0x140048b1d
cmp byte [0x1401011c5], 2
jne 0x140048afb
mov rcx, qword [r14]
call qword [sym.imp.KERNEL32.dll_lstrcmpiW]
jmp 0x140048b1d
mov rax, qword [r14]
sub rdx, rax
movzx ecx, word [rax]
cmp cx, word [rax + rdx]
jne 0x140048b18
add rax, 2
test cx, cx
jne 0x140048b01
mov eax, r8d
jmp 0x140048b1d
sbb eax, eax
or eax, 1
test eax, eax
setne al
test al, al
jne 0x140048a29
jmp 0x140048b31
lea rdi, [r12 - 1]
inc r13d
cmp rbp, rdi
jne 0x140048a6d
cmp byte [rsp + 0xd0], 0
jne 0x140048a6d
sub rbx, 2
jmp 0x140048a6d
mov rbx, r13
cmp byte [rbx + 0x23], 1
jne 0x140048b75
test byte [rbx + 0x21], 8
je 0x140048b6b
mov rcx, rbx
call fcn.140001500
add rbx, 0x10
add qword [rbx], 0xfffffffffffffffc
jmp 0x140048b81
mov rbx, rdi
add qword [rbx], 0xfffffffffffffffc
jmp 0x140048b81
mov word [rbx], ax
cmp byte [rsp + 0x32], 0
je 0x140048c7e
mov esi, dword [rsp + 0x40]
test esi, esi
je 0x140048c7e
cmp byte [r13 + 0x23], 0
jne 0x140048ba5
mov rbx, qword [r13 + 0x10]
jmp 0x140048ba8
mov rbx, r13
test byte [rbx + 0x21], 8
je 0x140048bb6
mov rcx, rbx
call fcn.140001500
movzx eax, byte [rbx + 0x23]
cmp al, 1
jne 0x140048bd2
test byte [rbx + 0x21], 4
je 0x140048bcc
mov rdx, rbx
call fcn.1400366a0
mov r15, qword [rbx + 8]
jmp 0x140048c2d
cmp al, 2
jne 0x140048c2d
mov r15, qword [0x140105fe8]
test r15, r15
jne 0x140048c2d
lea ecx, [r15 + 0xd]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
jne 0x140048c0f
lea ecx, [rax + 0xf]
call qword [sym.imp.USER32.dll_IsClipboardFormatAvailable]
test eax, eax
lea r15, [0x1400e8120]
lea rax, [0x1400cbfb0]
cmovne r15, rax
jmp 0x140048c2d
xor edx, edx
call fcn.140004cf0
mov ecx, 0xffffffff
lea r15, [0x1400e8120]
cmp rax, rcx
cmovne r15, qword [0x140105fe0]
or rax, 0xffffffffffffffff
inc rax
cmp word [r15 + rax*2], 0
jne 0x140048c31
cmp byte [r13 + 0x23], 0
mov qword [rsp + 0xd0], rax
jne 0x140048c51
mov rbx, qword [r13 + 0x10]
jmp 0x140048c54
mov rbx, r13
cmp byte [rbx + 0x23], 1
jne 0x140048c74
test byte [rbx + 0x21], 8
je 0x140048c70
mov rcx, rbx
call fcn.140001500
mov rax, qword [rsp + 0xd0]
lea rdi, [rbx + 0x10]
add rax, rax
mov dword [rsp + 0x44], esi
mov qword [rdi], rax
cmp byte [r13 + 0x23], 0
jne 0x140048c89
mov r13, qword [r13 + 0x10]
cmp byte [r13 + 0x23], 2
jne 0x140048cab
cmp qword [0x140105fe8], 0
je 0x140048cab
lea rcx, [0x140105fd0]
call fcn.1400050c0
mov r15d, eax
jmp 0x140048cb6
and byte [r13 + 0x21], 0x86
mov r15d, 1
mov r13, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x38]
mov eax, dword [rsp + 0x44]
mov ecx, 0xffffffff
mov r14, qword [rsp + 0x80]
mov r12, qword [rsp + 0x88]
mov rdi, qword [rsp + 0x90]
mov rsi, qword [rsp + 0x98]
mov rbx, qword [rsp + 0xc0]
cmp eax, ecx
je 0x140048d06
mov rcx, qword [0x140100ee0]
mov edx, eax
mov r8b, reloc.OLEAUT32.dll_SafeArrayGetElement
call fcn.140001460
test rbp, rbp
je 0x140048d13
mov rcx, rbp
call fcn.1400aba10
mov eax, r15d
mov qword [0x140101108], r13
add rsp, 0xa0
pop r15
pop r13
pop rbp
ret