Function at 0x180073320
Capabilities:
Generate random numbers via rtlgenrandom

Disassembly:
mov r10, rdx
lea rax, [rdx + r8]
dec rax
neg rdx
and rdx, rax
cmp rdx, r8
jb 0x1800671ec
cmp rdx, 0x1001
jae 0x1800671b3
cmp rdx, 0xf00
jbe fcn.18003a670
xor r8d, r8d
jmp fcn.18002f480
cmp r10, 0x1000
ja 0x1800671c5
cmp rdx, 0xfc001
jb 0x1800671ab
mov r9d, 0xfff
mov rdx, 0xfffffffffffff000
lea rax, [r8 + r9]
and rax, rdx
cmp rax, r8
jb 0x1800671ec
add r10, r9
and r10, rdx
mov r9, rax
add r9, r10
jae 0x1800671ef
xor eax, eax
ret
lea rdx, [r10 + r10]
cmp rax, r10
cmovb r9, rdx
add r9, 0xfffffffffffff000
cmp r9, 0xfc000
jbe 0x18006722c
cmp r10, 0x100000
ja 0x18006721e
mov r8d, 0x100000
mov rdx, rax
jmp 0x180067224
mov rdx, rax
mov r8, r10
xor r9d, r9d
jmp fcn.180001df0
mov rdx, r10
mov r8, rax
jmp fcn.180067050
jmp 0x180073260
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
mov rbx, rcx
mov rax, qword [0x1800cb028]
xor rax, rsp
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x20], rcx
mov byte [rsp + 0x28], 1
lea rax, [rdx - 1]
test rdx, rax
sete al
test rdx, rdx
setne cl
test cl, al
jne 0x1800732b2
lea rax, str.MOZ_RELEASE_ASSERT_IsPowerOfTwo_aAlignment__
mov qword [sym.mozglue.dll_gMozCrashReason], rax
int3
mov rsi, r8
mov rdi, rdx
cmp rdx, 0x1000
ja 0x1800732f3
lea rcx, [rsp + 0x20]
mov rdx, rsi
mov r8, rdi
call fcn.180064050
test rax, rax
je 0x1800732f3
mov r14, rax
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180062020
mov rax, r14
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
ret
mov rcx, qword [rsp + 0x30]
xor rcx, rsp
call fcn.180062020
mov rcx, rbx
mov rdx, rdi
mov r8, rsi
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x180073320
push r14
push rsi
push rdi
push rbx
sub rsp, 0x28
mov rsi, r8
mov rbx, rdx
cmp dword [0x1800cb718], 0
je 0x1800733a7
mov r14, rcx
test r14b, 1
jne 0x1800733e8
lea rcx, [0x1800cb540]
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov rdi, qword [0x1800cb580]
test rdi, rdi
je 0x18007338e
mov eax, 0xffffffff
xor ecx, ecx
cmp qword [rdi + 0x10], r14
setb cl
cmova ecx, eax
cmp ecx, 0xffffffff
je 0x180073386
test ecx, ecx
je 0x1800734e5
mov rdi, qword [rdi + 8]
and rdi, 0xfffffffffffffffe
jmp 0x180073389
mov rdi, qword [rdi]
test rdi, rdi
jne 0x180073363
lea rax, str.MOZ_RELEASE_ASSERT_result_
mov qword [sym.mozglue.dll_gMozCrashReason], rax
int3
xor edi, edi
call fcn.180063bd0
test al, al
je 0x180073439
cmp rsi, 1
adc rsi, 0
cmp rbx, 9
mov r14d, 8
cmovae r14, rbx
test rdi, rdi
je 0x180073445
mov rcx, rdi
mov rdx, r14
mov r8, rsi
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
jmp 0x180067180
mov rdi, qword [0x1800cb588]
test rdi, rdi
je 0x180073420
mov eax, 0xffffffff
xor ecx, ecx
cmp qword [rdi + 0x10], r14
setb cl
cmova ecx, eax
cmp ecx, 0xffffffff
je 0x180073418
test ecx, ecx
je 0x1800733a9
mov rdi, qword [rdi + 8]
and rdi, 0xfffffffffffffffe
jmp 0x18007341b
mov rdi, qword [rdi]
test rdi, rdi
jne 0x1800733f9
lea rax, str.MOZ_RELEASE_ASSERT_result_
mov qword [sym.mozglue.dll_gMozCrashReason], rax
int3
xor eax, eax
add rsp, 0x28
pop rbx
pop rdi
pop rsi
pop r14
ret
cmp rsi, 0x1f1
jb 0x18007345a
mov rdi, qword [0x1800cb568]
jmp 0x1800733d1
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 8], 0
jne 0x18007347b
call fcn.180060de8
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov rdi, qword [rax + 0x10]
test rdi, rdi
jne 0x1800733d1
mov rdi, qword [0x1800cb568]
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
cmp byte [rax + 8], 0
jne 0x1800734c6
call fcn.180060de8
mov eax, dword [0x1800cb4e0]
mov rcx, qword gs:[0x58]
mov rax, qword [rcx + rax*8]
mov qword [rax + 0x10], rdi
jmp 0x1800733d1
lea rcx, [0x1800cb540]
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x1800733a9