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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x10
mov eax, dword [0x40a004]
mov esi, dword [eax]
push 2
call fcn.0040679c
mov ecx, dword [0x40a174]
mov ebx, dword [ecx]
lea edi, [ebx + 0xc000]
test eax, eax
je 0x40422d
call eax
movzx eax, ax
push eax
push edi
call fcn.00407730
jmp 0x404288
mov dword [ebx + 0xc000], 0x780030
mov word [ebx + 0xc004], 0
xor eax, eax
push eax
push 0x4385fc
push eax
push str.Control_PanelDesktopResourceLocale
push 0x80000001
call fcn.004076a9
cmp word [0x4385fc], 0
jne 0x40427d
push 0
push 0x4385fc
push 0x40a5dc
push str..DEFAULTControl_PanelInternational
push 0x80000003
call fcn.004076a9
push 0x4385fc
push edi
call sub.KERNEL32.dll_lstrcatW
call fcn.00406414
mov eax, dword [0x40a6bc]
mov eax, dword [eax]
and eax, 0x20
mov edi, dword [0x40a3b4]
mov dword [edi], eax
mov dword [edi + 0x1c], 0x10000
add ebx, 0xa800
push ebx
call fcn.00406b94
test eax, eax
je 0x4043c6
push ebx
call fcn.00406b94
test eax, eax
jne 0x4042d0
push dword [esi + 0x118]
push ebx
call fcn.004072ff
mov ebx, dword [0x40a16c]
mov eax, dword [ebx]
sub esp, 0x18
movaps xmm0, xmmword [0x40a570]
movups xmmword [esp + 4], xmm0
mov dword [esp], eax
mov dword [esp + 0x14], 0x8040
call dword [sym.imp.USER32.dll_LoadImageW]
mov dword [0x43a5fc], eax
cmp dword [esi + 0x50], 0xffffffff
je 0x40437b
mov dword [0x4385d8], section..text
mov ecx, dword [ebx]
mov dword [0x4385e4], ecx
mov dword [0x4385e8], eax
mov dword [0x4385f8], 0x40a63e
push 0x4385d4
call dword [sym.imp.USER32.dll_RegisterClassW]
test ax, ax
je 0x4044ff
xor esi, esi
mov ebp, esp
push esi
push ebp
push esi
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoW]
mov eax, dword [ebp]
mov ecx, dword [ebp + 4]
mov edx, dword [ebp + 8]
sub edx, eax
mov ebp, dword [ebp + 0xc]
sub ebp, ecx
push esi
push dword [ebx]
push esi
push esi
push ebp
push edx
push ecx
push eax
push 0x80000000
push esi
push 0x40a63e
push 0x80
call dword [sym.imp.USER32.dll_CreateWindowExW]
mov dword [0x43a600], eax
push 0
call fcn.0040318e
mov esi, 2
test eax, eax
jne 0x404501
call fcn.00406414
cmp dword [edi + 0x20], 0
je 0x404469
push 0
call fcn.00404b9c
test eax, eax
je 0x4044f8
cmp dword [0x43a608], 0
jne 0x404501
push 2
call fcn.0040318e
jmp 0x404501
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4042ba
mov ecx, dword [0x40a00c]
mov ecx, dword [ecx + 0x18]
lea eax, [ecx + eax*2]
mov edx, dword [esi + 0x4c]
lea ecx, [ecx + edx*2]
mov ebp, dword [0x40a6c0]
push 0
push ebp
push ecx
push eax
push dword [esi + 0x44]
call fcn.004076a9
movzx eax, word [ebp]
test eax, eax
je 0x4042ba
cmp eax, 0x22
jne 0x40441d
mov ebp, dword [0x40a6c0]
add ebp, 2
push 0x22
push ebp
call fcn.00406d08
mov word [eax], 0
push ebp
call sub.KERNEL32.dll_lstrlenW
lea eax, [eax*2 - 8]
add eax, ebp
cmp eax, ebp
jbe 0x404457
push str..exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiW]
test eax, eax
jne 0x404457
push ebp
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x404451
and eax, 0x10
jne 0x404457
push ebp
call fcn.00406c4b
push ebp
call fcn.00406cd9
push eax
push ebx
call fcn.00406c2f
jmp 0x4042ba
push 5
push dword [0x43a600]
call dword [sym.imp.USER32.dll_ShowWindow]
push str.RichEd20
call fcn.00407816
test eax, eax
jne 0x40448f
push str.RichEd32
call fcn.00407816
push 0x4385d4
push 0x40a658
push 0
call dword [sym.imp.USER32.dll_GetClassInfoW]
test eax, eax
jne 0x4044c9
mov esi, 0x4385d4
push esi
push str.RichEdit
push 0
call dword [sym.imp.USER32.dll_GetClassInfoW]
mov dword [0x4385f8], 0x40a658
push esi
call dword [sym.imp.USER32.dll_RegisterClassW]
mov eax, dword [0x43a604]
add eax, 0x69
movzx eax, ax
xor ecx, ecx
push ecx
push 0x40450b
push ecx
push eax
push dword [ebx]
call dword [sym.imp.USER32.dll_DialogBoxParamW]
mov esi, eax
push 5
call fcn.0040318e
push 1
call fcn.00404124
jmp 0x404501
push 1
call fcn.0040318e
xor esi, esi
mov eax, esi
add esp, 0x10
pop esi
pop edi
pop ebx
pop ebp
ret