Function at 0x18000fcc0
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi
Get thread local storage value
Set thread local storage value

Disassembly:
push rsi
push rdi
push rbx
sub rsp, 0x130
mov ecx, dword [0x180071018]
test ecx, ecx
je 0x18000fd9c
dec ecx
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
ja 0x18000ff87
je 0x18000fd95
xorps xmm0, xmm0
movaps xmmword [rsp + 0x40], xmm0
movaps xmmword [rsp + 0x30], xmm0
lea rdx, [rsp + 0x30]
xor ecx, ecx
mov r8d, 0x20
mov r9d, 2
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x18000fd3f
mov edi, eax
lea rsi, [rsp + 0x30]
mov rcx, rsi
mov edx, 0x20
call sub.ADVAPI32.dll_SystemFunction036
test al, al
jne 0x18000fd3f
and edi, 0x7fffffff
jne 0x18000ffe2
movaps xmm0, xmmword [rsp + 0x30]
movaps xmm1, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
mov rax, qword [0x1800a40a0]
test rax, rax
je 0x18000fdbe
lea rsi, [rsp + 0xd0]
test eax, 0x4000
jne 0x18000fdd2
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xe0], xmm1
xorps xmm0, xmm0
movaps xmmword [rsp + 0xf0], xmm0
jmp 0x18000fde6
xor eax, eax
jmp 0x18000ff87
lea rcx, section..data
call fcn.18001c5e0
mov ecx, eax
call sub.KERNEL32.dll_TlsGetValue
cmp rax, 1
jbe 0x18000fce9
jmp 0x18000ff87
call fcn.18004fe40
lea rsi, [rsp + 0xd0]
test eax, 0x4000
je 0x18000fd6e
lea r8, [0x180095cfd]
lea rdx, [rsp + 0x50]
mov rcx, rsi
call fcn.1800125c0
movaps xmm0, xmmword [rsi]
movaps xmm1, xmmword [rsi + 0x10]
movaps xmm2, xmmword [rsi + 0x20]
movups xmmword [rsp + 0x90], xmm0
movups xmmword [rsp + 0xa0], xmm1
movups xmmword [rsp + 0xb0], xmm2
movzx eax, byte [0x1800a40a8]
mov edx, 0x170
xor ecx, ecx
call fcn.18004b1f0
test rax, rax
je 0x18000ffbf
mov rsi, rax
mov qword [rax], 1
mov qword [rax + 8], 1
xorps xmm0, xmm0
movaps xmmword [rax + 0x10], xmm0
movaps xmmword [rax + 0x20], xmm0
movaps xmmword [rax + 0x30], xmm0
movaps xmmword [rax + 0x40], xmm0
movaps xmmword [rax + 0x50], xmm0
movaps xmmword [rax + 0x60], xmm0
movaps xmmword [rax + 0x70], xmm0
movaps xmmword [rax + 0x80], xmm0
movaps xmmword [rax + 0x90], xmm0
movaps xmmword [rax + 0xa0], xmm0
movaps xmmword [rax + 0xb0], xmm0
movaps xmmword [rax + 0xc0], xmm0
movaps xmmword [rax + 0xd0], xmm0
movaps xmmword [rax + 0xe0], xmm0
movaps xmmword [rax + 0xf0], xmm0
movaps xmmword [rax + 0x100], xmm0
mov qword [rax + 0x110], 0x40
movups xmm0, xmmword [rsp + 0x88]
movups xmm1, xmmword [rsp + 0x98]
movups xmm2, xmmword [rsp + 0xa8]
movups xmmword [rax + 0x118], xmm0
movups xmmword [rax + 0x128], xmm1
movups xmmword [rax + 0x138], xmm2
mov rax, qword [rsp + 0xb8]
mov qword [rsi + 0x148], rax
mov qword [rsi + 0x150], 0x10000
mov qword [rsi + 0x158], 0x10000
mov qword [rsi + 0x160], 0
movzx eax, byte [0x1800a40a8]
mov edx, 0x10
xor ecx, ecx
call fcn.18004b1f0
test rax, rax
je 0x18000ffce
mov qword [rax], rsi
lea rcx, section..data
mov rsi, rax
mov qword [rax + 8], rcx
mov ecx, dword [0x180071018]
test ecx, ecx
je 0x18000ff92
dec ecx
call sub.KERNEL32.dll_TlsGetValue
mov rdi, rax
mov ecx, dword [0x180071018]
test ecx, ecx
je 0x18000ffa2
dec ecx
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
test rdi, rdi
je 0x18000ff84
mov r8, qword [rdi]
dec qword [r8]
jne 0x18000ff73
dec qword [r8 + 8]
jne 0x18000ff73
mov rcx, qword [0x1800a4080]
xor edx, edx
call sub.KERNEL32.dll_HeapFree
mov rcx, qword [0x1800a4080]
xor edx, edx
mov r8, rdi
call sub.KERNEL32.dll_HeapFree
mov rax, rsi
add rsp, 0x130
pop rbx
pop rdi
pop rsi
ret
lea rcx, section..data
call fcn.18001c5e0
mov ecx, eax
jmp 0x18000ff36
lea rcx, section..data
call fcn.18001c5e0
mov ecx, eax
mov rdx, rsi
call sub.KERNEL32.dll_TlsSetValue
test rdi, rdi
jne 0x18000ff57
jmp 0x18000ff84
mov ecx, 0x10
mov edx, 0x170
call fcn.1800089f0
mov ecx, 8
mov edx, 0x10
call fcn.1800089f0
jmp 0x18001008b
movzx eax, byte [0x1800a40a8]
mov edx, 4
xor ecx, ecx
call fcn.18004b1f0
test rax, rax
jne 0x180010009
mov ecx, 4
mov edx, 4
call fcn.1800089f0
mov dword [rax], edi
mov qword [rsp + 0xc8], rax
lea rcx, [0x180095188]
mov qword [rsp + 0xd0], rcx
mov qword [rsp + 0xc0], 1
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x28], rcx
lea rax, [rsp + 0x20]
mov qword [rsp + 0x30], rax
lea rax, [0x1800125e0]
mov qword [rsp + 0x38], rax
lea rax, str.could_not_initialize_thread_rng:
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], 1
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], 1
lea rdx, str.C:UsersAdministrator.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rand_0.8.5_src_rngs_thread.rs
lea rcx, [rsp + 0x50]
call fcn.1800095d0
ud2