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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff0
sub esp, 0x74
mov eax, dword [0x72b01c]
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 0x5150ee
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 + 0x6651a0]
mov eax, 1
mov ecx, edx
shr edx, 5
and ecx, 0x1f
shl eax, cl
test dword [esp + edx*4 + 0x58], eax
je 0x51513a
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 0x515100
test dword [esp + 0x28], 0x8000000
xorps xmm0, xmm0
movlpd qword [esp + 0x40], xmm0
je 0x515164
xor ecx, ecx
xgetbv
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], ecx
jmp 0x515174
mov eax, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov dword [esp + 0x1c], esi
mov edx, 0x6651e8
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 0x5151b3
cmp esi, dword [esp + 0x40]
je 0x5151cd
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 0x5151d1
mov ecx, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
add edx, 0x10
cmp edx, str.QT_NO_CPU_FEATURE
jne 0x515180
mov eax, edi
mov dword [esp + 0x14], edi
and eax, 0x800
or eax, 0
je 0x5152b9
xorps xmm0, xmm0
lea esi, [esp + 0x40]
movaps xmmword [esp + 0x40], xmm0
mov edx, 0xa
rdrand eax
mov dword [esi], eax
jae 0x515211
add esi, 4
jmp 0x515216
sub edx, 1
je 0x515221
lea eax, [esi + 4]
lea edi, [esp + 0x50]
cmp eax, edi
jbe 0x515205
mov edi, dword [esp + 0x14]
lea eax, [esp + 0x4c]
cmp esi, eax
jb 0x5152b3
mov eax, dword [esp + 0x40]
cmp eax, dword [esp + 0x44]
jne 0x5152b9
cmp eax, dword [esp + 0x48]
jne 0x5152b9
lea edx, [esp + 0x50]
cmp esi, edx
jb 0x515253
cmp eax, dword [esp + 0x4c]
jne 0x5152b9
push str.WARNING:_CPU_random_generator_seem_to_be_failing__disabling_hardware_random_number_generation_nWARNING:_RDRND_generated:
push 2
call fcn.00599f08
add esp, 4
push eax
call fcn.0049e4f0
lea eax, [esp + 0x48]
add esp, 8
cmp eax, esi
jae 0x515297
mov edi, eax
push 2
call fcn.00599f08
push dword [edi]
push str._0x_x
push eax
call fcn.0049e4f0
add edi, 4
add esp, 0x10
cmp edi, esi
jb 0x515275
mov edi, dword [esp + 0x14]
push 0x656070
push 2
call fcn.00599f08
add esp, 4
push eax
call fcn.0049e4f0
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.00594d69
mov esp, ebp
pop ebp
ret