Function at 0x10033dc0
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, 0x81460
call fcn.101e8860
xorps xmm0, xmm0
call 0x10033ddb
pop esi
mov ebx, 0xffffffe0
movaps xmmword [esp + 0x2e0], xmm0
movaps xmmword [esp + 0x2d0], xmm0
jmp 0x10033ee7
movaps xmm0, xmmword [esp + 0x440]
movaps xmm1, xmmword [esp + 0x450]
xorps xmm2, 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
movaps xmmword [esp + 0x1530], xmm2
movaps xmmword [esp + 0x1540], xmm2
mov dword [esp + 0x1550], 0x40
movups xmmword [esp + 0x1558], xmm0
movups xmmword [esp + 0x1568], xmm1
movups xmmword [esp + 0x1578], xmm2
lea ecx, [esp + 0x1450]
lea edx, [esp + 0xf0]
push 1
call fcn.10031160
xorps xmm0, xmm0
add esp, 4
movzx eax, byte [esp + 0xf0]
mov byte [esp + ebx + 0x2f0], al
inc ebx
je 0x10033fa7
mov byte [esp + 0xf0], 0
movaps xmmword [esp + 0x450], xmm0
movaps xmmword [esp + 0x440], xmm0
push 2
push 0x20
lea eax, [esp + 0x448]
push eax
push 0
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x10033e00
mov edi, eax
push 0x20
lea eax, [esp + 0x444]
push eax
call sub.advapi32.dll_SystemFunction036
test al, al
jne 0x10033e00
lea eax, [esp + 0x180]
add edi, 0x80000000
mov dword [esp + 0x1450], 0x102cb784
mov dword [esp + 0x1454], 1
mov dword [esp + 0x1460], 0
mov dword [esp + 0x1e0], eax
lea eax, [esp + 0x1e0]
mov dword [esp + 0x180], edi
mov dword [esp + 0x1e4], 0x10067180
mov dword [esp + 0x1458], eax
mov dword [esp + 0x145c], 1
push 0x102cb7e8
lea eax, [esp + 0x1454]
jmp 0x10034152
movaps xmm0, xmmword [esp + 0x2d0]
mov dword [esp + 0xc0], esi
mov esi, 0xffffffe0
lea ebx, [esp + 0x1494]
movaps xmmword [esp + 0x90], xmm0
movaps xmm0, xmmword [esp + 0x2e0]
movaps xmmword [esp + 0xb0], xmm0
xorps xmm0, xmm0
movaps xmmword [esp + 0x190], xmm0
movaps xmmword [esp + 0x180], xmm0
jmp 0x1003409f
movaps xmm0, xmmword [esp + 0x1e0]
movaps xmm1, xmmword [esp + 0x1f0]
movaps xmmword [esp + 0x2e0], xmm1
movaps xmmword [esp + 0x2d0], xmm0
lea eax, [esp + 0x2d0]
push eax
lea edi, [esp + 0x444]
push edi
call fcn.1009d610
add esp, 8
xorps xmm0, xmm0
movaps xmmword [esp + 0x1480], xmm0
movaps xmmword [esp + 0x1470], xmm0
movaps xmmword [esp + 0x1460], xmm0
movaps xmmword [esp + 0x1450], xmm0
mov dword [esp + 0x1490], 0x10
push 0x1004
push edi
push ebx
call sub.msvcrt.dll_memcpy
add esp, 0xc
lea eax, [esp + 0x1450]
push eax
push ebx
call fcn.1009c9d0
xorps xmm0, xmm0
add esp, 8
movzx eax, byte [esp + 0x1450]
mov byte [esp + esi + 0x1a0], al
inc esi
je 0x1003415d
movaps xmmword [esp + 0x1f0], xmm0
movaps xmmword [esp + 0x1e0], xmm0
push 2
push 0x20
lea eax, [esp + 0x1e8]
push eax
push 0
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x10034000
mov edi, eax
push 0x20
lea eax, [esp + 0x1e4]
push eax
call sub.advapi32.dll_SystemFunction036
test al, al
jne 0x10034000
lea eax, [esp + 0xf0]
add edi, 0x80000000
mov dword [esp + 0x440], 0x102cb784
mov dword [esp + 0x444], 1
mov dword [esp + 0x450], 0
mov dword [esp + 0x2d0], eax
lea eax, [esp + 0x2d0]
mov dword [esp + 0xf0], edi
mov dword [esp + 0x2d4], 0x10067180
mov dword [esp + 0x448], eax
mov dword [esp + 0x44c], 1
push 0x102cb7e8
lea eax, [esp + 0x444]
push eax
call fcn.100272b0
add esp, 8
ud2
movaps xmm1, xmmword [esp + 0x190]
movaps xmm0, xmmword [esp + 0x180]
movaps xmmword [esp + 0x40], xmm1
xorps xmm1, xmm1
movaps xmmword [esp + 0xd0], xmm0
movaps xmmword [esp + 0x2d0], xmm1
movaps xmmword [esp + 0x450], xmm1
movaps xmmword [esp + 0x440], xmm1
push 2
push 0x20
lea eax, [esp + 0x448]
push eax
push 0
call sub.bcrypt.dll_BCryptGenRandom
cmp eax, 0xc0000000
jb 0x100341c8
mov edi, eax
push 0x20
lea eax, [esp + 0x444]
push eax
call sub.advapi32.dll_SystemFunction036
test al, al
je 0x10033f36
movaps xmm1, xmmword [esp + 0xd0]
movaps xmm0, xmmword [esp + 0x40]
movdqa xmm3, xmmword [esp + 0x440]
xorps xmm2, 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
movaps xmmword [esp + 0x1530], xmm2
movaps xmmword [esp + 0x1540], xmm2
mov dword [esp + 0x1550], 0x40
xorps xmm1, xmmword [esp + 0x90]
xorps xmm0, xmmword [esp + 0xb0]
movdqu xmmword [esp + 0x1558], xmm3
movaps xmmword [esp + 0xd0], xmm1
movaps xmm1, xmmword [esp + 0x450]
movaps xmmword [esp + 0x40], xmm0
movups xmmword [esp + 0x1568], xmm1
movups xmmword [esp + 0x1578], xmm2
lea edi, [esp + 0x1450]
lea edx, [esp + 0x2d0]
mov ecx, edi
push 0x10
call fcn.10031160
movdqa xmm2, xmmword [esp + 0xd4]
movdqa xmm1, xmmword [esp + 0x44]
add esp, 4
movaps xmm0, xmmword [esp + 0x2d0]
movdqa xmmword [esp + 0x120], xmm2
cmp byte [ebp + 0x18], 0
mov ebx, dword [ebp + 0xc]
movzx ecx, byte [esp + 0x120]
movzx eax, byte [esp + 0x121]
mov byte [esp + 0x90], cl
mov byte [esp + 0x7f], cl
mov byte [esp + 0x3b], al
movzx eax, byte [esp + 0x122]
mov byte [esp + 0x3a], al
movzx eax, byte [esp + 0x123]
mov byte [esp + 0x39], al
movzx eax, byte [esp + 0x124]
mov byte [esp + 0x38], al
movzx eax, byte [esp + 0x125]
mov byte [esp + 0x37], al
movzx eax, byte [esp + 0x126]
mov byte [esp + 0x36], al
movzx eax, byte [esp + 0x127]
mov byte [esp + 0x35], al
movzx eax, byte [esp + 0x128]
mov byte [esp + 0x34], al
movzx eax, byte [esp + 0x129]
mov byte [esp + 0x33], al
movzx eax, byte [esp + 0x12a]
mov byte [esp + 0x32], al
movzx eax, byte [esp + 0x12b]
mov byte [esp + 0x31], al
movzx eax, byte [esp + 0x12c]
mov byte [esp + 0x30], al
movzx eax, byte [esp + 0x12d]
mov byte [esp + 0x2f], al
movzx eax, byte [esp + 0x12e]
mov byte [esp + 0x2e], al
movzx eax, byte [esp + 0x12f]
mov byte [esp + 0x2d], al
movdqa xmmword [esp + 0x110], xmm1
movzx eax, byte [esp + 0x110]
movzx ecx, byte [esp + 0x111]
mov byte [esp + 0x2c], al
mov byte [esp + 0x2b], cl
movzx eax, byte [esp + 0x112]
mov byte [esp + 0x2a], al
movzx eax, byte [esp + 0x113]
mov byte [esp + 0x29], al
movzx eax, byte [esp + 0x114]
mov byte [esp + 0x28], al
movzx eax, byte [esp + 0x115]
mov byte [esp + 0x27], al
movzx eax, byte [esp + 0x116]
mov byte [esp + 0x26], al
movzx eax, byte [esp + 0x117]
mov byte [esp + 0x25], al
movzx eax, byte [esp + 0x118]
mov byte [esp + 0x24], al
movzx eax, byte [esp + 0x119]
mov byte [esp + 0x23], al
movzx eax, byte [esp + 0x11a]
mov byte [esp + 0x22], al
movzx eax, byte [esp + 0x11b]
mov byte [esp + 0x21], al
movzx eax, byte [esp + 0x11c]
mov byte [esp + 0x20], al
movzx eax, byte [esp + 0x11d]
mov byte [esp + 0x1f], al
movzx eax, byte [esp + 0x11e]
mov byte [esp + 0x1e], al
movzx eax, byte [esp + 0x11f]
movaps xmmword [esp + 0x150], xmm0
movaps xmmword [esp + 0xe0], xmm0
mov byte [esp + 0x1d], al
je 0x100344bd
mov esi, dword [0x1044eff4]
movdqu xmmword [esp + 0xf0], xmm2
movdqu xmmword [esp + 0x100], xmm1
movzx eax, byte [esi]
cmp al, 0xff
je 0x1003453f
cmp al, 1
je 0x1003458e
jmp 0x100346bc
mov eax, dword [esp + 0xe8]
movsd xmm0, qword [esp + 0xe0]
mov esi, dword [0x1044f004]
mov dword [esp + 0x1e8], eax
movsd qword [esp + 0x1e0], xmm0
movzx eax, byte [esi]
cmp al, 0xff
jne 0x100345ef
push 1
lea eax, [esp + 0x444]
push eax
call fcn.1001cb90
add esp, 8
push 0
push 7
push edi
call fcn.1001cbc0
add esp, 0xc
mov ebx, dword [esp + 0x448]
mov ecx, dword [esp + 0x1454]
mov eax, ebx
not eax
test eax, 0xc000000
jne 0x100345de
mov edi, ecx
call fcn.100302a0
not eax
mov ecx, edi
test al, 6
sete al
jmp 0x100345e0
push 1
lea eax, [esp + 0x444]
push eax
call fcn.100043c0
add esp, 8
push 0
push 7
push edi
call fcn.100043f0
add esp, 0xc
mov ebx, dword [esp + 0x448]
mov eax, ebx
not eax
test eax, 0xc000000
jne 0x100346b6
call fcn.100302a0
and eax, 2
shr ebx, 0x19
shr eax, 1
and ebx, eax
mov byte [esi], bl
mov ebx, dword [ebp + 0xc]
je 0x100346bc
lea eax, [esp + 0xf0]
push eax
lea esi, [esp + 0x1e4]
push esi
call fcn.10004420
add esp, 8
lea ecx, [esp + 0x1540]
mov edx, esi
call fcn.1002f8d0
push 0xf0
push esi
push edi
call sub.msvcrt.dll_memcpy
add esp, 0xc
push 0x1e0
push edi
lea eax, [esp + 0x448]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
jmp 0x100346d4
xor eax, eax
shr cl, 5
shr ebx, 0x1c
and cl, al
and bl, cl
mov byte [esi], bl
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x1e8]
mov esi, dword [esp + 0xc0]
mov ecx, dword [ebp + 0x14]
movq xmm0, qword [esp + 0x1e0]
mov byte [esp + 0x1c0], 0
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 0
mov dword [esp + 0x78], 0x6b206574
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x70], 0xffffffff
mov dword [esp + 0x148], eax
movzx eax, word [esp + 0x1450]
mov edx, dword [ecx + 0x38]
mov ecx, dword [ecx + 0x3c]
movq qword [esp + 0x140], xmm0
pxor xmm0, xmm0
movdqa xmmword [esp + 0x180], xmm0
movdqa xmmword [esp + 0x190], xmm0
movdqa xmmword [esp + 0x1a0], xmm0
movdqa xmmword [esp + 0x1b0], xmm0
mov word [esp + 0x7c], ax
movzx eax, byte [esp + 0x1452]
mov byte [esp + 0x7e], al
movzx eax, byte [ebx + 0x88]
add esi, dword [eax*4 + 0x10036f90]
jmp esi
mov ebx, dword [ebp + 0xc]
mov byte [esi], 0
lea eax, [esp + 0xf0]
push eax
lea eax, [esp + 0x444]
push eax
call fcn.100020b0
add esp, 8
mov eax, dword [esp + 0x440]
movups xmm0, xmmword [esp + 0x444]
lea esi, [esp + 0x474]
lea edi, [esp + 0x180]
mov ecx, 0x10
mov dword [esp + 0x78], eax
movaps xmmword [esp + 0xd0], xmm0
movups xmm0, xmmword [esp + 0x454]
mov eax, dword [esp + 0x464]
movaps xmmword [esp + 0x40], xmm0
mov dword [esp + 0x10], eax
movsd xmm0, qword [esp + 0x468]
mov eax, dword [esp + 0x470]
movsd qword [esp + 0x140], xmm0
mov dword [esp + 0x148], eax
rep movsd dword es:[edi], dword [esi]
movzx eax, byte [esp + 0x4b4]
mov byte [esp + 0x1c0], al
movzx eax, word [esp + 0x4b5]
mov word [esp + 0x7c], ax
movzx eax, byte [esp + 0x4b7]
mov byte [esp + 0x7e], al
lea eax, [esp + 0x4b8]
push 0x168
push eax
lea eax, [esp + 0x2d8]
push eax
call sub.msvcrt.dll_memcpy
add esp, 0xc
mov eax, dword [ebp + 0x14]
movsd xmm0, qword [esp + 0x1450]
mov esi, dword [esp + 0xc0]
movq xmm1, qword [esp + 0x447]
mov dword [esp + 0x174], 0
mov dword [esp + 0x170], 0
mov dword [esp + 0x17c], 0
mov dword [esp + 0x178], 0
mov dword [esp + 0xc], 0
mov dword [esp + 0x74], 0xffffffff
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
mov dword [esp + 0x70], 0xffffffff
mov edx, dword [eax + 0x38]
mov ecx, dword [eax + 0x3c]
movzx eax, byte [ebx + 0x88]
movsd qword [esp + 0x168], xmm0
movq xmm0, qword [esp + 0x440]
add esi, dword [eax*4 + 0x10036f90]
movq qword [esp + 0x1c8], xmm0
movq qword [esp + 0x1cf], xmm1
jmp esi