Function at 0x4cd260
Capabilities:
Hash data using fnv

Disassembly:
push edi
push esi
mov esi, ecx
push ebx
sub esp, 0x10
mov dword [ecx], 0
mov dword [ecx + 4], 0
mov dword [ecx + 8], 0xffffffff
mov ecx, dword [esp + 0x20]
mov dword [esp], str.default
call fcn.0043cbf0
sub esp, 4
test eax, eax
jne 0x4cd3f0
pushfd
pushfd
pop edx
mov ecx, edx
xor edx, 0x200000
push edx
popfd
pushfd
pop edx
popfd
xor edx, ecx
and edx, 0x200000
je 0x4cd2cf
cpuid
test eax, eax
je 0x4cd2cf
cmp ebx, 0x756e6547
je 0x4cd47f
cmp ebx, 0x68747541
je 0x4cd47f
pushfd
pushfd
pop eax
mov edx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
popfd
xor eax, edx
test eax, 0x200000
je 0x4cd307
xor eax, eax
cpuid
test eax, eax
je 0x4cd307
cmp ebx, 0x756e6547
je 0x4cd510
cmp ebx, 0x68747541
je 0x4cd510
call fcn.004e24d0
lea ebx, [esi + 8]
mov ecx, eax
mov eax, edx
mov dword [esi], ebx
mov edx, ecx
movzx ecx, cl
xor ecx, 0x811c9dc5
movzx edi, dh
imul ecx, ecx, 0x1000193
xor edi, ecx
mov ecx, edx
shr edx, 0x18
imul edi, edi, 0x1000193
shr ecx, 0x10
movzx ecx, cl
xor ecx, edi
imul ecx, ecx, 0x1000193
xor edx, ecx
movzx ecx, al
imul edx, edx, 0x1000193
xor edx, ecx
movzx ecx, ah
imul edx, edx, 0x1000193
xor ecx, edx
mov edx, eax
shr eax, 0x18
imul ecx, ecx, 0x1000193
shr edx, 0x10
movzx edx, dl
xor edx, ecx
mov ecx, ebx
imul edx, edx, 0x1000193
shr ecx, 0x18
xor eax, edx
movzx edx, bl
imul eax, eax, 0x1000193
xor eax, edx
movzx edx, bh
imul eax, eax, 0x1000193
xor edx, eax
mov eax, ebx
imul edx, edx, 0x1000193
shr eax, 0x10
movzx eax, al
xor eax, edx
imul eax, eax, 0x1000193
xor ecx, eax
mov eax, 3
imul ecx, ecx, 0x46a747c3
mul ecx
mov eax, ecx
sub eax, edx
shr eax, 1
add edx, eax
shr edx, 0x1e
mov eax, edx
shl eax, 0x1f
sub eax, edx
sub ecx, eax
mov eax, 1
cmove ecx, eax
mov eax, 0x4af6f0
mov dword [esi + 8], ecx
mov dword [esi + 4], eax
add esp, 0x10
pop ebx
pop esi
pop edi
ret 4
mov dword [esp], str.rdseed
mov ecx, dword [esp + 0x20]
call fcn.0043cbf0
sub esp, 4
test eax, eax
jne 0x4cd496
pushfd
pushfd
pop ecx
mov edx, ecx
xor ecx, 0x200000
push ecx
popfd
pushfd
pop ecx
popfd
xor edx, ecx
and edx, 0x200000
je 0x4cd4ec
cpuid
test eax, eax
je 0x4cd4ec
cmp ebx, 0x756e6547
je 0x4cd447
cmp ebx, 0x68747541
jne 0x4cd4ec
mov eax, 7
xor ecx, ecx
cpuid
and ebx, 0x40000
je 0x4cd4ec
xor ebx, ebx
mov eax, 1
mov ecx, ebx
cpuid
mov eax, 0x4af4e0
and ecx, 0x40000000
mov edx, 0x4af430
cmove eax, edx
jmp 0x4cd3db
mov eax, 7
xor ecx, ecx
cpuid
and ebx, 0x40000
je 0x4cd2cf
jmp 0x4cd45c
mov dword [esp], str.rdrand
mov ecx, dword [esp + 0x20]
call fcn.0043cbf0
sub esp, 4
test eax, eax
jne 0x4cd538
pushfd
pushfd
pop eax
mov edx, eax
xor eax, 0x200000
push eax
popfd
pushfd
pop eax
popfd
xor eax, edx
test eax, 0x200000
je 0x4cd4ec
xor eax, eax
cpuid
test eax, eax
je 0x4cd4ec
cmp ebx, 0x756e6547
jne 0x4cd500
xor ebx, ebx
mov eax, 1
mov ecx, ebx
cpuid
and ecx, 0x40000000
jne 0x4cd527
mov dword [esp], str.random_device::random_device_const_std::string_:_device_not_available
call fcn.005119f8
lea esi, [esi]
nop
cmp ebx, 0x68747541
je 0x4cd4d9
jmp 0x4cd4ec
xor ebx, ebx
mov eax, 1
mov ecx, ebx
cpuid
and ecx, 0x40000000
je 0x4cd307
mov eax, fcn.004af3f0
jmp 0x4cd3db
mov dword [esp], str.rdrnd
mov ecx, dword [esp + 0x20]
call fcn.0043cbf0
sub esp, 4
test eax, eax
je 0x4cd4b1
mov dword [esp], str.prng
mov ecx, dword [esp + 0x20]
call fcn.0043cbf0
sub esp, 4
test eax, eax
je 0x4cd307
mov dword [esp], str.random_device::random_device_const_std::string_:_unsupported_token
call fcn.005119f8
nop
nop
nop
nop
nop
nop
sub esp, 0x1c
mov eax, dword [esp + 0x20]
mov eax, dword [eax]
mov edx, dword [eax - 0xc]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004cd100
sub esp, 8
add esp, 0x1c
ret 4