Function at 0x40d3e0
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x10c
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x108], eax
mov edx, dword [0x459190]
xor eax, eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], eax
push ebx
push esi
push edi
test edx, edx
je 0x40dde1
jmp 0x40d420
mov edi, dword [0x459194]
lea ebx, [eax + eax*4]
shl ebx, 3
add edi, ebx
xor esi, esi
cmp byte [esi + edi], 0
je 0x40d43c
inc esi
cmp esi, 8
jb 0x40d430
lea eax, [esi + 1]
cmp eax, 9
ja 0x40ddd0
lea eax, [esp + 0xcc]
mov edx, esi
push eax
mov ecx, edi
call fcn.00413590
xor eax, eax
lea ecx, [esp + 0xe4]
push 0x10
mov word [esp + esi*2 + 0xd0], ax
mov eax, dword [edi + 0xc]
push ecx
push eax
mov dword [esp + 0xec], 0x780030
call fcn.0042f8bc
mov edi, dword [esp + 0x28]
lea eax, [esp + 0xd8]
add esp, 0xc
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x90]
mov dword [esp + 0x90], 5
mov dword [esp + 0x94], 0x7fffffff
mov dword [esp + 0x98], 0
push eax
push 0
push 0x104d
push edi
mov dword [esp + 0xc0], 0
call dword [sym.imp.USER32.dll_SendMessageW]
mov esi, eax
mov dword [esp + 0x90], 1
lea eax, [esp + 0xe0]
mov dword [esp + 0x24], esi
mov dword [esp + 0xa4], eax
lea eax, [esp + 0x90]
push eax
push 0
push 0x104c
push edi
mov dword [esp + 0xa4], esi
mov dword [esp + 0xa8], 1
call dword [sym.imp.USER32.dll_SendMessageW]
mov al, byte [0x4577b0]
lea ecx, [esp + 0x38]
mov byte [esp + 0x42], al
mov edx, 1
mov eax, dword [0x459194]
push 0
mov dword [esp + 0x3c], 0x10c
mov dword [esp + 0x50], 0
mov eax, dword [ebx + eax + 0x10]
mov dword [esp + 0x4c], eax
call fcn.00424530
mov ecx, eax
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], 2
call fcn.004125c0
mov eax, dword [eax + 4]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x54]
push eax
push 0
push 0x104c
push edi
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, dword [0x459194]
mov esi, 0xa
mov edx, dword [0x458d34]
mov dword [esp + 0x14], esi
mov ebx, dword [ebx + eax + 0x24]
lea ecx, [esi + 0xa]
call fcn.00412330
mov edi, eax
xor eax, eax
lea ecx, [edi + 8]
mov dword [esp + 0x18], edi
mov dword [edi + 4], ecx
mov word [ecx + 0xa], ax
xor ecx, ecx
mov dword [edi], eax
mov eax, dword [edi + 4]
mov word [eax], cx
test bl, 8
je 0x40d61f
mov ecx, str.No_Padding_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d61f
mov edx, dword [edi]
add edx, eax
cmp edx, esi
jbe 0x40d5fa
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.No_Padding_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test bl, 0x20
je 0x40d678
mov ecx, str.Code_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d678
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d653
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Code_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test bl, 0x40
je 0x40d6d1
mov ecx, str.Initialized_data_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d6d1
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d6ac
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Initialized_data_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test bl, bl
jns 0x40d729
mov ecx, str.Uninitialized_data_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d729
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d704
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Uninitialized_data_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x200
je 0x40d785
mov ecx, str.Comments_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d785
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d760
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Comments_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x800
je 0x40d7e1
mov ecx, str.Excluded_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d7e1
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d7bc
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Excluded_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x1000
je 0x40d83d
mov ecx, str.COMDAT_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d83d
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d818
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.COMDAT_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x4000
je 0x40d899
mov ecx, str.Speculative_exceptions_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d899
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d874
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Speculative_exceptions_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x8000
je 0x40d8f5
mov ecx, str.GP_relative_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d8f5
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d8d0
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.GP_relative_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x20000
je 0x40d951
mov ecx, str.Purgeable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d951
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d92c
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Purgeable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x40000
je 0x40d9ad
mov ecx, str.Locked_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40d9ad
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d988
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Locked_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x80000
je 0x40da09
mov ecx, str.Preload_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40da09
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40d9e4
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Preload_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x1000000
je 0x40da65
mov ecx, str.Extended_relocations_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40da65
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40da40
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Extended_relocations_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x2000000
je 0x40dac1
mov ecx, str.Discardable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40dac1
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40da9c
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Discardable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x4000000
je 0x40db1d
mov ecx, str.Not_cachable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40db1d
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40daf8
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Not_cachable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x8000000
je 0x40db79
mov ecx, str.Not_pageable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40db79
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40db54
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Not_pageable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x10000000
je 0x40dbd5
mov ecx, str.Shareable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40dbd5
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40dbb0
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Shareable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x20000000
je 0x40dc31
mov ecx, str.Executable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40dc31
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40dc0c
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Executable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, 0x40000000
je 0x40dc8d
mov ecx, str.Readable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40dc8d
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40dc68
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Readable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
test ebx, ebx
jns 0x40dce1
mov ecx, str.Writeable_
call fcn.00412950
add eax, eax
mov dword [esp + 0x10], eax
je 0x40dce1
mov edx, dword [edi]
add edx, eax
cmp esi, edx
jae 0x40dcbc
lea ecx, [esp + 0x14]
call fcn.00413cb0
mov edi, dword [esp + 0x18]
mov eax, dword [esp + 0x10]
push eax
mov eax, dword [edi]
add eax, dword [edi + 4]
push str.Writeable_
push eax
call fcn.0042ea70
mov eax, dword [esp + 0x1c]
add esp, 0xc
add dword [edi], eax
xor edx, edx
mov ecx, dword [edi]
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
mov ecx, dword [edi]
mov dword [esp + 0x28], 4
mov dword [esp + 0x2c], 0x44f02c
cmp ecx, 4
jb 0x40dd53
mov eax, dword [edi + 4]
lea edx, [esp + 0x28]
add ecx, 0xfffffffc
mov dword [esp + 0x30], 4
add eax, ecx
lea ecx, [esp + 0x30]
push 0
mov dword [esp + 0x38], eax
call fcn.00412a30
test al, al
je 0x40dd53
mov esi, dword [edi]
mov eax, esi
mov ecx, dword [edi + 4]
shr eax, 1
lea edx, [eax*2 - 4]
sub esi, edx
lea eax, [ecx + eax*2]
sub esi, 4
push esi
push eax
lea eax, [edx + ecx]
push eax
call fcn.0042f0f0
add dword [edi], 0xfffffffc
add esp, 0xc
mov ecx, dword [edi]
xor edx, edx
mov eax, dword [edi + 4]
mov word [ecx + eax], dx
push 0x10
lea eax, [esp + 0x98]
mov dword [esp + 0x94], 0x780030
push eax
push ebx
call fcn.0042f8bc
add esp, 0xc
lea eax, [esp + 0x90]
push eax
lea eax, [esp + 0x18]
push str.___s_
push eax
call fcn.00413d30
mov eax, dword [esp + 0x30]
add esp, 0xc
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x54], 1
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 3
call fcn.004125c0
mov ecx, dword [esp + 0x1c]
mov eax, dword [eax + 4]
mov dword [esp + 0x68], eax
lea eax, [esp + 0x54]
push eax
push 0
push 0x104c
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [0x459190]
mov eax, dword [esp + 0x20]
inc eax
mov dword [esp + 0x20], eax
cmp eax, edx
jb 0x40d420
mov ecx, dword [esp + 0x114]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042d1c6
mov esp, ebp
pop ebp
ret