Function at 0x405445
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push esi
push ebx
sub esp, 0x14
mov esi, dword [0x424ca0]
push 6
call fcn.00406304
test eax, eax
je 0x405470
call eax
movzx eax, ax
push eax
push 0x42e000
call fcn.00405e69
jmp 0x4054c5
push 0
mov dword [0x42e000], 0x7830
push 0x422218
push 0
push str.Control_PanelDesktopResourceLocale
push 0x80000001
call fcn.00405df6
cmp byte [0x422218], 0
jne 0x4054b6
push 0
push 0x422218
push 0x4093ee
push str..DEFAULTControl_PanelInternational
push 0x80000003
call fcn.00405df6
push 0x422218
push 0x42e000
call fcn.00405fcc
call fcn.00403da4
mov eax, dword [0x424cf0]
and eax, 0x20
push 0x42d400
mov dword [0x424c40], eax
call fcn.0040625c
test eax, eax
jne 0x405576
cmp dword [esi + 0x48], 0
je 0x405576
mov eax, dword [0x424cc8]
push 0
mov edx, eax
push 0x4255e0
add edx, dword [esi + 0x4c]
push edx
add eax, dword [esi + 0x48]
push eax
push dword [esi + 0x44]
call fcn.00405df6
mov al, byte [0x4255e0]
test al, al
je 0x405576
mov ebx, 0x4255e0
cmp al, 0x22
jne 0x405533
mov ebx, 0x4255e1
push 0x22
push ebx
call fcn.00405bd1
mov byte [eax], 0
push ebx
call fcn.00405f3e
lea eax, [ebx + eax - 4]
cmp eax, ebx
jbe 0x405565
push str..exe
push eax
call sub.KERNEL32.dll_lstrcmpiA
test eax, eax
jne 0x405565
push ebx
call sub.KERNEL32.dll_GetFileAttributesA
cmp eax, 0xffffffff
je 0x40555f
test al, 0x10
jne 0x405565
push ebx
call fcn.00405fa1
push ebx
call fcn.00405fd5
push eax
push 0x42d400
call fcn.00405f27
push 0x42d400
call fcn.0040625c
test eax, eax
jne 0x405594
push dword [esi + 0x118]
push 0x42d400
call fcn.00406005
push 0x8040
push 0
push 0
push 1
push 0x67
push dword [0x424d30]
call sub.USER32.dll_LoadImageA
mov dword [0x425580], eax
mov edx, eax
cmp dword [esi + 0x50], 0xffffffff
je 0x405642
mov eax, dword [0x424d30]
lea ebx, [ebp - 0x1c]
mov dword [0x4221fc], edx
mov dword [ebp - 0x1c], 0x624e5f
mov dword [0x4221ec], 0x401000
mov dword [0x4221f8], eax
mov dword [0x42220c], ebx
push 0x4221e8
call sub.USER32.dll_RegisterClassA
xor edx, edx
test ax, ax
je 0x405720
lea eax, [ebp - 0x18]
push 0
push eax
push 0
push 0x30
call sub.USER32.dll_SystemParametersInfoA
mov ecx, dword [ebp - 0x14]
mov eax, dword [ebp - 0xc]
push 0
sub eax, ecx
push dword [0x424d30]
mov edx, dword [ebp - 0x18]
push 0
push 0
push eax
mov eax, dword [ebp - 0x10]
sub eax, edx
push eax
push ecx
push edx
push 0x80000000
push 0
push ebx
push pe_nt_image_headers32
call sub.USER32.dll_CreateWindowExA
mov dword [0x423248], eax
push 0
call fcn.00402fe1
mov edx, 2
test eax, eax
jne 0x405720
call fcn.00403da4
cmp dword [0x424c60], 0
jne 0x4056f5
push 5
push dword [0x423248]
call sub.USER32.dll_ShowWindow
push str.RichEd20
call sub.KERNEL32.dll_LoadLibraryA
test eax, eax
jne 0x40568d
push str.RichEd32
call sub.KERNEL32.dll_LoadLibraryA
push 0x4221e8
push 0x409447
push 0
call sub.USER32.dll_GetClassInfoA
test eax, eax
jne 0x4056c7
push 0x4221e8
push str.RichEdit
push 0
call sub.USER32.dll_GetClassInfoA
mov dword [0x42220c], 0x409447
push 0x4221e8
call sub.USER32.dll_RegisterClassA
mov ax, word [0x4255b0]
push 0
add eax, 0x69
push 0x403ec7
movzx eax, ax
push 0
push eax
push dword [0x424d30]
call sub.USER32.dll_DialogBoxParamA
mov ebx, eax
push 5
call fcn.00402fe1
mov edx, ebx
jmp 0x405720
push 0
call fcn.004053d5
test eax, eax
je 0x405717
cmp dword [0x425540], 0
jne 0x405710
push 2
call fcn.00402fe1
mov edx, 2
jmp 0x405720
push 1
call fcn.00402fe1
xor edx, edx
lea esp, [ebp - 8]
mov eax, edx
pop ebx
pop esi
pop ebp
ret