Function at 0x140004740
Capabilities:
Generate random numbers via winapi

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x108
mov rsi, rcx
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0xd0], xmm0
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xe0], rax
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x140004796
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140004cd6
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 3
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140004cd6
mov byte [rax + 2], 0x64
mov word [rax], 0x6d63
mov qword [rsp + 0x30], 3
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 3
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x1400047f2
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140004cdd
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 0xc
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140004cdd
movabs rcx, 0x495443415f544553
mov qword [rax], rcx
mov dword [rax + 8], 0x59544956
mov byte [rsp + 0x48], 3
mov qword [rsp + 0x50], 0xc
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 0xc
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x48]
call fcn.1400093e0
cmp byte [rsp + 0x90], 6
je 0x14000486f
lea rcx, [rsp + 0x90]
call fcn.140006860
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x140004894
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140004ce4
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 4
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140004ce4
mov dword [rax], 0x73677261
mov qword [rsp + 0x78], 4
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], 4
xorps xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
movups xmm0, xmmword [rsp + 0x48]
movaps xmmword [rsp + 0xb0], xmm0
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0xc0], rax
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x140004915
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140004cd6
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 3
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140004cd6
mov byte [rax + 2], 0x64
mov word [rax], 0x6970
mov qword [rsp + 0x30], 3
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 3
call sub.kernel32.dll_GetCurrentProcessId
mov eax, eax
mov byte [rsp + 0x48], 2
mov qword [rsp + 0x50], 0
mov qword [rsp + 0x58], rax
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xb0]
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x48]
call fcn.1400093e0
cmp byte [rsp + 0x90], 6
je 0x14000499c
lea rcx, [rsp + 0x90]
call fcn.140006860
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x1400049c1
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140004ceb
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 8
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140004ceb
movabs rcx, 0x7974697669746361
mov qword [rax], rcx
mov qword [rsp + 0x30], 8
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], 8
mov byte [rsp + 0x48], 0
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xb0]
lea r8, [rsp + 0x30]
lea r9, [rsp + 0x48]
call fcn.1400093e0
cmp byte [rsp + 0x90], 6
je 0x140004a37
lea rcx, [rsp + 0x90]
call fcn.140006860
movaps xmm0, xmmword [rsp + 0xb0]
movups xmmword [rsp + 0x50], xmm0
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x60], rax
mov byte [rsp + 0x48], 5
lea rdi, [rsp + 0x90]
lea rdx, [rsp + 0xd0]
lea rbx, [rsp + 0x78]
lea r9, [rsp + 0x48]
mov rcx, rdi
mov r8, rbx
call fcn.1400093e0
cmp byte [rsp + 0x90], 6
je 0x140004a92
lea rcx, [rsp + 0x90]
call fcn.140006860
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x140004ab7
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140004cf2
mov rcx, rax
mov qword [0x14017e260], rax
mov r8d, 5
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapAlloc]
test rax, rax
je 0x140004cf2
mov byte [rax + 4], 0x65
mov dword [rax], 0x636e6f6e
mov qword [rsp + 0xb0], 5
mov qword [rsp + 0xb8], rax
mov qword [rsp + 0xc0], 5
xorps xmm0, xmm0
movaps xmmword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x30]
xor ecx, ecx
mov r8d, 0x10
mov r9d, 2
call qword [sym.imp.bcrypt.dll_BCryptGenRandom]
cmp eax, 0xc0000000
jb 0x140004b2b
xor eax, 0x80000000
jne 0x140004d35
movzx eax, word [rsp + 0x34]
mov word [rsp + 0x7c], ax
mov eax, dword [rsp + 0x30]
mov dword [rsp + 0x78], eax
movzx eax, byte [rsp + 0x36]
movzx ecx, byte [rsp + 0x37]
movzx edx, byte [rsp + 0x38]
mov r8d, dword [rsp + 0x39]
mov dword [rsp + 0x81], r8d
mov r8d, dword [rsp + 0x3c]
mov dword [rsp + 0x84], r8d
and dl, 0x3f
or dl, 0x80
and al, 0xf
or al, 0x40
mov byte [rsp + 0x7e], al
mov byte [rsp + 0x7f], cl
mov byte [rsp + 0x80], dl
mov qword [rsp + 0x30], 0
mov qword [rsp + 0x38], 1
mov qword [rsp + 0x40], 0
lea r8, fcn.1400f4630
lea rcx, [rsp + 0x78]
lea rdx, [rsp + 0x30]
call fcn.140108c90
test al, al
jne 0x140004d03
mov rbx, qword [rsp + 0x38]
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x140004c10
js 0x140004d2e
mov rcx, qword [0x14017e260]
test rcx, rcx
jne 0x140004bee
call qword [sym.imp.kernel32.dll_GetProcessHeap]
test rax, rax
je 0x140004c01
mov rcx, rax
mov qword [0x14017e260], rax
xor edx, edx
mov r8, rdi
call qword [sym.imp.kernel32.dll_HeapAlloc]
mov r14, rax
test rax, rax
jne 0x140004c16
mov edx, 1
mov rcx, rdi
call fcn.14010b0b0
ud2
mov r14d, 1
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rsp + 0x48], 3
mov qword [rsp + 0x50], rdi
mov qword [rsp + 0x58], r14
mov qword [rsp + 0x60], rdi
lea rcx, [rsp + 0x90]
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0xb0]
lea r9, [rsp + 0x48]
call fcn.1400093e0
cmp byte [rsp + 0x90], 6
je 0x140004c71
lea rcx, [rsp + 0x90]
call fcn.140006860
cmp qword [rsp + 0x30], 0
je 0x140004c8d
mov r8, qword [rsp + 0x38]
mov rcx, qword [0x14017e260]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
movaps xmm0, xmmword [rsp + 0xd0]
movups xmmword [rsp + 0xf0], xmm0
mov rax, qword [rsp + 0xe0]
mov qword [rsp + 0x100], rax
mov byte [rsp + 0xe8], 5
lea rdx, [rsp + 0xe8]
mov rcx, rsi
mov r8b, 1
call fcn.140004d90
nop
add rsp, 0x108
pop rbx
pop rdi
pop rsi
pop r14
ret
mov ecx, 3
jmp 0x140004cf7
mov ecx, 0xc
jmp 0x140004cf7
mov ecx, 4
jmp 0x140004cf7
mov ecx, 8
jmp 0x140004cf7
mov ecx, 5
mov edx, 1
call fcn.14010b0b0
ud2
lea rax, [0x140173ea8]
mov qword [rsp + 0x20], rax
lea rcx, str.a_Display_implementation_returned_an_error_unexpectedly_rustc_90c541806f23a127002de5b4038be731ba1458calibrary_alloc_src_string.rs
lea r9, [0x140115cb8]
lea r8, [rsp + 0x48]
mov edx, 0x37
call fcn.14010b740
ud2
call fcn.14001bd20
ud2
mov dword [rsp + 0x78], eax
mov qword [rsp + 0x90], rbx
lea rax, [0x1400264e0]
mov qword [rsp + 0x98], rax
lea rax, str.could_not_retreive_random_bytes_for_uuid:
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], 1
mov qword [rsp + 0x48], 0
mov qword [rsp + 0x68], rdi
mov qword [rsp + 0x70], 1
lea rdx, str.C:Usersmixer.cargo_registry_srcindex.crates.io_6f17d22bba15001fuuid_0.8.2_src_v4.rs
lea rcx, [rsp + 0x48]
call fcn.14010b440
ud2