Function at 0x45c6c0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xfffffffffffffffe
push 0x516d88
push 0x4af0d0
mov eax, dword fs:[0]
push eax
sub esp, 8
push ebx
sub esp, 0x58
mov eax, dword [0x520078]
xor dword [ebp - 8], eax
xor eax, ebp
mov dword [ebp - 0x24], eax
push esi
push edi
push eax
lea eax, [ebp - 0x10]
mov dword fs:[0], eax
mov dword [ebp - 0x18], esp
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
movups xmmword [ebp - 0x68], xmm0
movups xmmword [ebp - 0x58], xmm0
movups xmmword [ebp - 0x48], xmm0
movups xmmword [ebp - 0x38], xmm0
mov dword [ebp - 4], 0
mov byte [ebp - 0x73], 0
mov edx, 0x200000
pushfd
pushfd
pop eax
xor eax, edx
push eax
popfd
pushfd
pop ecx
xor eax, ecx
and eax, edx
jne 0x45c747
mov byte [ebp - 0x73], 1
popfd
cmp byte [ebp - 0x73], 0
je 0x45c7dc
lea edi, [ebp - 0x68]
xor eax, eax
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
lea edi, [ebp - 0x58]
mov eax, 1
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
lea edi, [ebp - 0x48]
mov eax, 0x80000001
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
lea edi, [ebp - 0x38]
mov eax, 7
xor ecx, ecx
push ebx
cpuid
mov esi, ebx
pop ebx
mov dword [edi], eax
mov dword [edi + 4], esi
mov dword [edi + 8], ecx
mov dword [edi + 0xc], edx
jmp 0x45c7dc
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x4c]
test al, 1
je 0x45c7f9
mov esi, 1
mov dword [ebp - 0x70], esi
xor edi, edi
mov dword [ebp - 0x6c], edi
jmp 0x45c7ff
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
test eax, 0x800000
je 0x45c80f
or esi, 2
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x2000000
je 0x45c81f
or esi, 4
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x4000000
je 0x45c82f
or esi, 8
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x50]
test al, 1
je 0x45c83f
or esi, 0x10
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x200
je 0x45c84f
or esi, 0x20
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x80000
je 0x45c85f
or esi, 0x40
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x100000
je 0x45c872
or esi, 0x80
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x800000
je 0x45c885
or esi, 0x8000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x2000000
je 0x45c898
or esi, 0x100
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test al, 2
je 0x45c8a8
or esi, 0x200
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x10000000
je 0x45c8bb
or esi, 0x400
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x40000000
je 0x45c8ce
or esi, 0x20000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x34]
test al, 0x20
je 0x45c8e1
or esi, 0x1000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test al, 8
je 0x45c8f1
or esi, 0x2000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x100
je 0x45c904
or esi, 0x4000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x200
je 0x45c917
mov dword [ebp - 0x70], esi
or edi, 0x100
mov dword [ebp - 0x6c], edi
test eax, 0x10000
je 0x45c92a
or esi, 0x100000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x20000
je 0x45c93d
or esi, 0x400000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x40000
je 0x45c94d
mov dword [ebp - 0x70], esi
or edi, 8
mov dword [ebp - 0x6c], edi
test eax, 0x80000
je 0x45c960
or esi, 0x10000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x20000000
je 0x45c973
or esi, 0x40000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x40000000
je 0x45c986
or esi, 0x200000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, eax
jns 0x45c996
or esi, 0x800000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test byte [ebp - 0x30], 2
je 0x45c9a8
or esi, 0x1000000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov edx, dword [ebp - 0x58]
sar edx, 8
and edx, 0xff00f
mov ecx, dword [ebp - 0x58]
sar ecx, 4
and ecx, 0xf00f
mov eax, dword [ebp - 0x64]
cmp eax, 0x68747541
je 0x45cb9d
cmp eax, 0x746e6543
je 0x45cb3d
cmp eax, 0x756e6547
jne 0x45cc2e
cmp dword [ebp - 0x60], 0x6c65746e
jne 0x45cc2e
cmp dword [ebp - 0x5c], 0x49656e69
jne 0x45cc2e
mov dword [ebp - 0x70], esi
or edi, 4
mov dword [ebp - 0x6c], edi
cmp edx, 6
jae 0x45ca14
or edi, 1
jmp 0x45cafa
jne 0x45cb00
cmp ecx, 0x100c
je 0x45caf7
cmp ecx, 0x2006
je 0x45caf7
cmp ecx, 0x2007
je 0x45caf7
cmp ecx, 0x3005
je 0x45caf7
cmp ecx, 0x3006
je 0x45caf7
cmp ecx, 0x3007
je 0x45caf2
cmp ecx, 0x400a
je 0x45caf2
cmp ecx, 0x400c
je 0x45caf2
cmp ecx, 0x400d
je 0x45caf2
cmp ecx, 0x500c
je 0x45cb00
cmp ecx, 0x500f
je 0x45cb00
cmp ecx, 0x700a
je 0x45cb00
cmp ecx, 0x200a
je 0x45caea
cmp ecx, 0x200d
je 0x45caea
cmp ecx, 0x300a
je 0x45caea
cmp ecx, 0x300e
je 0x45caea
cmp ecx, 0x400f
je 0x45caea
cmp ecx, 0x300c
je 0x45cad6
cmp ecx, 0x300d
je 0x45cad6
cmp ecx, 0x300f
jb 0x45cb00
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45cb00
or edi, 0x400
jmp 0x45cafa
or edi, 0x200
jmp 0x45cafa
or edi, 2
jmp 0x45cafa
or edi, 3
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20
or eax, 0
je 0x45cc16
cmp ecx, 0x1006
je 0x45cc16
cmp ecx, 0xf
je 0x45cc16
mov ecx, edi
and ecx, 2
xor eax, eax
or eax, ecx
jne 0x45cc16
or edi, 0x1000
jmp 0x45cc10
cmp dword [ebp - 0x60], 0x736c7561
jne 0x45cc2e
cmp dword [ebp - 0x5c], 0x48727561
jne 0x45cc2e
cmp edx, 6
jb 0x45cb63
jne 0x45cb6c
cmp ecx, 0xf
jae 0x45cb6c
mov dword [ebp - 0x70], esi
or edi, 1
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20
or eax, 0
je 0x45cb82
mov dword [ebp - 0x70], esi
or edi, 0x1000
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45cc2e
or edi, 0x400
jmp 0x45cc28
cmp dword [ebp - 0x60], 0x444d4163
jne 0x45cc2e
cmp dword [ebp - 0x5c], 0x69746e65
jne 0x45cc2e
cmp edx, 5
jb 0x45cbc4
jne 0x45cbcd
cmp ecx, 6
jb 0x45cbc4
cmp ecx, 0xa
jne 0x45cbcd
mov dword [ebp - 0x70], esi
or edi, 1
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x400
or eax, 0
je 0x45cbee
test dword [ebp - 0x40], 0x800
je 0x45cbee
or esi, 0x800
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
cmp edx, 0x700f
je 0x45cbfe
cmp edx, 0x800f
jb 0x45cc2e
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45cc16
or edi, 0x400
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x80
or eax, 0
je 0x45cc2e
or edi, 0x800
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov ecx, dword [ebp - 0x60]
mov dword [0x52773c], ecx
mov eax, dword [ebp - 0x58]
mov dword [0x527738], eax
mov dword [ebp - 4], 1
mov eax, esi
and eax, 2
or eax, 0
je 0x45cca6
mov dword [ebp - 4], 2
call fcn.00401440
test al, al
jne 0x45cc6e
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov dword [ebp - 4], 1
jmp 0x45cc9b
mov eax, esi
or eax, edi
jne 0x45cca6
call fcn.00401470
mov eax, esi
and eax, 8
or eax, 0
je 0x45ccdc
mov eax, esi
and eax, 4
or eax, 0
jne 0x45ccc5
and esi, 0xfffffff7
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45ccdc
call fcn.00401400
test al, al
jne 0x45ccdc
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x10
or eax, 0
je 0x45ccf9
mov eax, esi
and eax, 8
or eax, 0
jne 0x45ccf9
and esi, 0xffffffef
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20
or eax, 0
je 0x45cd2f
mov eax, esi
and eax, 0x10
or eax, 0
jne 0x45cd18
and esi, 0xffffffdf
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45cd2f
call fcn.004013c0
test al, al
jne 0x45cd2f
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x40
or eax, 0
je 0x45cd65
mov eax, esi
and eax, 0x20
or eax, 0
jne 0x45cd4e
and esi, 0xffffffbf
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45cd65
call fcn.00401370
test al, al
jne 0x45cd65
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x80
or eax, 0
je 0x45cda6
mov eax, esi
and eax, 0x40
or eax, 0
jne 0x45cd8f
and esi, 0xffffff7f
mov dword [ebp - 0x70], esi
and edi, 0xfffff7ff
mov dword [ebp - 0x6c], edi
jmp 0x45cda6
call fcn.00401340
test al, al
jne 0x45cda6
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x8000
or eax, 0
je 0x45cdd1
mov eax, esi
and eax, 0x10
or eax, 0
je 0x45cdc5
call fcn.00401320
test al, al
jne 0x45cdd1
and esi, 0xffff7fff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45ce04
mov eax, esi
and eax, 0x80
or eax, 0
je 0x45cdf2
call fcn.00401280
test al, al
jne 0x45ce04
and esi, 0xfffffdff
mov dword [ebp - 0x70], esi
and edi, 0xfffffbff
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x100
or eax, 0
je 0x45ce31
mov eax, esi
and eax, 0x80
or eax, 0
je 0x45ce25
call fcn.004012c0
test al, al
jne 0x45ce31
and esi, 0xfffffeff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x400
or eax, 0
je 0x45cee3
mov eax, esi
and eax, 0x80
or eax, 0
jne 0x45ce5e
and esi, 0xfffffbff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45cee3
test dword [ebp - 0x50], 0x8000000
jne 0x45ce75
and esi, 0xffefebff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45cee3
mov byte [ebp - 0x71], 0
mov dword [ebp - 4], 3
call fcn.00401140
movzx ecx, byte [ebp - 0x71]
test al, al
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 0x71], cl
mov dword [ebp - 4], eax
jmp 0x45ceba
test cl, cl
jne 0x45cecc
and esi, 0xffffebff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45cee3
call fcn.00401200
test al, al
jne 0x45cee3
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x800
or eax, 0
je 0x45cf20
mov eax, esi
and eax, 0x400
or eax, 0
jne 0x45cf09
and esi, 0xfffff7ff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45cf20
call fcn.00401240
test al, al
jne 0x45cf20
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x2000
or eax, 0
je 0x45cf5d
mov eax, esi
and eax, 0x400
or eax, 0
jne 0x45cf46
and esi, 0xffffdfff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45cf5d
call fcn.004011a0
test al, al
jne 0x45cf5d
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x4000
or eax, 0
je 0x45cfa2
mov eax, esi
and eax, 0x2400
xor ecx, ecx
cmp eax, 0x2400
jne 0x45cf96
test ecx, ecx
jne 0x45cf96
call fcn.004011d0
test al, al
jne 0x45cfa2
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
jmp 0x45cfa2
and esi, 0xffffbfff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x10000
or eax, 0
je 0x45cfc6
mov eax, esi
and eax, 0x4000
or eax, 0
jne 0x45cfc6
and esi, 0xfffeffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20000
or eax, 0
je 0x45d008
mov dword [ebp - 4], 4
call fcn.00401490
jmp 0x45d001
mov dword [ebp - 4], 1
mov ecx, edi
and ecx, 8
xor eax, eax
or eax, ecx
je 0x45d05d
mov eax, esi
and eax, 0x20000
or eax, 0
jne 0x45d02a
mov dword [ebp - 0x70], esi
and edi, 0xfffffff7
mov dword [ebp - 0x6c], edi
jmp 0x45d05d
mov dword [ebp - 4], 5
call fcn.004014a0
jmp 0x45d056
mov dword [ebp - 4], 1
mov eax, esi
and eax, 0x1000
or eax, 0
je 0x45d0a2
mov eax, esi
and eax, 0x6400
xor ecx, ecx
cmp eax, 0x6400
jne 0x45d096
test ecx, ecx
jne 0x45d096
call fcn.00401150
test al, al
jne 0x45d0a2
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
jmp 0x45d0a2
and esi, 0xffffefff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x40000
or eax, 0
je 0x45d0dd
mov eax, esi
and eax, 0x40
or eax, 0
jne 0x45d0c6
and esi, 0xfffbffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d0dd
call fcn.004014b0
test al, al
jne 0x45d0dd
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov eax, esi
and eax, 0x100000
or eax, 0
je 0x45d163
mov eax, esi
and eax, 0x1000
or eax, 0
jne 0x45d0fd
and esi, 0xffefffff
jmp 0x45d15d
mov byte [ebp - 0x72], 0
mov dword [ebp - 4], 6
call fcn.00401510
movzx ecx, byte [ebp - 0x72]
test al, al
mov eax, 1
cmovne ecx, eax
mov byte [ebp - 0x72], cl
mov dword [ebp - 4], eax
jmp 0x45d142
test cl, cl
jne 0x45d14e
and esi, 0xffefffff
jmp 0x45d15d
call fcn.00401530
test al, al
jne 0x45d163
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x200000
or eax, 0
je 0x45d198
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d183
and esi, 0xffdfffff
jmp 0x45d192
call fcn.00401590
test al, al
jne 0x45d198
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x400000
or eax, 0
je 0x45d1cd
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d1b8
and esi, 0xffbfffff
jmp 0x45d1c7
call fcn.00401600
test al, al
jne 0x45d1cd
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x800000
or eax, 0
je 0x45d202
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d1ed
and esi, 0xff7fffff
jmp 0x45d1fc
call fcn.00401660
test al, al
jne 0x45d202
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x1000000
or eax, 0
je 0x45d244
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d22f
and esi, 0xfeffffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 4], 0xfffffffe
jmp 0x45d271
call fcn.004016c0
test al, al
jne 0x45d244
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 4], 0xfffffffe
jmp 0x45d271
mov eax, esi
and eax, 4
or eax, 0
je 0x45d287
lea ecx, [ebp - 0x58]
call fcn.0045bf60
or esi, eax
or edi, edx
mov dword [0x527740], esi
mov dword [0x527744], edi
xor eax, eax
mov ecx, dword [ebp - 0x10]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x24]
xor ecx, ebp
call fcn.0049384c
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret