Function at 0x516990
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x74
mov eax, dword [0x72cec4]
xor eax, esp
mov dword [esp + 0x70], eax
push ebx
push esi
push edi
xor eax, eax
mov dword [esp + 0x78], 0
xor ecx, ecx
xorps xmm0, xmm0
cpuid
lea esi, [esp + 0x30]
movlpd qword [esp + 0x40], xmm0
mov dword [esi], eax
mov eax, 1
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
xor ecx, ecx
mov dword [esi + 0xc], edx
lea esi, [esp + 0x20]
cmp dword [esp + 0x30], 7
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0x2c]
movlpd qword [esp + 0x60], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x70], xmm0
mov dword [esp + 0x58], eax
jl 0x516a3e
lea esi, [esp + 0x30]
mov eax, 7
xor ecx, ecx
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [esp + 0x34]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x44]
xor esi, esi
mov edi, dword [esp + 0x40]
mov dword [esp + 0x18], eax
nop dword [eax]
movzx edx, word [esi*2 + 0x669430]
mov eax, 1
mov ecx, edx
shr edx, 5
and ecx, 0x1f
shl eax, cl
test dword [esp + edx*4 + 0x58], eax
je 0x516a8a
xor ecx, ecx
mov eax, esi
xor edx, edx
bts ecx, eax
cmp eax, 0x20
cmovae edx, ecx
xor ecx, edx
cmp eax, 0x40
cmovae edx, ecx
or edi, ecx
or dword [esp + 0x18], edx
inc esi
cmp esi, 0x22
jb 0x516a50
test dword [esp + 0x28], 0x8000000
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
je 0x516ab4
xor ecx, ecx
xgetbv
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
jmp 0x516ac4
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, 0x669478
nop dword [eax]
movups xmm1, xmmword [edx]
movaps xmm0, xmm1
movaps xmmword [esp + 0x20], xmm1
psrldq xmm0, 8
movd ecx, xmm0
psrldq xmm1, 0xc
mov eax, ecx
and eax, esi
movd esi, xmm1
mov dword [esp + 0x40], esi
and esi, dword [esp + 0x14]
cmp eax, ecx
jne 0x516b03
cmp esi, dword [esp + 0x40]
je 0x516b1d
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x24]
not ecx
and edi, ecx
not eax
mov ecx, dword [esp + 0x18]
and ecx, eax
mov dword [esp + 0x18], ecx
jmp 0x516b21
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
add edx, 0x10
cmp edx, str.QT_NO_CPU_FEATURE
jne 0x516ad0
mov eax, edi
mov dword [esp + 0x14], edi
and eax, 0x800
or eax, 0
je 0x516c09
xorps xmm0, xmm0
lea esi, [esp + 0x40]
movaps xmmword [esp + 0x40], xmm0
mov edx, 0xa
rdrand eax
mov dword [esi], eax
jae 0x516b61
add esi, 4
jmp 0x516b66
sub edx, 1
je 0x516b71
lea eax, [esi + 4]
lea edi, [esp + 0x50]
cmp eax, edi
jbe 0x516b55
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x4c]
cmp esi, eax
jb 0x516c03
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x44]
jne 0x516c09
cmp eax, dword [esp + 0x48]
jne 0x516c09
lea edx, [esp + 0x50]
cmp esi, edx
jb 0x516ba3
cmp eax, dword [esp + 0x4c]
jne 0x516c09
push str.WARNING:_CPU_random_generator_seem_to_be_failing__disabling_hardware_random_number_generation_nWARNING:_RDRND_generated:
push 2
call fcn.0059b8a8
add esp, 4
push eax
call fcn.0049fdf0
lea eax, [esp + 0x48]
add esp, 8
cmp eax, esi
jae 0x516be7
mov edi, eax
push 2
call fcn.0059b8a8
push dword [edi]
push str._0x_x
push eax
call fcn.0049fdf0
add edi, 4
add esp, 0x10
cmp edi, esi
jb 0x516bc5
mov edi, dword [esp + 0x14]
push 0x65a300
push 2
call fcn.0059b8a8
add esp, 4
push eax
call fcn.0049fdf0
mov ecx, dword [esp + 0x20]
add esp, 8
and edi, 0xfffdf7ff
mov eax, edi
mov edx, ecx
mov ecx, dword [esp + 0x7c]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00596709
mov esp, ebp
pop ebp
ret