Function at 0x10034cf0
Capabilities:
Generate random numbers via rtlgenrandom
Generate random numbers via winapi

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
mov eax, 0x81440
call fcn.101c4c20
xorps xmm0, xmm0
call 0x10034d0b
pop eax
mov ebx, 0xffffffe0
lea esi, [esp + 0xb0]
mov dword [esp + 0xc], eax
movaps xmmword [esp + 0x2c0], xmm0
movaps xmmword [esp + 0x2b0], xmm0
jmp 0x10034e22
movaps xmm0, xmmword [esp + 0x420]
movaps xmm1, xmmword [esp + 0x430]
xorps xmm2, xmm2
movaps xmmword [esp + 0x1430], xmm2
movaps xmmword [esp + 0x1440], xmm2
movaps xmmword [esp + 0x1450], xmm2
movaps xmmword [esp + 0x1460], xmm2
movaps xmmword [esp + 0x1470], xmm2
movaps xmmword [esp + 0x1480], xmm2
movaps xmmword [esp + 0x1490], xmm2
movaps xmmword [esp + 0x14a0], xmm2
movaps xmmword [esp + 0x14b0], xmm2
movaps xmmword [esp + 0x14c0], xmm2
movaps xmmword [esp + 0x14d0], xmm2
movaps xmmword [esp + 0x14e0], xmm2
movaps xmmword [esp + 0x14f0], xmm2
movaps xmmword [esp + 0x1500], xmm2
movaps xmmword [esp + 0x1510], xmm2
movaps xmmword [esp + 0x1520], xmm2
mov dword [esp + 0x1530], 0x40
movups xmmword [esp + 0x1538], xmm0
movups xmmword [esp + 0x1548], xmm1
movups xmmword [esp + 0x1558], xmm2
lea ecx, [esp + 0x1430]
mov edx, esi
push 1
call fcn.10032070
xorps xmm0, xmm0
add esp, 4
movzx eax, byte [esp + 0xb0]
mov byte [esp + ebx + 0x2d0], al
inc ebx
je 0x10034ee2
mov byte [esp + 0xb0], 0
movaps xmmword [esp + 0x430], xmm0
movaps xmmword [esp + 0x420], xmm0
push 2
push 0x20
lea eax, [esp + 0x428]
push eax
push 0
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x10034d40
mov edi, eax
push 0x20
lea eax, [esp + 0x424]
push eax
call sub.advapi32.dll_SystemFunction036
test al, al
jne 0x10034d40
lea eax, [esp + 0x160]
add edi, 0x80000000
mov dword [esp + 0x1430], 0x101df8c4
mov dword [esp + 0x1434], 1
mov dword [esp + 0x1440], 0
mov dword [esp + 0x1c0], eax
lea eax, [esp + 0x1c0]
mov dword [esp + 0x160], edi
mov dword [esp + 0x1c4], 0x1005a850
mov dword [esp + 0x1438], eax
mov dword [esp + 0x143c], 1
push 0x101df928
lea eax, [esp + 0x1434]
jmp 0x10035082
movaps xmm0, xmmword [esp + 0x2b0]
mov esi, 0xffffffe0
lea ebx, [esp + 0x1474]
movaps xmmword [esp + 0x80], xmm0
movaps xmm0, xmmword [esp + 0x2c0]
movaps xmmword [esp + 0xd0], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x170], xmm0
movaps xmmword [esp + 0x160], xmm0
jmp 0x10034fcf
movaps xmm0, xmmword [esp + 0x1c0]
movaps xmm1, xmmword [esp + 0x1d0]
movaps xmmword [esp + 0x2c0], xmm1
movaps xmmword [esp + 0x2b0], xmm0
lea eax, [esp + 0x2b0]
push eax
lea edi, [esp + 0x424]
push edi
call fcn.10080be0
add esp, 8
xorps xmm0, xmm0
movaps xmmword [esp + 0x1460], xmm0
movaps xmmword [esp + 0x1450], xmm0
movaps xmmword [esp + 0x1440], xmm0
movaps xmmword [esp + 0x1430], xmm0
mov dword [esp + 0x1470], 0x10
push 0x1004
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x1430]
push eax
push ebx
call fcn.1007ffa0
xorps xmm0, xmm0
add esp, 8
movzx eax, byte [esp + 0x1430]
mov byte [esp + esi + 0x180], al
inc esi
je 0x1003508d
movaps xmmword [esp + 0x1d0], xmm0
movaps xmmword [esp + 0x1c0], xmm0
push 2
push 0x20
lea eax, [esp + 0x1c8]
push eax
push 0
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x10034f30
mov edi, eax
push 0x20
lea eax, [esp + 0x1c4]
push eax
call sub.advapi32.dll_SystemFunction036
test al, al
jne 0x10034f30
lea eax, [esp + 0xb0]
add edi, 0x80000000
mov dword [esp + 0x420], 0x101df8c4
mov dword [esp + 0x424], 1
mov dword [esp + 0x430], 0
mov dword [esp + 0x2b0], eax
lea eax, [esp + 0x2b0]
mov dword [esp + 0xb0], edi
mov dword [esp + 0x2b4], 0x1005a850
mov dword [esp + 0x428], eax
mov dword [esp + 0x42c], 1
push 0x101df928
lea eax, [esp + 0x424]
push eax
call fcn.10026810
add esp, 8
ud2
movaps xmm1, xmmword [esp + 0x170]
movaps xmm0, xmmword [esp + 0x160]
movaps xmmword [esp + 0x50], xmm1
xorps xmm1, xmm1
movaps xmmword [esp + 0xf0], xmm0
movaps xmmword [esp + 0x2b0], xmm1
movaps xmmword [esp + 0x430], xmm1
movaps xmmword [esp + 0x420], xmm1
push 2
push 0x20
lea eax, [esp + 0x428]
push eax
push 0
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x100350f8
mov edi, eax
push 0x20
lea eax, [esp + 0x424]
push eax
call sub.advapi32.dll_SystemFunction036
test al, al
je 0x10034e71
movaps xmm1, xmmword [esp + 0xf0]
movaps xmm0, xmmword [esp + 0x50]
movdqa xmm3, xmmword [esp + 0x420]
xorps xmm2, xmm2
movaps xmmword [esp + 0x1430], xmm2
movaps xmmword [esp + 0x1440], xmm2
movaps xmmword [esp + 0x1450], xmm2
movaps xmmword [esp + 0x1460], xmm2
movaps xmmword [esp + 0x1470], xmm2
movaps xmmword [esp + 0x1480], xmm2
movaps xmmword [esp + 0x1490], xmm2
movaps xmmword [esp + 0x14a0], xmm2
movaps xmmword [esp + 0x14b0], xmm2
movaps xmmword [esp + 0x14c0], xmm2
movaps xmmword [esp + 0x14d0], xmm2
movaps xmmword [esp + 0x14e0], xmm2
movaps xmmword [esp + 0x14f0], xmm2
movaps xmmword [esp + 0x1500], xmm2
movaps xmmword [esp + 0x1510], xmm2
movaps xmmword [esp + 0x1520], xmm2
mov dword [esp + 0x1530], 0x40
xorps xmm1, xmmword [esp + 0x80]
xorps xmm0, xmmword [esp + 0xd0]
movdqu xmmword [esp + 0x1538], xmm3
movaps xmmword [esp + 0xf0], xmm1
movaps xmm1, xmmword [esp + 0x430]
movaps xmmword [esp + 0x50], xmm0
movups xmmword [esp + 0x1548], xmm1
movups xmmword [esp + 0x1558], xmm2
lea ebx, [esp + 0x2b0]
lea ecx, [esp + 0x1430]
mov edx, ebx
push 0x10
call fcn.10032070
movdqa xmm2, xmmword [esp + 0x54]
movdqa xmm1, xmmword [esp + 0xf4]
add esp, 4
movaps xmm0, xmmword [esp + 0x2b0]
movdqa xmmword [esp + 0x110], xmm1
cmp byte [ebp + 0x18], 0
movzx ecx, byte [esp + 0x110]
movzx eax, byte [esp + 0x111]
mov byte [esp + 0x80], cl
mov byte [esp + 0x77], cl
mov byte [esp + 0x37], al
movzx eax, byte [esp + 0x112]
mov byte [esp + 0x36], al
movzx eax, byte [esp + 0x113]
mov byte [esp + 0x35], al
movzx eax, byte [esp + 0x114]
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0x115]
mov byte [esp + 0x33], al
movzx eax, byte [esp + 0x116]
mov byte [esp + 0x32], al
movzx eax, byte [esp + 0x117]
mov byte [esp + 0x31], al
movzx eax, byte [esp + 0x118]
mov byte [esp + 0x30], al
movzx eax, byte [esp + 0x119]
mov byte [esp + 0x2f], al
movzx eax, byte [esp + 0x11a]
mov byte [esp + 0x2e], al
movzx eax, byte [esp + 0x11b]
mov byte [esp + 0x2d], al
movzx eax, byte [esp + 0x11c]
mov byte [esp + 0x2c], al
movzx eax, byte [esp + 0x11d]
mov byte [esp + 0x2b], al
movzx eax, byte [esp + 0x11e]
mov byte [esp + 0x2a], al
movzx eax, byte [esp + 0x11f]
mov byte [esp + 0x29], al
movdqa xmmword [esp + 0x100], xmm2
movzx eax, byte [esp + 0x100]
movzx ecx, byte [esp + 0x101]
mov byte [esp + 0x28], al
mov byte [esp + 0x27], cl
movzx eax, byte [esp + 0x102]
mov byte [esp + 0x26], al
movzx eax, byte [esp + 0x103]
mov byte [esp + 0x25], al
movzx eax, byte [esp + 0x104]
mov byte [esp + 0x24], al
movzx eax, byte [esp + 0x105]
mov byte [esp + 0x23], al
movzx eax, byte [esp + 0x106]
mov byte [esp + 0x22], al
movzx eax, byte [esp + 0x107]
mov byte [esp + 0x21], al
movzx eax, byte [esp + 0x108]
mov byte [esp + 0x20], al
movzx eax, byte [esp + 0x109]
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x10a]
mov byte [esp + 0x1e], al
movzx eax, byte [esp + 0x10b]
mov byte [esp + 0x1d], al
movzx eax, byte [esp + 0x10c]
mov byte [esp + 0x1c], al
movzx eax, byte [esp + 0x10d]
mov byte [esp + 0x1b], al
movzx eax, byte [esp + 0x10e]
mov byte [esp + 0x1a], al
movzx eax, byte [esp + 0x10f]
movaps xmmword [esp + 0xe0], xmm0
movaps xmmword [esp + 0x90], xmm0
mov byte [esp + 0x19], al
je 0x100353ea
mov esi, dword [0x10356488]
movdqu xmmword [esp + 0xb0], xmm1
movdqu xmmword [esp + 0xc0], xmm2
movzx eax, byte [esi]
cmp al, 0xff
je 0x10035473
cmp al, 1
je 0x100354ca
jmp 0x100355f3
mov eax, dword [esp + 0x98]
movsd xmm0, qword [esp + 0x90]
mov esi, dword [0x10356498]
mov dword [esp + 0x1c8], eax
movsd qword [esp + 0x1c0], xmm0
movzx eax, byte [esi]
cmp al, 0xff
jne 0x1003552f
push 1
lea eax, [esp + 0x424]
push eax
call fcn.1001c100
add esp, 8
push 0
push 7
lea eax, [esp + 0x1438]
push eax
call fcn.1001c130
add esp, 0xc
mov ebx, dword [esp + 0x428]
mov ecx, dword [esp + 0x1434]
mov eax, ebx
not eax
test eax, 0xc000000
jne 0x10035521
mov edi, ecx
call fcn.100311b0
not eax
mov ecx, edi
test al, 6
sete al
jmp 0x10035523
mov edi, ebx
push 1
lea eax, [esp + 0x424]
push eax
call fcn.10003f20
add esp, 8
push 0
push 7
lea eax, [esp + 0x1438]
push eax
call fcn.10003f50
add esp, 0xc
mov ebx, dword [esp + 0x428]
mov eax, ebx
not eax
test eax, 0xc000000
jne 0x100355ee
call fcn.100311b0
and eax, 2
shr ebx, 0x19
shr eax, 1
and ebx, eax
mov byte [esi], bl
mov ebx, edi
je 0x100355f3
lea eax, [esp + 0xb0]
push eax
lea esi, [esp + 0x1c4]
push esi
call fcn.10003f80
add esp, 8
lea ecx, [esp + 0x1520]
mov edx, esi
call fcn.100307e0
push 0xf0
push esi
lea esi, [esp + 0x1438]
push esi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x1e0
push esi
lea eax, [esp + 0x428]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x1003560b
xor eax, eax
shr cl, 5
shr ebx, 0x1c
and cl, al
and bl, cl
mov byte [esi], bl
mov eax, dword [esp + 0x1c8]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [esp + 0xc]
movq xmm0, qword [esp + 0x1c0]
mov byte [esp + 0x1a0], 0
mov dword [esp + 0x4c], 1
mov dword [esp + 0x40], 0
mov dword [esp + 0x3c], 0x6b206574
mov dword [esp + 0x6c], 0xffffffff
xor esi, esi
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0xffffffff
mov dword [esp + 0x138], eax
movzx eax, word [esp + 0x1430]
movq qword [esp + 0x130], xmm0
pxor xmm0, xmm0
movdqa xmmword [esp + 0x160], xmm0
movdqa xmmword [esp + 0x170], xmm0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x190], xmm0
mov word [esp + 0x74], ax
movzx eax, byte [esp + 0x1432]
mov byte [esp + 0x76], al
movzx eax, byte [ebx + 0x88]
add ecx, dword [eax*4 + 0x10037d80]
mov eax, dword [ebp + 0x14]
mov edx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
mov dword [esp + 0x44], eax
jmp ecx
mov byte [esi], 0
mov ebx, edi
lea eax, [esp + 0xb0]
push eax
lea eax, [esp + 0x424]
push eax
call fcn.10001c10
add esp, 8
mov eax, dword [esp + 0x420]
movups xmm0, xmmword [esp + 0x424]
lea esi, [esp + 0x454]
lea edi, [esp + 0x160]
mov ecx, 0x10
mov dword [esp + 0x3c], eax
movaps xmmword [esp + 0xf0], xmm0
movups xmm0, xmmword [esp + 0x434]
mov eax, dword [esp + 0x444]
movaps xmmword [esp + 0x50], xmm0
mov dword [esp + 0x40], eax
movsd xmm0, qword [esp + 0x448]
mov eax, dword [esp + 0x450]
movsd qword [esp + 0x130], xmm0
mov dword [esp + 0x138], eax
rep movsd dword es:[edi], dword [esi]
movzx eax, byte [esp + 0x494]
mov byte [esp + 0x1a0], al
movzx eax, word [esp + 0x495]
mov word [esp + 0x74], ax
movzx eax, byte [esp + 0x497]
mov byte [esp + 0x76], al
lea eax, [esp + 0x498]
push 0x168
push eax
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x14]
mov ebx, dword [ebp + 0xc]
movsd xmm0, qword [esp + 0x1430]
mov ecx, dword [esp + 0xc]
movq xmm1, qword [esp + 0x427]
mov dword [esp + 0x154], 0
mov dword [esp + 0x150], 0
mov dword [esp + 0x15c], 0
mov dword [esp + 0x158], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x6c], 0xffffffff
xor esi, esi
mov dword [esp + 0x64], 0
mov dword [esp + 0x68], 0xffffffff
mov edx, dword [eax + 0x38]
mov eax, dword [eax + 0x3c]
movsd qword [esp + 0x148], xmm0
movq xmm0, qword [esp + 0x420]
mov dword [esp + 0x44], eax
movzx eax, byte [ebx + 0x88]
movq qword [esp + 0x1a8], xmm0
movq qword [esp + 0x1af], xmm1
add ecx, dword [eax*4 + 0x10037d80]
jmp ecx