Function at 0x404b49
Capabilities:
Check if file exists
Get file attributes
Identify system language via api

Disassembly:
mov eax, dword [0x4212fc]
push ebx
xor ebx, ebx
push esi
mov ecx, dword [eax + 0x84]
push edi
mov dword [0x418288], ecx
mov al, byte [eax + 0x43]
and al, 1
cmp dword [0x421308], ebx
mov byte [0x421318], al
jne 0x404c62
push dword [0x40971c]
mov dword [0x40966c], 3
mov dword [0x409670], ebx
call fcn.00406e6a
test eax, eax
jne 0x404c40
mov eax, dword [0x4212fc]
cmp dword [eax + 0x48], ebx
jl 0x404c40
mov esi, 0x420ae0
push esi
push dword [eax + 0x4c]
call fcn.004041f2
push eax
mov eax, dword [0x4212fc]
push dword [eax + 0x48]
call fcn.004041f2
push eax
mov eax, dword [0x4212fc]
push dword [eax + 0x44]
call fcn.00407240
mov al, byte [0x420ae0]
cmp al, bl
je 0x404c40
cmp al, 0x22
jne 0x404bfa
mov edi, dword [sym.imp.USER32.dll_CharNextA]
push esi
call edi
mov esi, eax
jmp 0x404bf2
cmp cl, 0x22
je 0x404bf8
push eax
call edi
mov cl, byte [eax]
cmp cl, bl
jne 0x404bea
mov byte [eax], bl
push esi
call sub.KERNEL32.dll_lstrlenA
lea eax, [eax + esi - 4]
cmp eax, esi
jbe 0x404c34
push str..exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x404c34
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x404c28
test al, 0x10
jne 0x404c34
push esi
call fcn.00406dff
cmp eax, esi
jb 0x404c34
mov byte [eax], bl
push esi
push dword [0x40971c]
call sub.KERNEL32.dll_lstrcpyA
push dword [0x40971c]
call fcn.00406e6a
test eax, eax
jne 0x404c62
mov eax, dword [0x4212fc]
push dword [eax + 0x74]
push dword [0x40971c]
call fcn.004072a4
mov eax, dword [0x4212fc]
mov edi, dword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov eax, dword [eax]
mov dword [0x418aac], eax
imul eax, eax, 0x98
mov esi, eax
push esi
push 0x40
call edi
push esi
mov dword [0x4212f0], eax
mov dword [0x421314], eax
push eax
mov eax, dword [0x4212fc]
push dword [eax + 4]
call fcn.0040453d
cmp dword [0x421308], ebx
je 0x404caf
mov eax, dword [0x418aac]
lea esi, [eax + eax*2]
shl esi, 2
jmp 0x404cb8
mov esi, dword [0x418aac]
imul esi, esi, 0x3c
push esi
push 0x40
call edi
push esi
mov dword [0x4212e4], eax
mov dword [0x421304], eax
push eax
mov eax, dword [0x4212fc]
push dword [eax + 8]
call fcn.0040453d
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLangID]
movzx eax, ax
push eax
push dword [0x409728]
call fcn.0040730b
call fcn.00404de3
mov eax, dword [0x4212fc]
cmp byte [eax + 0x42], bl
jne 0x404d89
call dword [sym.imp.USER32.dll_GetDesktopWindow]
mov ecx, dword [0x4212fc]
mov dword [0x418a90], eax
mov edx, dword [ecx + 0x10]
cmp edx, 0xffffffff
je 0x404d34
push dword [ecx + 0x18]
push dword [ecx + 0x14]
push edx
push dword [0x41a6b8]
call fcn.00402285
mov ecx, dword [0x4212fc]
mov dword [0x418a90], eax
push ebx
mov dword [0x421b48], eax
push dword [ecx + 0x28]
push dword [0x4212f8]
call fcn.00402567
test eax, eax
je 0x404d54
xor eax, eax
inc eax
jmp 0x404ddf
call fcn.00404de3
push 5
mov dword [0x421b48], ebx
push dword [0x418a90]
call dword [sym.imp.USER32.dll_ShowWindow]
push ebx
push 0x404ebd
push dword [0x418a90]
push 0x69
push dword [0x41a6b8]
call dword [sym.imp.USER32.dll_DialogBoxParamA]
jmp 0x404ddf
push ebx
push dword [eax + 0x28]
push dword [0x4212f8]
call fcn.00402567
test eax, eax
jne 0x404d4c
call fcn.00404de3
push ebx
call fcn.0040684c
test eax, eax
je 0x404dc9
cmp dword [0x4212ec], ebx
jne 0x404d4c
mov eax, dword [0x4212fc]
push ebx
push dword [eax + 0x30]
push dword [0x4212f8]
call fcn.00402567
jmp 0x404d4c
mov eax, dword [0x4212fc]
push ebx
push dword [eax + 0x2c]
push dword [0x4212f8]
call fcn.00402567
xor eax, eax
pop edi
pop esi
pop ebx
ret