Function at 0x7ff79812dc50
Capabilities:
Generate random numbers via winapi

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x78
mov rax, qword [0x7ff7981d4380]
xor rax, rsp
mov qword [rsp + 0x68], rax
movzx ebp, byte [rsp + 0xe8]
xor esi, esi
mov r13, qword [rsp + 0xe0]
mov edi, 8
mov qword [rsp + 0x58], r9
mov r14, r9
mov qword [rsp + 0x40], rcx
mov r12d, r8d
mov qword [rsp + 0x48], r13
mov r15, rdx
mov byte [rsp + 0x32], bpl
mov rbx, rcx
mov dword [rsp + 0x38], edi
test bpl, bpl
jne 0x7ff79812dd25
cmp byte [rcx], sil
jne 0x7ff79812dd25
lea r9d, [rsi + 1]
mov qword [rsp + 0x60], rsi
lea r8, [0x7ff798190400]
mov dword [rsp + 0x20], 0xf0000000
xor edx, edx
lea rcx, [rsp + 0x60]
call qword [sym.imp.advapi32.dll_CryptAcquireContextA]
mov rcx, qword [rsp + 0x60]
lea r8, [rbx + 0xc]
mov edx, edi
call qword [sym.imp.advapi32.dll_CryptGenRandom]
mov rcx, qword [rsp + 0x60]
xor edx, edx
call qword [sym.imp.advapi32.dll_CryptReleaseContext]
mov r9, r14
mov byte [rsp + 0x28], 1
mov r8d, r12d
mov byte [rbx], sil
mov rdx, r15
mov byte [rsp + 0x20], bpl
mov rcx, rbx
call fcn.7ff79812edb0
mov qword [rsp + 0x50], rax
mov rdx, rax
mov qword [rsp + 0x60], rax
jmp 0x7ff79812dd50
mov byte [rsp + 0x28], 1
mov byte [rsp + 0x20], bpl
mov byte [rcx], sil
call fcn.7ff79812edb0
mov qword [rsp + 0x50], rax
mov rdx, rax
mov qword [rsp + 0x60], rax
test bpl, bpl
jne 0x7ff79812dda0
nop dword [rax]
movzx ecx, byte [rbx + 0xc]
mov r9, rbx
mov byte [rdx], cl
lea rbx, [rdx + 1]
movzx ecx, byte [r9 + 0xd]
mov byte [rbx], cl
movzx ecx, byte [r9 + 0xe]
mov byte [rdx + 2], cl
movzx eax, byte [r9 + 0xf]
mov byte [rdx + 3], al
movzx eax, byte [r9 + 0x10]
mov byte [rdx + 4], al
movzx eax, byte [r9 + 0x11]
mov byte [rdx + 5], al
movzx eax, byte [r9 + 0x12]
mov byte [rdx + 6], al
movzx eax, byte [r9 + 0x13]
mov byte [rdx + 7], al
jmp 0x7ff79812dde4
movzx eax, byte [rax]
mov r9, rbx
mov byte [rbx + 0xc], al
lea rbx, [rdx + 1]
movzx eax, byte [rbx]
mov byte [r9 + 0xd], al
movzx eax, byte [rdx + 2]
mov byte [r9 + 0xe], al
movzx eax, byte [rdx + 3]
mov byte [r9 + 0xf], al
movzx eax, byte [rdx + 4]
mov byte [r9 + 0x10], al
movzx eax, byte [rdx + 5]
mov byte [r9 + 0x11], al
movzx eax, byte [rdx + 6]
mov byte [r9 + 0x12], al
movzx eax, byte [rdx + 7]
mov byte [r9 + 0x13], al
mov ecx, dword [r14]
cmp ecx, edi
jle 0x7ff79812df29
nop
test bpl, bpl
jne 0x7ff79812de50
movzx eax, byte [rbx - 1]
lea rcx, [rbx + 8]
xor byte [rbx + 7], al
mov r8d, edi
movzx eax, byte [rbx]
xor byte [rcx], al
movzx eax, byte [rbx + 1]
xor byte [rbx + 9], al
movzx eax, byte [rbx + 2]
xor byte [rbx + 0xa], al
movzx eax, byte [rbx + 3]
xor byte [rbx + 0xb], al
movzx eax, byte [rbx + 4]
xor byte [rbx + 0xc], al
movzx eax, byte [rbx + 5]
xor byte [rbx + 0xd], al
movzx eax, byte [rbx + 6]
xor byte [rbx + 0xe], al
mov qword [rsp + 0x38], rcx
mov rcx, r9
call r13
mov r9, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x38]
jmp 0x7ff79812df0d
movzx eax, byte [rbx + 0xd]
mov rcx, r9
mov r8d, dword [rsp + 0x38]
movzx edi, byte [rbx + 7]
movzx esi, byte [rbx + 8]
movzx ebp, byte [rbx + 9]
movzx r15d, byte [rbx + 0xa]
movzx r12d, byte [rbx + 0xb]
movzx r13d, byte [rbx + 0xc]
mov byte [rsp + 0x30], al
movzx eax, byte [rbx + 0xe]
mov byte [rsp + 0x31], al
call qword [rsp + 0x48]
mov r9, qword [rsp + 0x40]
lea rcx, [rbx + 8]
mov r14, qword [rsp + 0x58]
movzx eax, byte [r9 + 0xc]
xor byte [rbx + 7], al
mov byte [r9 + 0xc], dil
movzx eax, byte [r9 + 0xd]
xor byte [rbx + 8], al
mov edi, dword [rsp + 0x38]
mov byte [r9 + 0xd], sil
movzx eax, byte [r9 + 0xe]
xor byte [rbx + 9], al
mov byte [r9 + 0xe], bpl
movzx eax, byte [r9 + 0xf]
xor byte [rbx + 0xa], al
movzx ebp, byte [rsp + 0x32]
mov byte [r9 + 0xf], r15b
movzx eax, byte [r9 + 0x10]
xor byte [rbx + 0xb], al
mov byte [r9 + 0x10], r12b
movzx eax, byte [r9 + 0x11]
xor byte [rbx + 0xc], al
mov byte [r9 + 0x11], r13b
movzx eax, byte [r9 + 0x12]
xor byte [rbx + 0xd], al
movzx eax, byte [rsp + 0x30]
mov r13, qword [rsp + 0x48]
mov byte [r9 + 0x12], al
movzx eax, byte [r9 + 0x13]
xor byte [rbx + 0xe], al
movzx eax, byte [rsp + 0x31]
mov byte [r9 + 0x13], al
mov rdx, qword [rsp + 0x60]
add edi, 8
mov rbx, rcx
mov dword [rsp + 0x38], edi
mov ecx, dword [r14]
cmp edi, ecx
jl 0x7ff79812ddf0
xor esi, esi
test bpl, bpl
je 0x7ff79812df9e
mov rdx, qword [rsp + 0x50]
movsxd rax, ecx
dec rdx
add rdx, rax
movzx eax, byte [rdx]
nop
dec ecx
lea rdx, [rdx - 1]
cmp byte [rdx], al
je 0x7ff79812df40
lea eax, [rcx - 8]
movsxd rcx, ecx
sub rcx, 8
mov dword [r14], eax
call fcn.7ff7980fd730
cmp dword [r14], 0
mov rbx, rax
mov rcx, qword [rsp + 0x60]
jle 0x7ff79812df94
mov r8, rax
mov rax, rcx
sub rax, rbx
nop dword [rax]
nop word [rax + rax]
movzx edx, byte [rax + r8 + 8]
inc esi
mov byte [r8], dl
lea r8, [r8 + 1]
cmp esi, dword [r14]
jl 0x7ff79812df80
call fcn.7ff798179c7c
mov rax, rbx
jmp 0x7ff79812dfa3
mov rax, qword [rsp + 0x60]
mov rcx, qword [rsp + 0x68]
xor rcx, rsp
call fcn.7ff798179f10
add rsp, 0x78
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret