Function at 0x4243c2
Capabilities:
Check if file exists
Get file attributes
Set current directory

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10d60
call fcn.00458250
mov eax, dword [0x46a4f8]
mov ecx, dword [0x467b78]
push ebx
push 1
xor ebx, ebx
push ebx
push 0xffffffffffffffff
push 0x45bf4c
mov dword [ebp - 4], eax
call fcn.0040184e
cmp dword [0x4673d8], 4
jl 0x42441a
push ebx
fldz
push ecx
push ecx
fstp qword [esp]
push ebx
push 0x10000
push str.The_maximum_number_of_File_Dialogs_has_been_reached.__The_current_thread_will_exit.
call fcn.0043c205
add esp, 0x18
xor eax, eax
jmp 0x42486e
push esi
push edi
xor eax, eax
mov byte [ebp - 0x10d60], bl
mov ecx, 0x3fff
lea edi, [ebp - 0x10d5f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
mov eax, dword [ebp + 0xc]
cmp eax, ebx
je 0x424518
cmp byte [eax], bl
je 0x424518
push 0x104
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.00439851
push 3
lea eax, [ebp - 0x160]
push 0x45e7f4
push eax
call fcn.00458470
add esp, 0x18
neg eax
sbb al, al
inc al
mov byte [ebp + 0xf], al
lea eax, [ebp - 0x160]
je 0x4244b6
push 0x7d
push eax
call fcn.00457de0
cmp eax, ebx
pop ecx
pop ecx
je 0x42451e
cmp byte [eax + 1], bl
je 0x42451e
lea eax, [ebp - 0x160]
push eax
call fcn.00457cb0
pop ecx
lea ecx, [ebp - 0x160]
dec ecx
cmp byte [eax + ecx], 0x5c
jne 0x4244c6
jmp 0x42451e
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4244c6
test al, 0x10
jne 0x42451e
lea eax, [ebp - 0x160]
push 0x5c
push eax
call fcn.00458440
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x4244f8
push 0xffff
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x10d60]
push eax
call fcn.00439851
add esp, 0xc
mov byte [esi], bl
jmp 0x42451e
cmp byte [ebp + 0xf], bl
jne 0x42451e
push 0xffff
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x10d60]
push eax
call fcn.00439851
add esp, 0xc
mov byte [ebp - 0x160], bl
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x424541
cmp byte [eax], bl
je 0x424541
mov esi, 0x400
push esi
push eax
lea eax, [ebp - 0xd60]
push eax
call fcn.00439851
add esp, 0xc
jmp 0x424561
push dword [0x46817c]
mov esi, 0x400
push str.Select_File____s
lea eax, [ebp - 0xd60]
push esi
push eax
call fcn.0040a6d3
add esp, 0x10
xor eax, eax
mov edx, 0xff
mov byte [ebp - 0x960], bl
mov ecx, edx
lea edi, [ebp - 0x95f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
xor eax, eax
mov byte [ebp - 0x560], bl
mov ecx, edx
lea edi, [ebp - 0x55f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [ebp + 0x14]
cmp byte [edi], bl
je 0x424638
push 0x28
push edi
call fcn.00457de0
cmp eax, ebx
pop ecx
pop ecx
push esi
je 0x4245d9
inc eax
push eax
lea eax, [ebp - 0x560]
push eax
call fcn.00439851
lea eax, [ebp - 0x560]
push 0x29
push eax
call fcn.00458440
add esp, 0x14
cmp eax, ebx
je 0x4245d1
mov byte [eax], bl
jmp 0x4245e9
mov byte [ebp - 0x560], bl
jmp 0x4245e9
lea eax, [ebp - 0x560]
push edi
push eax
call fcn.00439851
add esp, 0xc
cmp byte [ebp - 0x560], bl
je 0x424632
push ebx
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x45a5d8
lea eax, [ebp - 0x560]
push 0x45e7dc
push eax
call fcn.0041d1a8
push ebx
push ebx
push ebx
lea eax, [ebp - 0x560]
push eax
push ebx
push edi
push str._s_c_s_cAll_Files__.__c._c
lea eax, [ebp - 0x960]
push esi
push eax
call fcn.0040a6d3
add esp, 0x44
jmp 0x424638
mov byte [ebp - 0x960], bl
xor eax, eax
push 0x15
pop ecx
lea edi, [ebp - 0x58]
rep stosd dword es:[edi], eax
mov al, byte [0x4683a2]
neg al
sbb eax, eax
and eax, 0xc
add eax, 0x4c
mov dword [ebp - 0x5c], eax
mov eax, dword [0x465108]
mov eax, dword [eax + 0x50]
cmp eax, 0x63
jae 0x424673
mov eax, dword [eax*4 + 0x467980]
cmp eax, ebx
je 0x424673
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
jmp 0x424676
mov dword [ebp - 0x58], ebx
cmp byte [ebp - 0x960], bl
lea eax, [ebp - 0xd60]
mov dword [ebp - 0x2c], eax
je 0x424692
lea eax, [ebp - 0x960]
mov dword [ebp - 0x50], eax
jmp 0x424699
mov dword [ebp - 0x50], str.All_Files__._
mov esi, dword [ebp + 8]
lea eax, [ebp - 0x10d60]
mov dword [ebp - 0x40], eax
mov al, byte [ebp - 0x160]
neg al
lea ecx, [ebp - 0x160]
mov dword [ebp - 0x3c], 0xfffe
mov byte [ebp + 0x13], bl
mov byte [ebp + 0xf], bl
sbb eax, eax
and eax, ecx
mov dword [ebp - 0x30], eax
movsx eax, byte [esi]
push eax
call fcn.00442990
cmp eax, 0x4d
pop ecx
je 0x4246e1
cmp eax, 0x53
jne 0x4246e6
mov byte [ebp + 0x13], 1
jmp 0x4246e5
mov byte [ebp + 0xf], 1
inc esi
push esi
call fcn.0040137d
test al, 0x20
pop ecx
mov dword [ebp - 0x28], 0x80004
je 0x4246ff
mov dword [ebp - 0x28], 0x180004
test al, 0x10
je 0x424707
or dword [ebp - 0x28], 2
test al, 8
mov esi, 0x2000
je 0x424713
or dword [ebp - 0x28], esi
cmp byte [ebp + 0xf], bl
mov edi, 0x200
jne 0x424721
test al, 4
je 0x424724
or dword [ebp - 0x28], edi
test al, 2
je 0x42472c
or byte [ebp - 0x27], 8
test al, 1
je 0x424734
or byte [ebp - 0x27], 0x10
call fcn.0043b34f
push ebx
push 0x403
push 0x44
push dword [0x467254]
mov byte [ebp + 0x17], al
call dword [sym.imp.USER32.dll_PostMessageA]
inc dword [0x4673d8]
cmp byte [ebp + 0x13], bl
jne 0x424772
test byte [ebp - 0x28], 2
je 0x424766
test dword [ebp - 0x28], esi
je 0x424772
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.comdlg32.dll_GetOpenFileNameA]
jmp 0x42477c
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.comdlg32.dll_GetSaveFileNameA]
dec dword [0x4673d8]
mov ecx, dword [0x465108]
mov esi, eax
mov al, byte [ebp + 0x17]
mov byte [ecx + 0xc6], al
mov ecx, dword [0x465108]
cmp al, bl
sete al
mov byte [ecx + 0xc4], al
cmp byte [0x467b80], bl
je 0x4247b7
push 0x467b80
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp esi, ebx
push 1
push ebx
push 0xffffffffffffffff
jne 0x4247c6
push ebx
jmp 0x424864
mov ecx, dword [0x467b78]
push 0x45a734
call fcn.0040184e
test dword [ebp - 0x28], edi
je 0x424858
cmp byte [ebp + 0xf], bl
lea eax, [ebp - 0x10d60]
je 0x42484c
push eax
call fcn.00457cb0
cmp byte [ebp + eax - 0x10d5f], bl
pop ecx
lea eax, [ebp - 0x10d60]
jne 0x42483d
push 0x5c
push eax
call fcn.00458440
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x424858
lea ecx, [ebp - 0x10d60]
sub eax, ecx
cmp eax, 2
mov byte [esi], 0xa
jne 0x424858
cmp byte [esi - 1], 0x3a
jne 0x424858
push esi
call fcn.00457cb0
inc eax
push eax
lea eax, [esi + 1]
push esi
push eax
call fcn.00457ea0
add esp, 0x10
mov byte [esi], 0x5c
jmp 0x424858
inc eax
cmp byte [eax], bl
jne 0x42483c
cmp byte [eax + 1], bl
je 0x424858
mov byte [eax], 0xa
jmp 0x42483d
inc eax
cmp byte [eax], bl
jne 0x42484b
cmp byte [eax + 1], bl
mov byte [eax], 0xa
jne 0x42484c
push 1
push ebx
push 0xffffffffffffffff
lea eax, [ebp - 0x10d60]
push eax
mov ecx, dword [ebp - 4]
call fcn.0040184e
pop edi
pop esi
pop ebx
leave
ret 0x10