Function at 0x45ca30
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 0x516d30
push 0x4af4c0
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 0x45cab7
mov byte [ebp - 0x73], 1
popfd
cmp byte [ebp - 0x73], 0
je 0x45cb4c
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 0x45cb4c
mov dword [ebp - 4], 0xfffffffe
mov eax, dword [ebp - 0x4c]
test al, 1
je 0x45cb69
mov esi, 1
mov dword [ebp - 0x70], esi
xor edi, edi
mov dword [ebp - 0x6c], edi
jmp 0x45cb6f
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
test eax, 0x800000
je 0x45cb7f
or esi, 2
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x2000000
je 0x45cb8f
or esi, 4
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x4000000
je 0x45cb9f
or esi, 8
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x50]
test al, 1
je 0x45cbaf
or esi, 0x10
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x200
je 0x45cbbf
or esi, 0x20
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x80000
je 0x45cbcf
or esi, 0x40
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x100000
je 0x45cbe2
or esi, 0x80
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x800000
je 0x45cbf5
or esi, 0x8000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x2000000
je 0x45cc08
or esi, 0x100
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test al, 2
je 0x45cc18
or esi, 0x200
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x10000000
je 0x45cc2b
or esi, 0x400
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x40000000
je 0x45cc3e
or esi, 0x20000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, dword [ebp - 0x34]
test al, 0x20
je 0x45cc51
or esi, 0x1000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test al, 8
je 0x45cc61
or esi, 0x2000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x100
je 0x45cc74
or esi, 0x4000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x200
je 0x45cc87
mov dword [ebp - 0x70], esi
or edi, 0x100
mov dword [ebp - 0x6c], edi
test eax, 0x10000
je 0x45cc9a
or esi, 0x100000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x20000
je 0x45ccad
or esi, 0x400000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x40000
je 0x45ccbd
mov dword [ebp - 0x70], esi
or edi, 8
mov dword [ebp - 0x6c], edi
test eax, 0x80000
je 0x45ccd0
or esi, 0x10000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x20000000
je 0x45cce3
or esi, 0x40000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, 0x40000000
je 0x45ccf6
or esi, 0x200000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test eax, eax
jns 0x45cd06
or esi, 0x800000
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
test byte [ebp - 0x30], 2
je 0x45cd18
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 0x45cf0d
cmp eax, 0x746e6543
je 0x45cead
cmp eax, 0x756e6547
jne 0x45cf9e
cmp dword [ebp - 0x60], 0x6c65746e
jne 0x45cf9e
cmp dword [ebp - 0x5c], 0x49656e69
jne 0x45cf9e
mov dword [ebp - 0x70], esi
or edi, 4
mov dword [ebp - 0x6c], edi
cmp edx, 6
jae 0x45cd84
or edi, 1
jmp 0x45ce6a
jne 0x45ce70
cmp ecx, 0x100c
je 0x45ce67
cmp ecx, 0x2006
je 0x45ce67
cmp ecx, 0x2007
je 0x45ce67
cmp ecx, 0x3005
je 0x45ce67
cmp ecx, 0x3006
je 0x45ce67
cmp ecx, 0x3007
je 0x45ce62
cmp ecx, 0x400a
je 0x45ce62
cmp ecx, 0x400c
je 0x45ce62
cmp ecx, 0x400d
je 0x45ce62
cmp ecx, 0x500c
je 0x45ce70
cmp ecx, 0x500f
je 0x45ce70
cmp ecx, 0x700a
je 0x45ce70
cmp ecx, 0x200a
je 0x45ce5a
cmp ecx, 0x200d
je 0x45ce5a
cmp ecx, 0x300a
je 0x45ce5a
cmp ecx, 0x300e
je 0x45ce5a
cmp ecx, 0x400f
je 0x45ce5a
cmp ecx, 0x300c
je 0x45ce46
cmp ecx, 0x300d
je 0x45ce46
cmp ecx, 0x300f
jb 0x45ce70
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45ce70
or edi, 0x400
jmp 0x45ce6a
or edi, 0x200
jmp 0x45ce6a
or edi, 2
jmp 0x45ce6a
or edi, 3
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20
or eax, 0
je 0x45cf86
cmp ecx, 0x1006
je 0x45cf86
cmp ecx, 0xf
je 0x45cf86
mov ecx, edi
and ecx, 2
xor eax, eax
or eax, ecx
jne 0x45cf86
or edi, 0x1000
jmp 0x45cf80
cmp dword [ebp - 0x60], 0x736c7561
jne 0x45cf9e
cmp dword [ebp - 0x5c], 0x48727561
jne 0x45cf9e
cmp edx, 6
jb 0x45ced3
jne 0x45cedc
cmp ecx, 0xf
jae 0x45cedc
mov dword [ebp - 0x70], esi
or edi, 1
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20
or eax, 0
je 0x45cef2
mov dword [ebp - 0x70], esi
or edi, 0x1000
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45cf9e
or edi, 0x400
jmp 0x45cf98
cmp dword [ebp - 0x60], 0x444d4163
jne 0x45cf9e
cmp dword [ebp - 0x5c], 0x69746e65
jne 0x45cf9e
cmp edx, 5
jb 0x45cf34
jne 0x45cf3d
cmp ecx, 6
jb 0x45cf34
cmp ecx, 0xa
jne 0x45cf3d
mov dword [ebp - 0x70], esi
or edi, 1
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x400
or eax, 0
je 0x45cf5e
test dword [ebp - 0x40], 0x800
je 0x45cf5e
or esi, 0x800
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
cmp edx, 0x700f
je 0x45cf6e
cmp edx, 0x800f
jb 0x45cf9e
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45cf86
or edi, 0x400
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x80
or eax, 0
je 0x45cf9e
or edi, 0x800
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov ecx, dword [ebp - 0x60]
mov dword [0x527d2c], ecx
mov eax, dword [ebp - 0x58]
mov dword [0x527d28], eax
mov dword [ebp - 4], 1
mov eax, esi
and eax, 2
or eax, 0
je 0x45d016
mov dword [ebp - 4], 2
call fcn.00401440
test al, al
jne 0x45cfde
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
mov dword [ebp - 4], 1
jmp 0x45d00b
mov eax, esi
or eax, edi
jne 0x45d016
call fcn.00401470
mov eax, esi
and eax, 8
or eax, 0
je 0x45d04c
mov eax, esi
and eax, 4
or eax, 0
jne 0x45d035
and esi, 0xfffffff7
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d04c
call fcn.00401400
test al, al
jne 0x45d04c
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 0x45d069
mov eax, esi
and eax, 8
or eax, 0
jne 0x45d069
and esi, 0xffffffef
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20
or eax, 0
je 0x45d09f
mov eax, esi
and eax, 0x10
or eax, 0
jne 0x45d088
and esi, 0xffffffdf
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d09f
call fcn.004013c0
test al, al
jne 0x45d09f
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 0x45d0d5
mov eax, esi
and eax, 0x20
or eax, 0
jne 0x45d0be
and esi, 0xffffffbf
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d0d5
call fcn.00401370
test al, al
jne 0x45d0d5
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 0x45d116
mov eax, esi
and eax, 0x40
or eax, 0
jne 0x45d0ff
and esi, 0xffffff7f
mov dword [ebp - 0x70], esi
and edi, 0xfffff7ff
mov dword [ebp - 0x6c], edi
jmp 0x45d116
call fcn.00401340
test al, al
jne 0x45d116
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 0x45d141
mov eax, esi
and eax, 0x10
or eax, 0
je 0x45d135
call fcn.00401320
test al, al
jne 0x45d141
and esi, 0xffff7fff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x200
or eax, 0
je 0x45d174
mov eax, esi
and eax, 0x80
or eax, 0
je 0x45d162
call fcn.00401280
test al, al
jne 0x45d174
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 0x45d1a1
mov eax, esi
and eax, 0x80
or eax, 0
je 0x45d195
call fcn.004012c0
test al, al
jne 0x45d1a1
and esi, 0xfffffeff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x400
or eax, 0
je 0x45d253
mov eax, esi
and eax, 0x80
or eax, 0
jne 0x45d1ce
and esi, 0xfffffbff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d253
test dword [ebp - 0x50], 0x8000000
jne 0x45d1e5
and esi, 0xffefebff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d253
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 0x45d22a
test cl, cl
jne 0x45d23c
and esi, 0xffffebff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d253
call fcn.00401200
test al, al
jne 0x45d253
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 0x45d290
mov eax, esi
and eax, 0x400
or eax, 0
jne 0x45d279
and esi, 0xfffff7ff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d290
call fcn.00401240
test al, al
jne 0x45d290
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 0x45d2cd
mov eax, esi
and eax, 0x400
or eax, 0
jne 0x45d2b6
and esi, 0xffffdfff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d2cd
call fcn.004011a0
test al, al
jne 0x45d2cd
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 0x45d312
mov eax, esi
and eax, 0x2400
xor ecx, ecx
cmp eax, 0x2400
jne 0x45d306
test ecx, ecx
jne 0x45d306
call fcn.004011d0
test al, al
jne 0x45d312
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
jmp 0x45d312
and esi, 0xffffbfff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x10000
or eax, 0
je 0x45d336
mov eax, esi
and eax, 0x4000
or eax, 0
jne 0x45d336
and esi, 0xfffeffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x20000
or eax, 0
je 0x45d378
mov dword [ebp - 4], 4
call fcn.00401490
jmp 0x45d371
mov dword [ebp - 4], 1
mov ecx, edi
and ecx, 8
xor eax, eax
or eax, ecx
je 0x45d3cd
mov eax, esi
and eax, 0x20000
or eax, 0
jne 0x45d39a
mov dword [ebp - 0x70], esi
and edi, 0xfffffff7
mov dword [ebp - 0x6c], edi
jmp 0x45d3cd
mov dword [ebp - 4], 5
call fcn.004014a0
jmp 0x45d3c6
mov dword [ebp - 4], 1
mov eax, esi
and eax, 0x1000
or eax, 0
je 0x45d412
mov eax, esi
and eax, 0x6400
xor ecx, ecx
cmp eax, 0x6400
jne 0x45d406
test ecx, ecx
jne 0x45d406
call fcn.00401150
test al, al
jne 0x45d412
xorps xmm0, xmm0
movlpd qword [ebp - 0x70], xmm0
mov edi, dword [ebp - 0x6c]
mov esi, dword [ebp - 0x70]
jmp 0x45d412
and esi, 0xffffefff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x40000
or eax, 0
je 0x45d44d
mov eax, esi
and eax, 0x40
or eax, 0
jne 0x45d436
and esi, 0xfffbffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
jmp 0x45d44d
call fcn.004014b0
test al, al
jne 0x45d44d
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 0x45d4d3
mov eax, esi
and eax, 0x1000
or eax, 0
jne 0x45d46d
and esi, 0xffefffff
jmp 0x45d4cd
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 0x45d4b2
test cl, cl
jne 0x45d4be
and esi, 0xffefffff
jmp 0x45d4cd
call fcn.00401530
test al, al
jne 0x45d4d3
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x200000
or eax, 0
je 0x45d508
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d4f3
and esi, 0xffdfffff
jmp 0x45d502
call fcn.00401590
test al, al
jne 0x45d508
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x400000
or eax, 0
je 0x45d53d
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d528
and esi, 0xffbfffff
jmp 0x45d537
call fcn.00401600
test al, al
jne 0x45d53d
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x800000
or eax, 0
je 0x45d572
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d55d
and esi, 0xff7fffff
jmp 0x45d56c
call fcn.00401660
test al, al
jne 0x45d572
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov eax, esi
and eax, 0x1000000
or eax, 0
je 0x45d5b4
mov eax, esi
and eax, 0x100000
or eax, 0
jne 0x45d59f
and esi, 0xfeffffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 4], 0xfffffffe
jmp 0x45d5e1
call fcn.004016c0
test al, al
jne 0x45d5b4
and esi, 0xfe0fffff
mov dword [ebp - 0x70], esi
mov dword [ebp - 0x6c], edi
mov dword [ebp - 4], 0xfffffffe
jmp 0x45d5e1
mov eax, esi
and eax, 4
or eax, 0
je 0x45d5f7
lea ecx, [ebp - 0x58]
call fcn.0045c2d0
or esi, eax
or edi, edx
mov dword [0x527d30], esi
mov dword [0x527d34], 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.00493bec
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret