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

Disassembly:
sub esp, 0x14
push esi
push edi
mov edi, dword [0x43d80c]
push 6
call fcn.00407360
test eax, eax
je 0x4068e8
call eax
movzx eax, ax
push eax
push 0x46e000
call fcn.00406f60
jmp 0x40693d
push 0
push 0x42bdd8
push 0
push str.Control_PanelDesktopResourceLocale
push 0x80000001
mov dword [0x46e000], 0x7830
call fcn.00406ed0
cmp byte [0x42bdd8], 0
jne 0x40692e
push 0
push 0x42bdd8
push 0x40abf6
push str..DEFAULTControl_PanelInternational
push 0x80000003
call fcn.00406ed0
push 0x42bdd8
push 0x46e000
call sub.KERNEL32.dll_lstrcatA
call fcn.004049a0
mov ecx, dword [0x43d868]
and ecx, 0x20
push 0x468000
mov dword [0x43d8c0], ecx
mov dword [0x43d8dc], 0x10000
call fcn.00407450
test eax, eax
jne 0x4069fc
mov ecx, dword [edi + 0x48]
test ecx, ecx
je 0x4069fc
mov edx, dword [edi + 0x4c]
push eax
mov eax, dword [0x43d840]
push 0x4353a0
add edx, eax
push edx
add ecx, eax
mov eax, dword [edi + 0x44]
push ecx
push eax
call fcn.00406ed0
mov al, byte [0x4353a0]
test al, al
je 0x4069fc
cmp al, 0x22
mov esi, 0x4353a0
jne 0x4069b7
push 0x22
mov esi, 0x4353a1
push esi
call fcn.00406d00
mov byte [eax], 0
push esi
call sub.KERNEL32.dll_lstrlenA
lea eax, [eax + esi - 4]
cmp eax, esi
jbe 0x4069eb
push str..exe
push eax
call dword [sym.imp.KERNEL32.dll_lstrcmpiA]
test eax, eax
jne 0x4069eb
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4069e5
test al, 0x10
jne 0x4069eb
push esi
call fcn.00407420
push esi
call fcn.004073f0
push eax
push 0x468000
call fcn.00407020
push 0x468000
call fcn.00407450
test eax, eax
jne 0x406a1b
mov ecx, dword [edi + 0x118]
push ecx
push 0x468000
call fcn.004075a0
test byte [0x43d868], 0x10
je 0x406a57
cmp dword [0x43d864], 0
jne 0x406a57
push str.install.log
push 0x468000
push 0x4393a0
call fcn.00407020
push eax
call fcn.004073f0
push eax
call sub.KERNEL32.dll_lstrcatA
mov dword [0x434b88], 1
mov edx, dword [0x43d808]
push 0x8040
push 0
push 0
push 1
push 0x67
push edx
call dword [sym.imp.USER32.dll_LoadImageA]
mov dword [0x4397d0], eax
cmp dword [edi + 0x50], 0xffffffff
mov edi, dword [sym.imp.USER32.dll_RegisterClassA]
je 0x406b15
mov ecx, dword [0x43d808]
lea edx, [esp + 8]
push 0x4397a0
mov dword [esp + 0xc], 0x624e5f
mov dword [0x4397a4], 0x401000
mov dword [0x4397b0], ecx
mov dword [0x4397b4], eax
mov dword [0x4397c4], edx
call edi
test ax, ax
je 0x406bfb
push 0
lea eax, [esp + 0x10]
push eax
push 0
push 0x30
call dword [sym.imp.USER32.dll_SystemParametersInfoA]
mov ecx, dword [0x43d808]
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push 0
push ecx
mov ecx, dword [esp + 0x14]
push 0
push 0
sub edx, eax
push edx
mov edx, dword [esp + 0x28]
sub edx, ecx
push edx
push eax
push ecx
push 0x80000000
push 0
lea eax, [esp + 0x30]
push eax
push 0x80
call dword [sym.imp.USER32.dll_CreateWindowExA]
mov dword [0x42bdd4], eax
push 0
call fcn.004015e0
test eax, eax
jne 0x406be9
call fcn.004049a0
cmp dword [0x43d8e0], 0
jne 0x406bce
mov ecx, dword [0x42bdd4]
push 5
push ecx
call dword [sym.imp.USER32.dll_ShowWindow]
mov esi, dword [sym.imp.KERNEL32.dll_LoadLibraryA]
push str.RichEd20
call esi
test eax, eax
jne 0x406b5d
push str.RichEd32
call esi
mov esi, dword [sym.imp.USER32.dll_GetClassInfoA]
push 0x4397a0
push str.RichEdit20A
push 0
call esi
test eax, eax
jne 0x406b93
push 0x4397a0
push str.RichEdit
push eax
call esi
push 0x4397a0
mov dword [0x4397c4], 0x40ab84
call edi
mov edx, dword [0x4397dc]
mov ecx, dword [0x43d808]
push 0
push 0x4062c0
add edx, 0x69
movzx eax, dx
push 0
push eax
push ecx
call dword [sym.imp.USER32.dll_DialogBoxParamA]
push 5
mov esi, eax
call fcn.004015e0
push 1
call fcn.00404730
pop edi
mov eax, esi
pop esi
add esp, 0x14
ret
push 0
call fcn.00405da0
test eax, eax
je 0x406bf4
cmp dword [0x4397d4], 0
jne 0x406be9
push 2
call fcn.004015e0
pop edi
mov eax, 2
pop esi
add esp, 0x14
ret
push 1
call fcn.004015e0
pop edi
xor eax, eax
pop esi
add esp, 0x14
ret