Function at 0x423c90
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x54
push ebx
push esi
push edi
push 0x74
xorps xmm0, xmm0
mov byte [esp + 0x20], 0
push 0
push 0x575134
movlpd qword [esp + 0x2c], xmm0
call fcn.0045e0c2
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
call dword [0x46a174]
mov eax, dword [esp + 0x50]
lea esi, [esp + 0x2c]
mov dword [0x575194], eax
xor ecx, ecx
xor eax, eax
xor edi, edi
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov esi, 0x554838
mov eax, dword [esp + 0x2c]
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [0x575134], eax
mov dword [0x575138], ecx
mov dword [0x57513c], edx
cmp dword [esi + 4], edx
sete dh
cmp dword [esi - 4], eax
sete byte [esp + 0x13]
and dh, byte [esp + 0x13]
cmp dword [esi], ecx
sete dl
test dl, dh
mov edx, dword [esp + 0x34]
jne 0x423d3a
inc edi
add esi, 0x10
cmp edi, 4
jb 0x423d10
jmp 0x423d48
shl edi, 4
mov eax, dword [edi + 0x554830]
mov dword [0x575184], eax
mov eax, 1
cmp dword [esp + 0x18], eax
jb 0x424045
xor ecx, ecx
lea esi, [esp + 0x2c]
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov edx, dword [esp + 0x2c]
mov ecx, edx
shr ecx, 8
mov esi, edx
shr esi, 4
and ecx, 0xf
mov eax, edx
mov dword [0x575188], ecx
and esi, 0xf
and eax, 0xf
mov dword [0x57518c], esi
mov dword [0x575190], eax
cmp ecx, 0xf
jne 0x423dbc
mov eax, edx
shr eax, 0x14
and eax, 0xff
add eax, ecx
mov dword [0x575188], eax
mov eax, edx
shr eax, 0xc
and eax, 0xf0
add esi, eax
mov dword [0x57518c], esi
mov eax, dword [esp + 0x30]
mov esi, dword [0x575198]
movzx ecx, al
mov dword [0x5751ac], ecx
mov ecx, eax
shr eax, 0x10
shr ecx, 8
and eax, 0xff
shr edx, 0xc
and ecx, 0xff
and edx, 3
shl ecx, 3
mov dword [0x5751b4], eax
mov eax, dword [esp + 0x34]
mov dword [0x5751a8], edx
mov dword [0x5751b0], ecx
test al, 1
je 0x423e10
or esi, 0x100000
mov dword [0x575198], esi
test al, 2
je 0x423e20
or esi, 0x80000000
mov dword [0x575198], esi
test al, 8
je 0x423e30
or esi, 0x4000000
mov dword [0x575198], esi
test eax, 0x200
je 0x423e43
or esi, 0x200000
mov dword [0x575198], esi
test eax, 0x2000
je 0x423e53
or esi, 0x40
mov dword [0x575198], esi
test eax, 0x80000
je 0x423e66
or esi, 0x800000
mov dword [0x575198], esi
test eax, 0x100000
je 0x423e79
or esi, 0x1000000
mov dword [0x575198], esi
test eax, 0x400000
je 0x423e8c
or esi, 0x8000000
mov dword [0x575198], esi
test eax, 0x800000
je 0x423e9f
or esi, 0x10000000
mov dword [0x575198], esi
test eax, 0x2000000
je 0x423eb2
or esi, 0x40000000
mov dword [0x575198], esi
mov edi, dword [0x57519c]
test eax, 0x4000000
je 0x423ec8
or edi, 8
mov dword [0x57519c], edi
test eax, 0x8000000
je 0x423ed8
or edi, 0x10
mov dword [0x57519c], edi
test eax, 0x40000000
je 0x423ee8
or edi, 1
mov dword [0x57519c], edi
mov ecx, dword [esp + 0x38]
test cl, 0x10
je 0x423efa
or esi, 4
mov dword [0x575198], esi
test ecx, 0x100
je 0x423f0b
or esi, 0x20
mov dword [0x575198], esi
test ecx, 0x8000
je 0x423f1c
or esi, 0x10
mov dword [0x575198], esi
test ecx, 0x80000
je 0x423f30
or esi, 0x80
mov dword [0x575198], esi
test ecx, 0x800000
je 0x423f44
or esi, 0x4000
mov dword [0x575198], esi
test ecx, 0x1000000
je 0x423f58
or esi, 0x1000
mov dword [0x575198], esi
test ecx, 0x2000000
je 0x423f6c
or esi, 0x48000
mov dword [0x575198], esi
test ecx, 0x4000000
je 0x423f80
or esi, 0xc0000
mov dword [0x575198], esi
and ecx, 0x10000000
je 0x423f91
or esi, 2
mov dword [0x575198], esi
mov edx, dword [esp + 0x50]
cmp edx, 1
jne 0x423fb8
cmp dword [0x575184], 2
jne 0x423fb8
test ecx, ecx
mov dword [esp + 0x14], 2
cmovne edx, dword [esp + 0x14]
mov dword [0x575194], edx
mov ecx, eax
and ecx, 0xc000000
cmp ecx, 0xc000000
jne 0x423fd7
mov eax, dword [esp + 0x34]
xor ecx, ecx
xgetbv
mov dword [esp + 0x24], edx
jmp 0x423fdb
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x14], ecx
test eax, 0x10000000
je 0x424053
and ecx, 6
cmp cl, 6
jne 0x424053
or edi, 0x20
mov dword [0x57519c], edi
test eax, 0x800
je 0x42400a
or edi, 0x400
mov dword [0x57519c], edi
test eax, 0x4000
je 0x42401d
or edi, 0x100
mov dword [0x57519c], edi
test eax, 0x10000
je 0x424030
or edi, 0x200
mov dword [0x57519c], edi
test eax, 0x20000000
je 0x424053
or edi, 0x80
mov dword [0x57519c], edi
jmp 0x424053
mov eax, dword [esp + 0x20]
mov esi, dword [0x575198]
mov dword [esp + 0x14], eax
cmp dword [esp + 0x18], 7
jb 0x424206
xor ecx, ecx
lea edi, [esp + 0x2c]
mov eax, 7
cpuid
mov dword [edi], eax
mov eax, edi
mov edi, dword [0x57519c]
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x30]
test al, 1
je 0x424092
or edi, 0x20000
mov dword [0x57519c], edi
test al, 8
je 0x4240a2
or edi, 0x800
mov dword [0x57519c], edi
test al, 0x10
je 0x4240b2
or edi, 0x2000
mov dword [0x57519c], edi
test eax, 0x100
je 0x4240c5
or edi, 0x1000
mov dword [0x57519c], edi
test eax, 0x200
je 0x4240d8
or edi, 0x40000
mov dword [0x57519c], edi
test eax, 0x800
je 0x4240eb
or edi, 0x4000
mov dword [0x57519c], edi
mov edx, dword [esp + 0x1c]
test eax, 0x4000
movzx edx, dl
mov ecx, 1
cmovne edx, ecx
test eax, 0x40000
je 0x42410f
or edi, 2
mov dword [0x57519c], edi
test eax, 0x80000
je 0x424122
or edi, 0x8000
mov dword [0x57519c], edi
test eax, 0x800000
je 0x424135
or esi, 0x100
mov dword [0x575198], esi
test eax, 0x20000000
je 0x424145
or edi, 4
mov dword [0x57519c], edi
test byte [esp + 0x34], cl
je 0x424157
or esi, 0x400
mov dword [0x575198], esi
mov ecx, edi
shr ecx, 5
test cl, 1
je 0x42416e
test al, 0x20
je 0x42416e
or edi, 0x40
mov dword [0x57519c], edi
test eax, 0x10000
je 0x42420a
mov ecx, dword [esp + 0x14]
and ecx, 0x76
cmp cl, 0x76
jne 0x42420a
or edi, 0x80000
mov dword [0x57519c], edi
test eax, 0x20000
je 0x4241a8
or edi, 0x800000
mov dword [0x57519c], edi
test eax, 0x4000000
je 0x4241bb
or edi, 0x200000
mov dword [0x57519c], edi
test eax, 0x8000000
je 0x4241ce
or edi, 0x400000
mov dword [0x57519c], edi
test eax, 0x10000000
je 0x4241e1
or edi, 0x100000
mov dword [0x57519c], edi
test eax, 0x40000000
je 0x4241f4
or edi, 0x1000000
mov dword [0x57519c], edi
test eax, eax
jns 0x42420a
or edi, 0x2000000
mov dword [0x57519c], edi
jmp 0x42420a
mov edx, dword [esp + 0x1c]
cmp dword [esp + 0x18], 0xd
jb 0x424248
test dl, dl
je 0x424248
xor ecx, ecx
lea edi, [esp + 0x2c]
mov eax, 0xd
cpuid
mov dword [edi], eax
mov eax, edi
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x14]
and eax, dword [esp + 0x2c]
and eax, 0x18
cmp al, 0x18
jne 0x424248
or dword [0x57519c], 0x10000
xor ecx, ecx
lea edi, [esp + 0x2c]
mov eax, 0x80000000
cpuid
mov dword [edi], eax
mov dword [edi + 4], ebx
mov dword [edi + 8], ecx
mov ecx, 0x80000001
mov dword [edi + 0xc], edx
mov edx, 0x80000004
mov eax, dword [esp + 0x2c]
mov edi, 0x575144
cmp eax, edx
mov dword [esp + 0x1c], edi
mov dword [esp + 0x18], ecx
cmovb edx, eax
mov dword [esp + 0x14], edx
cmp edx, ecx
jb 0x4243c6
lea esp, [esp]
mov eax, ecx
lea edi, [esp + 0x2c]
xor ecx, ecx
cpuid
mov dword [edi], eax
mov eax, edi
mov edi, dword [esp + 0x1c]
mov dword [eax + 4], ebx
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x18]
mov dword [eax + 0xc], edx
cmp ecx, 0x80000001
je 0x4242f3
lea eax, [ecx + 0x7ffffffe]
cmp eax, 2
ja 0x4243b7
mov eax, dword [esp + 0x2c]
mov dword [edi], eax
mov eax, dword [esp + 0x30]
mov dword [edi + 4], eax
mov eax, dword [esp + 0x34]
mov dword [edi + 8], eax
mov eax, dword [esp + 0x38]
mov dword [edi + 0xc], eax
add edi, 0x10
mov esi, dword [0x575198]
mov dword [esp + 0x1c], edi
jmp 0x4243b7
mov eax, dword [esp + 0x34]
test al, 1
je 0x424307
or esi, 0x800
mov dword [0x575198], esi
test al, 0x20
je 0x424317
or esi, 0x20000000
mov dword [0x575198], esi
test al, 0x40
je 0x424327
or esi, 0x400000
mov dword [0x575198], esi
test al, al
jns 0x424337
or esi, 0x2000000
mov dword [0x575198], esi
test eax, 0x100
je 0x42434a
or esi, 0x200
mov dword [0x575198], esi
mov eax, dword [esp + 0x38]
test eax, 0x100000
je 0x42435e
or esi, 1
mov dword [0x575198], esi
test eax, 0x200000
je 0x424371
or esi, 0x2000
mov dword [0x575198], esi
test eax, 0x400000
je 0x424384
or esi, 0x8000
mov dword [0x575198], esi
test eax, 0x8000000
je 0x424394
or esi, 8
mov dword [0x575198], esi
test eax, 0x40000000
je 0x4243a7
or esi, 0x28000
mov dword [0x575198], esi
test eax, eax
jns 0x4243b7
or esi, 0x10000
mov dword [0x575198], esi
inc ecx
mov dword [esp + 0x18], ecx
cmp ecx, dword [esp + 0x14]
jbe 0x424290
mov al, byte [0x575144]
xor ah, ah
mov byte [esp + 0x13], ah
mov ecx, 0x575144
mov byte [0x575144], ah
mov edx, ecx
test al, al
je 0x424411
cmp al, 0x20
jne 0x4243f7
cmp ah, 0x40
je 0x424406
mov ah, byte [ecx + 1]
cmp ah, al
je 0x424402
cmp ah, 0x40
je 0x424402
mov ah, al
mov byte [edx], al
inc edx
mov byte [esp + 0x13], ah
jmp 0x424406
mov ah, byte [esp + 0x13]
mov al, byte [ecx + 1]
inc ecx
mov byte [ecx], 0
test al, al
jne 0x4243e2
pop edi
pop esi
mov byte [edx], 0
pop ebx
mov esp, ebp
pop ebp
ret