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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10d60
call fcn.00457ac0
mov eax, dword [0x4694f8]
mov ecx, dword [0x466b78]
push ebx
push 1
xor ebx, ebx
push ebx
push 0xffffffffffffffff
push 0x45af3c
mov dword [ebp - 4], eax
call fcn.0040187e
cmp dword [0x4663d8], 4
jl 0x4240c7
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.0043bc63
add esp, 0x18
xor eax, eax
jmp 0x42451b
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 0x4241c5
cmp byte [eax], bl
je 0x4241c5
push 0x104
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.004392af
push 3
lea eax, [ebp - 0x160]
push 0x45d7d4
push eax
call fcn.00457ce0
add esp, 0x18
neg eax
sbb al, al
inc al
mov byte [ebp + 0xf], al
lea eax, [ebp - 0x160]
je 0x424163
push 0x7d
push eax
call fcn.00457650
cmp eax, ebx
pop ecx
pop ecx
je 0x4241cb
cmp byte [eax + 1], bl
je 0x4241cb
lea eax, [ebp - 0x160]
push eax
call fcn.00457520
pop ecx
lea ecx, [ebp - 0x160]
dec ecx
cmp byte [eax + ecx], 0x5c
jne 0x424173
jmp 0x4241cb
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x424173
test al, 0x10
jne 0x4241cb
lea eax, [ebp - 0x160]
push 0x5c
push eax
call fcn.00457cb0
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x4241a5
push 0xffff
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x10d60]
push eax
call fcn.004392af
add esp, 0xc
mov byte [esi], bl
jmp 0x4241cb
cmp byte [ebp + 0xf], bl
jne 0x4241cb
push 0xffff
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x10d60]
push eax
call fcn.004392af
add esp, 0xc
mov byte [ebp - 0x160], bl
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x4241ee
cmp byte [eax], bl
je 0x4241ee
mov esi, 0x400
push esi
push eax
lea eax, [ebp - 0xd60]
push eax
call fcn.004392af
add esp, 0xc
jmp 0x42420e
push dword [0x46717c]
mov esi, 0x400
push str.Select_File____s
lea eax, [ebp - 0xd60]
push esi
push eax
call fcn.0040a513
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 0x4242e5
push 0x28
push edi
call fcn.00457650
cmp eax, ebx
pop ecx
pop ecx
push esi
je 0x424286
inc eax
push eax
lea eax, [ebp - 0x560]
push eax
call fcn.004392af
lea eax, [ebp - 0x560]
push 0x29
push eax
call fcn.00457cb0
add esp, 0x14
cmp eax, ebx
je 0x42427e
mov byte [eax], bl
jmp 0x424296
mov byte [ebp - 0x560], bl
jmp 0x424296
lea eax, [ebp - 0x560]
push edi
push eax
call fcn.004392af
add esp, 0xc
cmp byte [ebp - 0x560], bl
je 0x4242df
push ebx
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x4595d8
lea eax, [ebp - 0x560]
push 0x45d7bc
push eax
call fcn.0041ce56
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.0040a513
add esp, 0x44
jmp 0x4242e5
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 [0x4673a1]
neg al
sbb eax, eax
and eax, 0xc
add eax, 0x4c
mov dword [ebp - 0x5c], eax
mov eax, dword [0x464108]
mov eax, dword [eax + 0x50]
cmp eax, 0x63
jae 0x424320
mov eax, dword [eax*4 + 0x466980]
cmp eax, ebx
je 0x424320
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
jmp 0x424323
mov dword [ebp - 0x58], ebx
cmp byte [ebp - 0x960], bl
lea eax, [ebp - 0xd60]
mov dword [ebp - 0x2c], eax
je 0x42433f
lea eax, [ebp - 0x960]
mov dword [ebp - 0x50], eax
jmp 0x424346
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.0044234f
cmp eax, 0x4d
pop ecx
je 0x42438e
cmp eax, 0x53
jne 0x424393
mov byte [ebp + 0x13], 1
jmp 0x424392
mov byte [ebp + 0xf], 1
inc esi
push esi
call fcn.0040137d
test al, 0x20
pop ecx
mov dword [ebp - 0x28], 0x80004
je 0x4243ac
mov dword [ebp - 0x28], 0x180004
test al, 0x10
je 0x4243b4
or dword [ebp - 0x28], 2
test al, 8
mov esi, 0x2000
je 0x4243c0
or dword [ebp - 0x28], esi
cmp byte [ebp + 0xf], bl
mov edi, 0x200
jne 0x4243ce
test al, 4
je 0x4243d1
or dword [ebp - 0x28], edi
test al, 2
je 0x4243d9
or byte [ebp - 0x27], 8
test al, 1
je 0x4243e1
or byte [ebp - 0x27], 0x10
call fcn.0043adad
push ebx
push 0x403
push 0x44
push dword [0x466254]
mov byte [ebp + 0x17], al
call dword [sym.imp.USER32.dll_PostMessageA]
inc dword [0x4663d8]
cmp byte [ebp + 0x13], bl
jne 0x42441f
test byte [ebp - 0x28], 2
je 0x424413
test dword [ebp - 0x28], esi
je 0x42441f
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.comdlg32.dll_GetOpenFileNameA]
jmp 0x424429
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.comdlg32.dll_GetSaveFileNameA]
dec dword [0x4663d8]
mov ecx, dword [0x464108]
mov esi, eax
mov al, byte [ebp + 0x17]
mov byte [ecx + 0xc2], al
mov ecx, dword [0x464108]
cmp al, bl
sete al
mov byte [ecx + 0xc0], al
cmp byte [0x466b80], bl
je 0x424464
push 0x466b80
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
cmp esi, ebx
push 1
push ebx
push 0xffffffffffffffff
jne 0x424473
push ebx
jmp 0x424511
mov ecx, dword [0x466b78]
push 0x459724
call fcn.0040187e
test dword [ebp - 0x28], edi
je 0x424505
cmp byte [ebp + 0xf], bl
lea eax, [ebp - 0x10d60]
je 0x4244f9
push eax
call fcn.00457520
cmp byte [ebp + eax - 0x10d5f], bl
pop ecx
lea eax, [ebp - 0x10d60]
jne 0x4244ea
push 0x5c
push eax
call fcn.00457cb0
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x424505
lea ecx, [ebp - 0x10d60]
sub eax, ecx
cmp eax, 2
mov byte [esi], 0xa
jne 0x424505
cmp byte [esi - 1], 0x3a
jne 0x424505
push esi
call fcn.00457520
inc eax
push eax
lea eax, [esi + 1]
push esi
push eax
call fcn.00457710
add esp, 0x10
mov byte [esi], 0x5c
jmp 0x424505
inc eax
cmp byte [eax], bl
jne 0x4244e9
cmp byte [eax + 1], bl
je 0x424505
mov byte [eax], 0xa
jmp 0x4244ea
inc eax
cmp byte [eax], bl
jne 0x4244f8
cmp byte [eax + 1], bl
mov byte [eax], 0xa
jne 0x4244f9
push 1
push ebx
push 0xffffffffffffffff
lea eax, [ebp - 0x10d60]
push eax
mov ecx, dword [ebp - 4]
call fcn.0040187e
pop edi
pop esi
pop ebx
leave
ret 0x10