What does this code do?
.text:0048EBCD mov ecx, dword_4CEAC8
.text:0048EBD3 mov edx, dword_4CEACC
.text:0048EBD9 mov [ebp+var_4], eax
.text:0048EBDC mov eax, dword_4CEAD0
.text:0048EBE1 mov [ebp+var_28], ecx
.text:0048EBE4 mov cl, byte_4CEAD4
.text:0048EBEA mov [ebp+var_24], edx
.text:0048EBED mov [ebp+var_20], eax
.text:0048EBF0 mov [ebp+var_1C], cl
.text:0048EBF3 pusha
.text:0048EBF4 mov [ebp+var_18], 4
.text:0048EBFB pushf
.text:0048EBFC pop eax
.text:0048EBFD mov ecx, eax
.text:0048EBFF xor eax, 200000h
.text:0048EC04 push eax
.text:0048EC05 popf
.text:0048EC06 pushf
.text:0048EC07 pop eax
.text:0048EC08 xor eax, ecx
.text:0048EC0A jz short loc_48EC5C
.text:0048EC0C mov [ebp+var_14], 0
.text:0048EC13 mov eax, 0
.text:0048EC18 cpuid
.text:0048EC1A mov [ebp+var_14], eax
.text:0048EC1D mov [ebp+var_28], ebx
.text:0048EC20 mov [ebp+var_24], edx
.text:0048EC23 mov [ebp+var_20], ecx
What do this numbers mean?
.data:004CEAC8 dword_4CEAC8 dd 6E6F6E41h ; DATA XREF: DX_Enumerate+1Dr
.data:004CEAC8 ; sub_497290+24r
.data:004CEACC dword_4CEACC dd 756F6D79h ; DATA XREF: DX_Enumerate+23r
.data:004CEACC ; sub_497290+6r
.data:004CEAD0 dword_4CEAD0 dd 55504373h ; DATA XREF: DX_Enumerate+2Cr
.data:004CEAD0 ; sub_497290+Cr
.data:004CEAD4 byte_4CEAD4 db 0 ; DATA XREF: DX_Enumerate+34r
.data:004CEAD4 ; sub_497290+2Cr
Why is it done xor?
.text:0048EBFF xor eax, 200000h