Function at 0x140034190
Capabilities:
Generate random numbers via winapi
Hash data using sha256

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rdi
mov qword [rsp + 8], rcx
push rbp
lea rbp, [rsp - 0x100]
sub rsp, 0x200
mov rax, qword [0x1400e5090]
xor rax, rsp
mov qword [rbp + 0xf0], rax
xor edi, edi
lea rax, [rsp + 0x68]
lea ecx, [rdi + 4]
nop word [rax + rax]
mov qword [rax], rdi
mov qword [rax + 8], rdi
mov qword [rax + 0x10], rdi
lea rax, [rax + 0x40]
mov qword [rax - 0x28], rdi
mov qword [rax - 0x20], rdi
mov qword [rax - 0x18], rdi
mov qword [rax - 0x10], rdi
mov qword [rax - 8], rdi
sub rcx, 1
jne 0x1400341d0
xor eax, eax
mov qword [rsp + 0x40], rdi
lea rcx, [rbp + 0x70]
mov qword [rbp + 0x70], rax
mov dword [rsp + 0x48], 0x6a09e667
mov dword [rsp + 0x4c], 0xbb67ae85
mov dword [rsp + 0x50], 0x3c6ef372
mov dword [rsp + 0x54], 0xa54ff53a
mov dword [rsp + 0x58], 0x510e527f
mov dword [rsp + 0x5c], 0x9b05688c
mov dword [rsp + 0x60], 0x1f83d9ab
mov dword [rsp + 0x64], 0x5be0cd19
call qword [0x1400a4098]
mov rbx, rdi
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x70]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034282
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034293
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 8
jb 0x140034251
call qword [0x1400a40a0]
mov dword [rsp + 0x30], eax
mov rbx, rdi
nop dword [rax]
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rsp + rbx + 0x30]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x1400342e1
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x1400342f2
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x1400342b0
call qword [0x1400a40a8]
mov dword [rsp + 0x30], eax
mov rbx, rdi
nop dword [rax + rax]
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rsp + rbx + 0x30]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034341
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034352
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x140034310
xor eax, eax
mov dword [rbp + 0xb0], 0x40
lea rcx, [rbp + 0xb0]
mov qword [rbp + 0xb4], rax
mov qword [rbp + 0xbc], rax
mov qword [rbp + 0xc4], rax
mov qword [rbp + 0xcc], rax
mov qword [rbp + 0xd4], rax
mov qword [rbp + 0xdc], rax
mov qword [rbp + 0xe4], rax
mov dword [rbp + 0xec], eax
call qword [0x1400a4138]
test eax, eax
je 0x14003445f
mov rbx, rdi
nop word [rax + rax]
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0xc0]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x1400343f4
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034405
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 8
jb 0x1400343c0
mov rbx, rdi
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0xd0]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034445
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034456
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 8
jb 0x140034411
xor r9d, r9d
lea rdx, [rbp + 0x98]
xor r8d, r8d
xor ecx, ecx
call qword [0x1400a40f0]
test eax, eax
je 0x1400344ce
mov rbx, rdi
nop dword [rax + rax]
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x98]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x1400344b4
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x1400344c5
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 8
jb 0x140034480
lea r8, [rbp + 0x88]
lea rdx, [rbp + 0x80]
lea rcx, [rbp + 0x78]
call qword [0x1400a4140]
test eax, eax
je 0x1400346d1
mov rbx, rdi
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x7c]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034522
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034533
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x1400344f1
mov rbx, rdi
nop
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x78]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034571
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034582
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x140034540
mov rbx, rdi
nop
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x84]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x1400345c4
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x1400345d5
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x140034590
mov rbx, rdi
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x80]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034615
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034626
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x1400345e1
mov rbx, rdi
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x8c]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034666
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034677
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x140034632
mov rbx, rdi
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0x88]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x1400346b7
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x1400346c8
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 4
jb 0x140034683
lea rcx, [rbp + 0xa0]
call qword [0x1400a4148]
test eax, eax
je 0x14003473e
mov rbx, rdi
nop word [rax + rax]
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rbp + rbx + 0xa0]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034724
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034735
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 8
jb 0x1400346f0
rdtsc
shl rdx, 0x20
mov rbx, rdi
or rax, rdx
mov qword [rsp + 0x30], rax
nop
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rsp + rbx + 0x30]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034781
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034792
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 8
jb 0x140034750
mov r9d, 1
mov dword [rsp + 0x20], 0xf0000040
lea r8, str.Microsoft_Base_Cryptographic_Provider_v1.0
xor edx, edx
lea rcx, [rbp + 0x90]
call qword [sym.imp.ADVAPI32.dll_CryptAcquireContextW]
test eax, eax
je 0x14003484a
mov rcx, qword [rbp + 0x90]
lea r8, [rsp + 0x30]
mov edx, 8
mov qword [rsp + 0x30], rdi
call qword [sym.imp.ADVAPI32.dll_CryptGenRandom]
test eax, eax
je 0x14003483b
mov rbx, rdi
nop word [rax + rax]
mov rcx, qword [rsp + 0x40]
movzx eax, byte [rsp + rbx + 0x30]
shr rcx, 5
and ecx, 0xf
shl dword [rsp + rcx*4 + 0x68], 8
or dword [rsp + rcx*4 + 0x68], eax
mov eax, dword [rsp + 0x40]
add eax, 8
mov dword [rsp + 0x40], eax
jne 0x140034821
inc dword [rsp + 0x44]
mov eax, edi
mov dword [rsp + 0x40], eax
test eax, 0x1ff
jne 0x140034832
lea rcx, [rsp + 0x40]
call fcn.140036c70
inc rbx
cmp rbx, 8
jb 0x1400347f0
mov rcx, qword [rbp + 0x90]
xor edx, edx
call qword [sym.imp.ADVAPI32.dll_CryptReleaseContext]
mov rcx, qword [rbp + 0x110]
lea rdx, [rsp + 0x40]
call fcn.140036e90
mov rax, qword [rbp + 0x110]
mov rcx, qword [rbp + 0xf0]
xor rcx, rsp
call fcn.14003dda0
lea r11, [rsp + 0x200]
mov rbx, qword [r11 + 0x18]
mov rdi, qword [r11 + 0x20]
mov rsp, r11
pop rbp
ret