Function at 0x405ac0
Capabilities:
Check if file exists
Get keyboard layout
Hide graphical window

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
push str.commdlg_FindReplace
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x41ff20], eax
cmp dword [0x41ff20], 0
jne 0x405ae9
xor eax, eax
jmp 0x406163
push str.commdlg_help
call dword [sym.imp.USER32.dll_RegisterWindowMessageW]
mov dword [0x41ffa0], eax
cmp dword [0x41ffa0], 0
jne 0x405b09
xor eax, eax
jmp 0x406163
push 0
call dword [sym.imp.USER32.dll_GetDC]
mov dword [ebp - 8], eax
cmp dword [ebp - 8], 0
jne 0x405b21
xor eax, eax
jmp 0x406163
mov eax, dword [ebp + 8]
push eax
call fcn.00404d10
add esp, 4
test eax, eax
jne 0x405b38
xor eax, eax
jmp 0x406163
call fcn.004049b0
push 0x29
call dword [sym.imp.USER32.dll_GetSystemMetrics]
neg eax
sbb eax, eax
add eax, 0x7f01
push eax
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [0x41fa00], eax
push 0x7f02
push 0
call dword [sym.imp.USER32.dll_LoadCursorW]
mov dword [0x41fb3c], eax
push str.MainAcc
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.USER32.dll_LoadAcceleratorsW]
mov dword [0x41fe00], eax
cmp dword [0x41fb3c], 0
je 0x405b94
cmp dword [0x41fe00], 0
jne 0x405b9b
xor eax, eax
jmp 0x406163
cmp dword [ebp + 0xc], 0
jne 0x405bb8
mov edx, dword [ebp + 8]
push edx
call fcn.004059f0
add esp, 4
test eax, eax
jne 0x405bb8
xor eax, eax
jmp 0x406163
mov eax, dword [ebp + 8]
mov dword [0x41ff94], eax
mov dword [0x41ff40], 0x54
mov ecx, dword [0x41efb4]
mov dword [0x41ff44], ecx
mov dword [0x41ff48], 0
mov dword [0x41ff4c], 0
mov edx, dword [ebp + 8]
mov dword [0x41ff7c], edx
call fcn.00407fe0
call fcn.00404f50
push 0
mov eax, dword [ebp + 8]
push eax
push 0
push 0
mov ecx, dword [0x41efb0]
push ecx
mov edx, dword [0x41efa8]
push edx
mov eax, dword [0x41efac]
push eax
mov ecx, dword [0x41efa4]
push ecx
push 0xcf0000
push 0x41eff8
push str.Notepad
push 0
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x41efb4], eax
cmp dword [0x41efb4], 0
jne 0x405c4e
xor eax, eax
jmp 0x406163
cmp dword [0x41efa8], 0x80000000
je 0x405cbc
cmp dword [0x41efb0], 0x80000000
je 0x405cbc
push 0x2c
push 0
lea edx, [ebp - 0x34]
push edx
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [ebp - 0x34], 0x2c
mov eax, dword [0x41efa4]
mov dword [ebp - 0x18], eax
mov ecx, dword [0x41efa4]
add ecx, dword [0x41efa8]
mov dword [ebp - 0x10], ecx
mov edx, dword [0x41efac]
mov dword [ebp - 0x14], edx
mov eax, dword [0x41efac]
add eax, dword [0x41efb0]
mov dword [ebp - 0xc], eax
lea ecx, [ebp - 0x34]
push ecx
mov edx, dword [0x41efb4]
push edx
call dword [sym.imp.USER32.dll_SetWindowPlacement]
push 1
mov eax, dword [0x41efb4]
push eax
call dword [sym.imp.SHELL32.dll_DragAcceptFiles]
lea ecx, [ebp - 0x44]
push ecx
mov edx, dword [0x41efb4]
push edx
call dword [sym.imp.USER32.dll_GetClientRect]
push 0
mov eax, dword [ebp + 8]
push eax
push 0xf
mov ecx, dword [0x41efb4]
push ecx
mov edx, dword [ebp - 0x38]
push edx
mov eax, dword [ebp - 0x3c]
push eax
push 0
push 0
mov ecx, dword [0x41efc8]
neg ecx
sbb ecx, ecx
and ecx, 0xfff00000
add ecx, 0x50300104
push ecx
push 0x41effc
push 0x40edec
push 0x200
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x41efb8], eax
cmp dword [0x41efb8], 0
jne 0x405d37
xor eax, eax
jmp 0x406163
push 0
mov edx, dword [0x41efc8]
push edx
push 0xc8
mov eax, dword [0x41efb8]
push eax
call dword [sym.imp.USER32.dll_SendMessageW]
push 0x2d0
push 0x5a
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.GDI32.dll_GetDeviceCaps]
push eax
mov edx, dword [0x40ee3c]
push edx
call dword [sym.imp.KERNEL32.dll_MulDiv]
neg eax
mov dword [0x41fae0], eax
push 0x41fae0
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [0x41fac4], eax
mov eax, dword [0x41fac4]
push eax
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.GDI32.dll_SelectObject]
mov dword [ebp - 0x48], eax
lea edx, [ebp - 0x88]
push edx
push 0x20
mov eax, dword [ebp - 8]
push eax
call dword [sym.imp.GDI32.dll_GetTextFaceW]
mov ecx, dword [ebp - 0x48]
push ecx
mov edx, dword [ebp - 8]
push edx
call dword [sym.imp.GDI32.dll_SelectObject]
push 0x41fafc
lea eax, [ebp - 0x88]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
je 0x405e07
push 0x41fae0
push 0x4049c0
push 0x41fafc
mov ecx, dword [ebp - 8]
push ecx
call dword [sym.imp.GDI32.dll_EnumFontsW]
mov edx, dword [0x41fac4]
push edx
call dword [sym.imp.GDI32.dll_DeleteObject]
push 0x41fae0
call dword [sym.imp.GDI32.dll_CreateFontIndirectW]
mov dword [0x41fac4], eax
push 0
mov eax, dword [0x41fac4]
push eax
push 0x30
mov ecx, dword [0x41efb8]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp - 8]
push edx
push 0
call dword [sym.imp.USER32.dll_ReleaseDC]
xor eax, eax
mov word [0x420020], ax
push 2
push 0x42
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [0x41fd4c], eax
push 0
push 0
push 0xc5
mov ecx, dword [0x41efb8]
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov edx, dword [0x40ee68]
push edx
call fcn.00407b80
add esp, 4
mov eax, dword [ebp + 0x14]
push eax
mov ecx, dword [0x41efb4]
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov edx, dword [0x41fa00]
push edx
call dword [sym.imp.USER32.dll_SetCursor]
mov eax, dword [ebp + 0x10]
push eax
call fcn.00404a90
add esp, 4
mov dword [ebp + 0x10], eax
mov dword [0x41efa0], 0xffffffff
mov ecx, dword [ebp + 0x10]
push ecx
push 0x40edf8
call fcn.00404b80
add esp, 8
test eax, eax
jne 0x405ebe
mov dword [0x41efa0], 0
jmp 0x405edd
mov edx, dword [ebp + 0x10]
push edx
push 0x40ee00
call fcn.00404b80
add esp, 8
test eax, eax
jne 0x405edd
mov dword [0x41efa0], 1
cmp dword [0x41efa0], 0xffffffff
je 0x405ef8
mov eax, dword [ebp + 0x10]
add eax, 4
push eax
call fcn.00404a90
add esp, 4
mov dword [ebp + 0x10], eax
mov ecx, dword [ebp + 0x10]
push ecx
call fcn.004057e0
add esp, 4
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0
je 0x405f1f
cmp dword [ebp - 4], 2
jne 0x405f1a
xor eax, eax
jmp 0x406163
jmp 0x40605e
mov edx, dword [ebp + 0x14]
push edx
mov eax, dword [ebp + 0x10]
push eax
call fcn.00405540
add esp, 8
test eax, eax
je 0x405f55
push 0
push 0
push 0x10
mov ecx, dword [0x41efb4]
push ecx
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
jmp 0x406163
mov edx, dword [ebp + 0x10]
movzx eax, word [edx]
test eax, eax
je 0x40605e
mov ecx, dword [ebp + 0x10]
push ecx
push 0x41fb40
call fcn.00404e30
add esp, 8
push 0
push 0x80
push 3
push 0
push 3
push 0x80000000
push 0x41fb40
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x41ff9c], eax
cmp dword [0x41ff9c], 0xffffffff
jne 0x406041
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
jne 0x406014
push 0x33
push 0x41fb40
mov edx, dword [0x40ee5c]
push edx
mov eax, dword [0x40ee7c]
push eax
mov ecx, dword [0x41efb4]
push ecx
call fcn.004080e0
add esp, 0x14
mov dword [ebp - 0x8c], eax
cmp dword [ebp - 0x8c], 2
jne 0x405fe7
xor eax, eax
jmp 0x406163
cmp dword [ebp - 0x8c], 6
jne 0x406012
push 0
push 0x80
push 4
push 0
push 3
push 0xc0000000
push 0x41fb40
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [0x41ff9c], eax
jmp 0x406041
push 0x41fb40
call fcn.004063a0
add esp, 4
mov edx, dword [0x40ee68]
push edx
call fcn.00407b80
add esp, 4
mov eax, dword [0x40ee68]
push eax
push 0x41fb40
call dword [sym.imp.KERNEL32.dll_lstrcpyW]
cmp dword [0x41ff9c], 0xffffffff
je 0x40605e
mov ecx, dword [0x41efa0]
push ecx
push 0x41fb40
call fcn.004068e0
add esp, 8
push 0x41fa20
call fcn.004049e0
add esp, 4
push 0x41fd60
call fcn.004049e0
add esp, 4
push 0x58
push 0
push 0x41ffc0
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [0x41ffc0], 0x58
mov edx, dword [0x41efb4]
mov dword [0x41ffc4], edx
mov dword [0x41ffe0], 0x104
mov eax, dword [ebp + 8]
mov dword [0x41ffc8], eax
push 0x28
push 0
push 0x420120
call sub.msvcrt.dll_memset
add esp, 0xc
mov dword [0x420120], 0x28
mov ecx, dword [0x41efb4]
mov dword [0x420124], ecx
lea edx, [ebp - 0x94]
push edx
lea eax, [ebp - 0x90]
push eax
push 0xb0
mov ecx, dword [0x41efb8]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov edx, dword [ebp - 0x94]
push edx
mov eax, dword [ebp - 0x90]
push eax
push 0xb1
mov ecx, dword [0x41efb8]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
push 0
push 0xb7
mov edx, dword [0x41efb8]
push edx
call dword [sym.imp.USER32.dll_SendMessageW]
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayout]
and eax, 0xffff
movzx eax, ax
and eax, 0x3ff
cmp eax, 0x11
jne 0x40615e
push 1
push 1
push 0xd8
mov ecx, dword [0x41efb8]
push ecx
call dword [sym.imp.USER32.dll_SendMessageW]
mov eax, 1
mov esp, ebp
pop ebp
ret