Function at 0x40e880
Capabilities:
Inspect section memory permissions

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xdc
push ebx
mov dword [ebp - 4], 0
push dword [ebp + 8]
call fcn.00407870
test eax, eax
je 0x40e8b2
push 5
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_ShowWindow
jmp 0x40f206
lea eax, [ebp - 0x44]
push eax
call fcn.0041c030
add esp, 4
mov dword [ebp - 0x48], 0
cmp byte [ebp + 0x10], 0
je 0x40e8d3
call sub.USER32.dll_GetFocus
mov dword [ebp - 0x48], eax
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00407920
mov eax, dword [ebp + 8]
cmp dword [eax + 0x310], 0
jne 0x40e928
push 0x428
call sub.msvcrt.dll_malloc
add esp, 4
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 0
je 0x40e919
push 0x42c4f4
push dword [ebp - 0xac]
call fcn.00415260
add esp, 8
mov eax, dword [ebp + 8]
mov ebx, dword [ebp - 0xac]
mov dword [eax + 0x310], ebx
mov ebx, dword [ebp + 8]
cmp dword [ebx + 0x320], 0
je 0x40e959
lea ebx, [ebp - 0x44]
push ebx
push dword [ebp + 8]
mov ebx, dword [ebp + 8]
call dword [ebx + 0x320]
cmp byte [ebp - 0x33], 1
jne 0x40e959
push 0
push dword [ebp + 8]
call fcn.0040e660
jmp 0x40f206
mov dword [ebp - 0x4c], 0
mov dword [ebp - 0x50], 0
push dword [ebp + 8]
call fcn.00407140
mov dword [ebp - 0x54], eax
push dword [ebp + 8]
call fcn.00407230
mov dword [ebp - 0x58], eax
push dword [ebp + 8]
call fcn.00407320
mov dword [ebp - 0x5c], eax
push dword [ebp + 8]
call fcn.00407400
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x70], 0
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x68], 0
mov dword [ebp - 0x64], 0
mov eax, dword [ebp - 0x60]
add eax, dword [ebp - 0x58]
push eax
mov eax, dword [ebp - 0x5c]
add eax, dword [ebp - 0x54]
push eax
push dword [ebp - 0x58]
push dword [ebp - 0x54]
lea eax, [ebp - 0x70]
push eax
call sub.USER32.dll_SetRect
mov eax, dword [ebp - 0x54]
mov dword [ebp - 0x78], eax
mov eax, dword [ebp - 0x58]
mov dword [ebp - 0x74], eax
mov dword [ebp - 0x7c], 0x6000000
mov dword [ebp - 0x80], 0x10000
cmp byte [ebp + 0x14], 0
je 0x40e9f8
or dword [ebp - 0x7c], 0x40000000
jmp 0x40ec28
push dword [ebp + 8]
call fcn.0040df80
test al, al
je 0x40ea0b
or dword [ebp - 0x7c], 0x80000000
cmp byte [ebp + 0x10], 0
je 0x40ea18
or dword [ebp - 0x7c], 0x80000000
movzx eax, byte [ebp + 0x10]
push eax
push dword [ebp + 8]
call fcn.0040e000
push dword [ebp + 8]
call fcn.0040dbe0
cmp eax, 4
jne 0x40ea40
mov dword [ebp - 0x54], 0x80000000
mov dword [ebp - 0x58], 0x80000000
push dword [ebp + 8]
call fcn.0040d6b0
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 1
jne 0x40ea60
or dword [ebp - 0x7c], 0x1000000
jmp 0x40ea7b
cmp dword [ebp - 0xac], 2
jne 0x40ea72
or dword [ebp - 0x7c], 0x20000000
jmp 0x40ea7b
cmp dword [ebp - 0xac], 3
jne 0x40ea7b
push dword [ebp + 8]
call fcn.0040dc80
test al, al
je 0x40ea97
mov eax, dword [ebp - 0x7c]
or eax, 0x20000
or eax, 0xc00000
mov dword [ebp - 0x7c], eax
push dword [ebp + 8]
call fcn.0040dd80
test al, al
je 0x40eab3
mov eax, dword [ebp - 0x7c]
or eax, 0x10000
or eax, 0xc00000
mov dword [ebp - 0x7c], eax
push dword [ebp + 8]
call fcn.0040de80
test al, al
je 0x40eacf
mov eax, dword [ebp - 0x7c]
or eax, 0x80000
or eax, 0xc00000
mov dword [ebp - 0x7c], eax
push dword [ebp + 8]
call fcn.0040d800
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 1
jne 0x40eaf2
and dword [ebp - 0x7c], 0xff7fffff
jmp 0x40ebcd
cmp dword [ebp - 0xac], 7
jne 0x40eb17
or dword [ebp - 0x80], 0x80
mov eax, dword [ebp - 0x7c]
or eax, 0x800000
or eax, 0x40000
mov dword [ebp - 0x7c], eax
jmp 0x40ebcd
cmp dword [ebp - 0xac], 6
jne 0x40eb3c
mov eax, dword [ebp - 0x7c]
or eax, 0x800000
or eax, 0x400000
mov dword [ebp - 0x7c], eax
or dword [ebp - 0x80], 0x80
jmp 0x40ebcd
cmp dword [ebp - 0xac], 2
jne 0x40eb63
mov eax, dword [ebp - 0x7c]
or eax, 0x40000
or eax, 0x400000
or eax, 0x800000
mov dword [ebp - 0x7c], eax
or dword [ebp - 0x80], 0x100
jmp 0x40ebcd
cmp dword [ebp - 0xac], 3
jne 0x40eb8e
mov eax, dword [ebp - 0x7c]
or eax, 0x800000
or eax, 0x400000
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp - 0x80]
or eax, 0x100
or eax, 0x200
mov dword [ebp - 0x80], eax
jmp 0x40ebcd
cmp dword [ebp - 0xac], 4
jne 0x40ebb0
mov eax, dword [ebp - 0x7c]
or eax, 0x800000
or eax, 0x400000
mov dword [ebp - 0x7c], eax
or dword [ebp - 0x80], 0x100
jmp 0x40ebcd
cmp dword [ebp - 0xac], 5
jne 0x40ebcd
mov eax, dword [ebp - 0x7c]
or eax, 0x800000
or eax, 0x400000
mov dword [ebp - 0x7c], eax
or dword [ebp - 0x80], 1
push dword [ebp + 8]
call fcn.0040dbe0
mov dword [ebp - 0xac], eax
cmp dword [ebp - 0xac], 1
jne 0x40ec03
push dword [ebp + 0xc]
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp + 8]
call fcn.0040e6a0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
jmp 0x40ec28
cmp dword [ebp - 0xac], 2
jne 0x40ec28
push 0
push dword [ebp - 0x64]
push dword [ebp - 0x68]
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp + 8]
call fcn.0040e6a0
mov dword [ebp - 0x78], eax
mov dword [ebp - 0x74], edx
push dword [ebp - 0x80]
push dword [ebp - 0x7c]
push dword [ebp - 0x60]
push dword [ebp - 0x5c]
push dword [ebp - 0x74]
push dword [ebp - 0x78]
push 0x404c50
push dword [ebp + 8]
lea eax, [ebp - 0x90]
push eax
call fcn.0040d600
push eax
call fcn.00410ea0
push eax
push dword [ebp + 0xc]
mov eax, dword [ebp + 8]
push dword [eax + 0x310]
call fcn.00415660
push eax
push dword [ebp + 8]
call fcn.004078a0
lea eax, [ebp - 0x90]
push eax
call fcn.00410dc0
add esp, 4
mov eax, dword [ebp + 8]
lea edx, [eax + 0xe0]
push edx
push dword [ebp + 8]
call fcn.0040e290
push dword [ebp + 8]
call fcn.00406c20
test al, al
je 0x40ecac
push 1
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.SHELL32.dll_DragAcceptFiles
mov dword [ebp - 0x94], 0
push dword [ebp + 8]
lea eax, [0x4334e4]
push eax
call fcn.004021e0
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x40ece5
push dword [ebp + 8]
call fcn.00407870
mov edx, dword [ebp - 0x94]
mov dword [edx + 4], eax
mov dword [ebp - 0x98], 0
mov eax, dword [ebp + 8]
lea edx, [eax + 0x2ec]
push edx
call fcn.00402090
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x40ed6d
mov eax, dword [ebp - 0x94]
mov edx, dword [eax + 8]
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x4c], 0
je 0x40ed4a
push dword [ebp + 8]
call fcn.00407870
push eax
push dword [ebp - 0x4c]
mov eax, dword [ebp - 0x4c]
mov edx, dword [eax]
call dword [edx]
push dword [ebp - 0x4c]
call fcn.00406fd0
test al, al
je 0x40ed4a
cmp dword [ebp - 0x50], 0
jne 0x40ed4a
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
inc dword [ebp - 0x98]
push dword [ebp - 0x98]
mov eax, dword [ebp + 8]
lea edx, [eax + 0x2ec]
push edx
call fcn.004020e0
mov dword [ebp - 0x94], eax
jmp 0x40ed04
push dword [ebp + 8]
lea eax, [ebp - 0xa4]
push eax
call fcn.0040e3b0
lea eax, [ebp - 0xa4]
push eax
call fcn.00401af0
test al, al
jne 0x40edd2
push dword [ebp + 8]
lea eax, [ebp - 0xc0]
push eax
call fcn.0040e3b0
lea eax, [ebp - 0xc0]
push eax
call fcn.00401aa0
push eax
push dword [ebp + 8]
lea eax, [ebp - 0xb4]
push eax
call fcn.0040e3b0
lea eax, [ebp - 0xb4]
push eax
call fcn.00401a60
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x310]
call fcn.00415820
push dword [ebp + 8]
call fcn.0040df80
test al, al
je 0x40ee16
mov eax, dword [ebp + 8]
cmp byte [eax + 0x4f], 0
je 0x40ee16
push dword [ebp + 8]
call fcn.0040d6b0
cmp eax, 1
jne 0x40ee06
push 3
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_ShowWindow
jmp 0x40ee16
push 0xa
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_ShowWindow
mov eax, dword [ebp + 8]
cmp dword [eax + 0x31c], 0
je 0x40ee47
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 8]
mov eax, dword [ebp + 8]
call dword [eax + 0x31c]
cmp byte [ebp - 0x33], 1
jne 0x40ee47
push 0
push dword [ebp + 8]
call fcn.0040e660
jmp 0x40f206
mov eax, dword [ebp + 8]
cmp dword [eax + 0x344], 0
je 0x40ee63
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 8]
mov eax, dword [ebp + 8]
call dword [eax + 0x344]
mov eax, dword [ebp + 8]
cmp byte [eax + 0x4f], 0
je 0x40ee78
mov dword [ebp - 0xa8], 5
jmp 0x40ee82
mov dword [ebp - 0xa8], 0
push dword [ebp - 0xa8]
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_ShowWindow
push dword [ebp + 8]
call fcn.00407870
push eax
call fcn.00413a50
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_IsWindowVisible
test eax, eax
je 0x40eed2
mov eax, dword [ebp + 8]
cmp dword [eax + 0x32c], 0
je 0x40eed2
lea eax, [ebp - 0x44]
push eax
push dword [ebp + 8]
mov eax, dword [ebp + 8]
call dword [eax + 0x32c]
push dword [ebp + 8]
call fcn.0040e860
mov dword [ebp - 0x98], 0
mov eax, dword [ebp + 8]
lea edx, [eax + 0x2ec]
push edx
call fcn.00402090
mov dword [ebp - 0x94], eax
cmp dword [ebp - 0x94], 0
je 0x40ef64
mov eax, dword [ebp - 0x94]
mov edx, dword [eax + 8]
mov dword [ebp - 0x4c], edx
cmp dword [ebp - 0x4c], 0
je 0x40ef41
push dword [ebp - 0x4c]
call fcn.00406f00
test al, al
je 0x40ef26
mov eax, dword [ebp - 0x4c]
mov dword [ebp - 0x50], eax
push dword [ebp - 0x4c]
call fcn.00406920
cmp eax, 0x14
jne 0x40ef41
push dword [ebp - 0x4c]
call fcn.00407870
push eax
call fcn.00413a50
inc dword [ebp - 0x98]
push dword [ebp - 0x98]
mov eax, dword [ebp + 8]
lea edx, [eax + 0x2ec]
push edx
call fcn.004020e0
mov dword [ebp - 0x94], eax
jmp 0x40eef9
cmp dword [ebp - 0x50], 0
je 0x40ef78
push dword [ebp - 0x50]
call fcn.00407870
push eax
call sub.USER32.dll_SetFocus
push 0
push 0
push dword [0x43350c]
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_PostMessageW
push dword [ebp + 8]
call fcn.0040dfd0
test al, al
je 0x40f1fa
cmp dword [ebp + 0xc], 0
je 0x40efb0
push 0
push dword [ebp + 0xc]
call sub.USER32.dll_EnableWindow
lea eax, [ebp - 0xc4]
push eax
push edi
mov edi, eax
xor eax, eax
mov ecx, 7
rep stosd dword es:[edi], eax
pop edi
pop eax
push 0
push 0
push 0
lea eax, [ebp - 0xc4]
push eax
call sub.USER32.dll_GetMessageW
test eax, eax
je 0x40f1ec
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_IsWindow
test eax, eax
jne 0x40eff6
jmp 0x40f1ec
mov eax, dword [ebp + 8]
push dword [eax + 0x310]
call fcn.004175a0
test eax, eax
sete dl
shr edx, 1
sbb edx, edx
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp + 8]
push dword [eax + 0x310]
mov ebx, edx
call fcn.004175a0
push eax
push dword [ebp + 8]
call fcn.00407870
push eax
call sub.USER32.dll_TranslateAcceleratorW
test eax, eax
sete al
shr eax, 1
sbb eax, eax
or ebx, eax
je 0x40f1e7
push dword [ebp + 8]
call fcn.00407870
push eax
push 0x4334e0
call fcn.00402dc0
mov dword [ebp - 0xc8], eax
cmp dword [ebp - 0xc8], 0
je 0x40f082
mov eax, dword [ebp - 0xc8]
cmp dword [eax + 0x374], 0
setne bl
shr ebx, 1
sbb ebx, ebx
mov dword [ebp - 0xcc], ebx
jmp 0x40f08c
mov dword [ebp - 0xcc], 0
cmp dword [ebp - 0xcc], 0
je 0x40f0b1
lea ebx, [ebp - 0xc4]
push ebx
mov ebx, dword [ebp - 0xc8]
call dword [ebx + 0x374]
test al, al
je 0x40f0b1
jmp 0x40efc5
lea eax, [ebp - 0xc4]
push eax
push dword [ebp - 0xc4]
push dword [ebp + 8]
call fcn.00407870
push eax
push 0x4334e0
call fcn.00402f50
test al, al
jne 0x40f1e7
mov byte [ebp - 0xd0], 0
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xd4], eax
cmp dword [ebp - 0xd4], 0x100
je 0x40f114
cmp dword [ebp - 0xd4], 0x101
je 0x40f114
cmp dword [ebp - 0xd4], 0x102
jne 0x40f1c6
mov eax, dword [ebp - 0xbc]
mov dword [ebp - 0xd8], eax
cmp dword [ebp - 0xd8], 9
je 0x40f15f
cmp dword [ebp - 0xd8], 0x25
je 0x40f15f
cmp dword [ebp - 0xd8], 0x26
je 0x40f15f
cmp dword [ebp - 0xd8], 0x28
je 0x40f15f
cmp dword [ebp - 0xd8], 0x27
je 0x40f15f
cmp dword [ebp - 0xd8], 0x21
je 0x40f15f
cmp dword [ebp - 0xd8], 0x22
jne 0x40f1c6
mov dword [ebp - 0x98], 0
lea eax, [0x4334e4]
push eax
call fcn.00402090
mov dword [ebp - 0xdc], eax
cmp dword [ebp - 0xdc], 0
je 0x40f1c6
lea eax, [ebp - 0xc4]
push eax
mov eax, dword [ebp - 0xdc]
push dword [eax + 4]
call sub.USER32.dll_IsDialogMessageW
test eax, eax
je 0x40f1a6
mov byte [ebp - 0xd0], 1
jmp 0x40f1c6
inc dword [ebp - 0x98]
push dword [ebp - 0x98]
lea eax, [0x4334e4]
push eax
call fcn.004020e0
mov dword [ebp - 0xdc], eax
jmp 0x40f17b
cmp byte [ebp - 0xd0], 0
jne 0x40f1e7
lea eax, [ebp - 0xc4]
push eax
call sub.USER32.dll_TranslateMessage
lea eax, [ebp - 0xc4]
push eax
call sub.USER32.dll_DispatchMessageW
jmp 0x40efc5
cmp dword [ebp - 0x48], 0
je 0x40f1fa
push dword [ebp - 0x48]
call sub.USER32.dll_SetFocus
mov eax, dword [ebp + 8]
mov ebx, dword [eax + 0x2e8]
mov dword [ebp - 4], ebx
mov eax, dword [ebp - 4]
pop ebx
mov esp, ebp
pop ebp
ret 0x10