Function at 0x14002d323
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi
Get common file path

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x108
mov qword [rsp + 0x88], rcx
xorps xmm0, xmm0
lea r13, [rsp + 0xe0]
movaps xmmword [r13], xmm0
mov r15d, 0x10
mov r12d, 0xffffffff
test r15, r15
je 0x14002d3ac
mov rdi, r13
cmp r15, r12
mov r14d, 0xffffffff
cmovb r14, r15
add r13, r14
sub r15, r14
xor ecx, ecx
mov rdx, rdi
mov r8d, r14d
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x14002d35a
mov ebx, eax
mov rcx, rdi
mov edx, r14d
call sub.advapi32.dll_SystemFunction036
test al, al
jne 0x14002d35a
and ebx, 0x7fffffff
jne 0x14002d7a0
mov rax, qword [rsp + 0xe0]
mov rcx, qword [rsp + 0xe8]
movabs rdx, 0x3f00000000000000
and rdx, rax
mov ebx, ecx
and ebx, 0xf00
bts rdx, 0x3f
or ebx, 0x4000
mov r8, rcx
shr r8, 0x38
mov r9, rcx
shr r9, 0x30
mov r10, rcx
shr r10, 0x28
mov r11, rcx
shr r11, 0x20
mov edi, ecx
shr edi, 0x18
mov ebp, ecx
shr ebp, 0x10
shr rdx, 0x38
mov r14, rax
shr r14, 0x30
mov r15, rax
shr r15, 0x28
mov r12, rax
shr r12, 0x20
mov r13d, eax
shr r13d, 0x18
mov esi, eax
shr esi, 0x10
mov byte [rsp + 0x30], r8b
mov byte [rsp + 0x31], r9b
mov byte [rsp + 0x32], r10b
mov byte [rsp + 0x33], r11b
mov byte [rsp + 0x34], dil
mov byte [rsp + 0x35], bpl
mov byte [rsp + 0x36], bh
mov byte [rsp + 0x37], cl
mov byte [rsp + 0x38], dl
mov byte [rsp + 0x39], r14b
mov byte [rsp + 0x3a], r15b
mov byte [rsp + 0x3b], r12b
mov byte [rsp + 0x3c], r13b
and qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 1
and qword [rsp + 0x80], 0
mov byte [rsp + 0x3d], sil
and qword [rsp + 0x90], 0
mov byte [rsp + 0x3e], ah
mov byte [rsp + 0x3f], al
mov qword [rsp + 0x98], 8
mov qword [rsp + 0xa0], 9
mov qword [rsp + 0xa8], 0xd
mov qword [rsp + 0xb0], 0xe
mov qword [rsp + 0xb8], 0x12
mov qword [rsp + 0xc0], 0x13
mov qword [rsp + 0xc8], 0x17
mov qword [rsp + 0xd0], 0x18
mov qword [rsp + 0xd8], 0x24
xorps xmm0, xmm0
movaps xmmword [rsp + 0x50], xmm0
and dword [rsp + 0x60], 0
movaps xmmword [rsp + 0x40], xmm0
xor ecx, ecx
lea rdx, str.0123456789abcdefC:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001fuuid_1.10.0_src_fmt.rs
xor r8d, r8d
cmp r8, 5
je 0x14002d5aa
mov rax, r8
shl rax, 4
mov r9, qword [rsp + rax + 0x90]
mov rax, qword [rsp + rax + 0x98]
cmp r9, rax
jae 0x14002d58d
cmp rcx, 0x10
jae 0x14002d6e5
cmp r9, 0x24
jae 0x14002d6f6
movzx r10d, byte [rsp + rcx + 0x30]
mov r11d, r10d
shr r11d, 4
mov r11b, byte [r11 + rdx]
mov byte [rsp + r9 + 0x40], r11b
cmp r9, 0x23
je 0x14002d70a
and r10d, 0xf
mov r10b, byte [r10 + rdx]
mov byte [rsp + r9 + 0x41], r10b
add r9, 2
inc rcx
jmp 0x14002d53e
cmp r8, 4
je 0x14002d5a2
cmp rax, 0x24
jae 0x14002d720
mov byte [rsp + rax + 0x40], 0x2d
inc r8
jmp 0x14002d51d
mov eax, dword [rsp + 0x60]
lea rdx, [rsp + 0xe0]
mov dword [rdx + 0x20], eax
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
movaps xmmword [rdx + 0x10], xmm1
movaps xmmword [rdx], xmm0
lea rcx, [rsp + 0x70]
mov r8d, 0x24
call fcn.14002d867
test al, al
jne 0x14002d734
mov rdi, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov r14, qword [rsp + 0x80]
lea r15, [rsp + 0x40]
and qword [r15], 0
lea rcx, [0x1400e4eb4]
xor edx, edx
xor r8d, r8d
mov r9, r15
call sub.shell32.dll_SHGetKnownFolderPath
mov rcx, qword [r15]
test eax, eax
jne 0x14002d760
call sub.kernel32.dll_lstrlenW
movsxd r8, eax
mov rdx, qword [rsp + 0x40]
lea r15, [rsp + 0x90]
mov rcx, r15
call fcn.14009a3e0
mov rcx, qword [rsp + 0x40]
call sub.ole32.dll_CoTaskMemFree
movabs rax, 0x8000000000000000
cmp qword [r15], rax
je 0x14002d765
movups xmm0, xmmword [rsp + 0x90]
movups xmm1, xmmword [rsp + 0xa0]
lea r15, [rsp + 0x40]
movaps xmmword [r15 + 0x10], xmm1
movaps xmmword [r15], xmm0
lea rdx, str.AppDataRoamingFailed_to_create_directory
mov r8d, 0xf
mov rcx, r15
call fcn.1400b5bd0
mov rcx, r15
mov rdx, rbx
mov r8, r14
call fcn.1400b5bd0
mov rcx, rdi
mov rdx, rbx
call fcn.14003c45e
mov rcx, qword [r15 + 8]
mov rdx, qword [r15 + 0x10]
call case.0x1400b5f7b.43
test rax, rax
jne 0x14002d771
movaps xmm0, xmmword [rsp + 0x40]
movaps xmm1, xmmword [rsp + 0x50]
mov rax, qword [rsp + 0x88]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
add rsp, 0x108
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, [0x140161398]
mov edx, 0x10
call fcn.140005320
lea r8, [0x1401613b0]
mov edx, 0x24
mov rcx, r9
call fcn.140005320
lea r8, [0x1401613c8]
mov ecx, 0x24
mov edx, 0x24
call fcn.140005320
lea r8, [0x140161380]
mov edx, 0x24
mov rcx, rax
call fcn.140005320
lea rax, [0x140160dc0]
mov qword [rsp + 0x20], rax
lea rcx, [0x140160d82]
lea r9, [0x14011bf88]
lea r8, [rsp + 0x90]
mov edx, 0x37
call fcn.140007c10
call sub.ole32.dll_CoTaskMemFree
lea rcx, str.src_main.rs
call fcn.140008d40
lea r8, [rsp + 0x90]
mov qword [r8], rax
lea rax, str.src_main.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14011c05f]
lea r9, fcn.14002d7ef
mov edx, 0x1a
call fcn.140007c10
lea rax, [rsp + 0x70]
mov dword [rax], ebx
lea rdx, [rsp + 0x40]
mov qword [rdx], rax
lea rax, [0x1401612e0]
lea rcx, [rsp + 0x90]
mov qword [rcx], rax
mov eax, 1
mov qword [rcx + 8], rax
and qword [rcx + 0x20], 0
lea r8, [0x1400136cc]
mov qword [rdx + 8], r8
mov qword [rcx + 0x10], rdx
mov qword [rcx + 0x18], rax
lea rdx, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001fuuid_1.10.0_src_rng.rscould_not_retrieve_random_bytes_for_uuid:
call fcn.140005270
int3