Function at 0x51a900
Capabilities:
Query environment variable

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x34
xor eax, eax
mov dword [ebp - 0x34], 0
push ebx
xor ecx, ecx
mov dword [ebp - 4], eax
push esi
lea esi, [ebp - 0x34]
mov dword [ebp - 0xc], eax
cpuid
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, [ebp - 0x24]
cpuid
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x18], 0
mov dword [esi], eax
push edi
xor edi, edi
mov dword [esi + 4], ebx
cmp dword [ebp - 0x34], 7
mov dword [esi + 8], ecx
mov dword [ebp - 0x10], edi
mov dword [esi + 0xc], edx
jl 0x51a97a
lea esi, [ebp - 0x14]
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 [ebp - 0xc]
mov edi, dword [ebp - 0x10]
mov dword [ebp - 4], eax
mov esi, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x1c]
and esi, 0x4000000
or esi, 0x2000000
mov eax, ebx
and eax, 0x180000
shr esi, 9
or esi, eax
mov eax, ebx
and eax, 0x200
shr esi, 9
or esi, eax
mov eax, edi
and eax, 0x200
shr esi, 3
shl eax, 2
or esi, eax
mov eax, ebx
and eax, 0x1c000000
cmp eax, 0x1c000000
jne 0x51aa38
call fcn.0051a8e0
and eax, 6
cmp al, 6
jne 0x51aa38
mov ecx, ebx
mov eax, edi
and ecx, 0x20000000
and eax, 0x20
or ecx, 0x2000000
shl eax, 5
shr ecx, 0x10
and ebx, 0x1000
or ecx, eax
or ecx, ebx
or esi, ecx
call fcn.0051a8e0
and eax, 0xe0
cmp al, 0xe0
jne 0x51aa38
mov edx, dword [ebp - 4]
mov ecx, edx
and ecx, 2
shr edi, 0xf
shl ecx, 4
mov eax, edx
and eax, 0x40
and edi, 0x18000
or ecx, eax
mov eax, edx
shl ecx, 5
and eax, 0x1000
or ecx, eax
and edx, 0x4100
add ecx, ecx
or ecx, edx
shl ecx, 6
or ecx, edi
or esi, ecx
mov edi, dword [sym.imp.MSVCR120.dll_getenv]
push str.LIBYUV_DISABLE_X86
call edi
add esp, 4
test eax, eax
je 0x51aa54
cmp byte [eax], 0x30
je 0x51aa54
and esi, 0xffffffef
push str.LIBYUV_DISABLE_SSE2
call edi
add esp, 4
test eax, eax
je 0x51aa6a
cmp byte [eax], 0x30
je 0x51aa6a
and esi, 0xffffffdf
push str.LIBYUV_DISABLE_SSSE3
call edi
add esp, 4
test eax, eax
je 0x51aa80
cmp byte [eax], 0x30
je 0x51aa80
and esi, 0xffffffbf
push str.LIBYUV_DISABLE_SSE41
call edi
add esp, 4
test eax, eax
je 0x51aa99
cmp byte [eax], 0x30
je 0x51aa99
and esi, 0xffffff7f
push str.LIBYUV_DISABLE_SSE42
call edi
add esp, 4
test eax, eax
je 0x51aab2
cmp byte [eax], 0x30
je 0x51aab2
and esi, 0xfffffeff
push str.LIBYUV_DISABLE_AVX
call edi
add esp, 4
test eax, eax
je 0x51aacb
cmp byte [eax], 0x30
je 0x51aacb
and esi, 0xfffffdff
push str.LIBYUV_DISABLE_AVX2
call edi
add esp, 4
test eax, eax
je 0x51aae4
cmp byte [eax], 0x30
je 0x51aae4
and esi, 0xfffffbff
push str.LIBYUV_DISABLE_ERMS
call edi
add esp, 4
test eax, eax
je 0x51aafd
cmp byte [eax], 0x30
je 0x51aafd
and esi, 0xfffff7ff
push str.LIBYUV_DISABLE_FMA3
call edi
add esp, 4
test eax, eax
je 0x51ab16
cmp byte [eax], 0x30
je 0x51ab16
and esi, 0xffffefff
push str.LIBYUV_DISABLE_F16C
call edi
add esp, 4
test eax, eax
je 0x51ab2f
cmp byte [eax], 0x30
je 0x51ab2f
and esi, 0xffffdfff
push str.LIBYUV_DISABLE_AVX512BW
call edi
add esp, 4
test eax, eax
je 0x51ab48
cmp byte [eax], 0x30
je 0x51ab48
and esi, 0xffff7fff
push str.LIBYUV_DISABLE_ASM
call edi
add esp, 4
test eax, eax
je 0x51ab5e
xor ecx, ecx
cmp byte [eax], 0x30
cmovne esi, ecx
or esi, 1
pop edi
mov eax, esi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret