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

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x10d60
call fcn.004540a0
mov eax, dword [0x466148]
mov ecx, dword [0x463c78]
push ebx
push 1
xor ebx, ebx
push ebx
push 0xffffffffffffffff
push 0x457f24
mov dword [ebp - 4], eax
call fcn.00401525
cmp dword [0x4634d4], 4
jl 0x42400b
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.0043b595
add esp, 0x18
xor eax, eax
jmp 0x42444e
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 0x424109
cmp byte [eax], bl
je 0x424109
push 0x104
push eax
lea eax, [ebp - 0x160]
push eax
call fcn.00438c34
push 3
lea eax, [ebp - 0x160]
push 0x45b124
push eax
call fcn.00454370
add esp, 0x18
neg eax
sbb al, al
inc al
mov byte [ebp + 0xf], al
lea eax, [ebp - 0x160]
je 0x4240a7
push 0x7d
push eax
call fcn.00453c30
cmp eax, ebx
pop ecx
pop ecx
je 0x42410f
cmp byte [eax + 1], bl
je 0x42410f
lea eax, [ebp - 0x160]
push eax
call fcn.00453b00
pop ecx
lea ecx, [ebp - 0x160]
dec ecx
cmp byte [eax + ecx], 0x5c
jne 0x4240b7
jmp 0x42410f
push eax
call dword [sym.imp.KERNEL32.DLL_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x4240b7
test al, 0x10
jne 0x42410f
lea eax, [ebp - 0x160]
push 0x5c
push eax
call fcn.00454340
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x4240e9
push 0xffff
lea eax, [esi + 1]
push eax
lea eax, [ebp - 0x10d60]
push eax
call fcn.00438c34
add esp, 0xc
mov byte [esi], bl
jmp 0x42410f
cmp byte [ebp + 0xf], bl
jne 0x42410f
push 0xffff
lea eax, [ebp - 0x160]
push eax
lea eax, [ebp - 0x10d60]
push eax
call fcn.00438c34
add esp, 0xc
mov byte [ebp - 0x160], bl
mov eax, dword [ebp + 0x10]
cmp eax, ebx
je 0x424132
cmp byte [eax], bl
je 0x424132
mov esi, 0x400
push esi
push eax
lea eax, [ebp - 0xd60]
push eax
call fcn.00438c34
add esp, 0xc
jmp 0x424152
push dword [0x46427c]
mov esi, 0x400
push str.Select_File____s
lea eax, [ebp - 0xd60]
push esi
push eax
call fcn.0040a9c1
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 0x424229
push 0x28
push edi
call fcn.00453c30
cmp eax, ebx
pop ecx
pop ecx
push esi
je 0x4241ca
inc eax
push eax
lea eax, [ebp - 0x560]
push eax
call fcn.00438c34
lea eax, [ebp - 0x560]
push 0x29
push eax
call fcn.00454340
add esp, 0x14
cmp eax, ebx
je 0x4241c2
mov byte [eax], bl
jmp 0x4241da
mov byte [ebp - 0x560], bl
jmp 0x4241da
lea eax, [ebp - 0x560]
push edi
push eax
call fcn.00438c34
add esp, 0xc
cmp byte [ebp - 0x560], bl
je 0x424223
push ebx
push ebx
push 0xffffffffffffffff
push 0xffffffffffffffff
push 1
push 0x4565d8
lea eax, [ebp - 0x560]
push 0x45b10c
push eax
call fcn.0041c523
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.0040a9c1
add esp, 0x44
jmp 0x424229
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 [0x4644a1]
neg al
sbb eax, eax
and eax, 0xc
add eax, 0x4c
mov dword [ebp - 0x5c], eax
mov eax, dword [0x463268]
cmp eax, 0x63
jae 0x424261
mov eax, dword [eax*4 + 0x463a80]
cmp eax, ebx
je 0x424261
mov eax, dword [eax]
mov dword [ebp - 0x58], eax
jmp 0x424264
mov dword [ebp - 0x58], ebx
cmp byte [ebp - 0x960], bl
lea eax, [ebp - 0xd60]
mov dword [ebp - 0x2c], eax
je 0x424280
lea eax, [ebp - 0x960]
mov dword [ebp - 0x50], eax
jmp 0x424287
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.00441cd7
cmp eax, 0x4d
pop ecx
je 0x4242cf
cmp eax, 0x53
jne 0x4242d4
mov byte [ebp + 0x13], 1
jmp 0x4242d3
mov byte [ebp + 0xf], 1
inc esi
push esi
call fcn.0040198d
test al, 0x20
pop ecx
mov dword [ebp - 0x28], 0x80004
je 0x4242ed
mov dword [ebp - 0x28], 0x180004
test al, 0x10
je 0x4242f5
or dword [ebp - 0x28], 2
test al, 8
mov esi, 0x2000
je 0x424301
or dword [ebp - 0x28], esi
cmp byte [ebp + 0xf], bl
mov edi, 0x200
jne 0x42430f
test al, 4
je 0x424312
or dword [ebp - 0x28], edi
test al, 2
je 0x42431a
or byte [ebp - 0x27], 8
test al, 1
je 0x424322
or byte [ebp - 0x27], 0x10
call fcn.0043a6c4
push ebx
push 0x403
push 0x44
push dword [0x463360]
mov byte [ebp + 0x17], al
call dword [sym.imp.USER32.dll_PostMessageA]
inc dword [0x4634d4]
cmp byte [ebp + 0x13], bl
jne 0x424360
test byte [ebp - 0x28], 2
je 0x424354
test dword [ebp - 0x28], esi
je 0x424360
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.comdlg32.dll_GetOpenFileNameA]
jmp 0x42436a
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.comdlg32.dll_GetSaveFileNameA]
dec dword [0x4634d4]
mov esi, eax
mov al, byte [ebp + 0x17]
cmp al, bl
mov byte [0x46334e], al
sete al
cmp byte [0x463c80], bl
mov byte [0x46334c], al
je 0x424397
push 0x463c80
call dword [sym.imp.KERNEL32.DLL_SetCurrentDirectoryA]
cmp esi, ebx
push 1
push ebx
push 0xffffffffffffffff
jne 0x4243a6
push ebx
jmp 0x424444
mov ecx, dword [0x463c78]
push 0x45671c
call fcn.00401525
test dword [ebp - 0x28], edi
je 0x424438
cmp byte [ebp + 0xf], bl
lea eax, [ebp - 0x10d60]
je 0x42442c
push eax
call fcn.00453b00
cmp byte [ebp + eax - 0x10d5f], bl
pop ecx
lea eax, [ebp - 0x10d60]
jne 0x42441d
push 0x5c
push eax
call fcn.00454340
mov esi, eax
cmp esi, ebx
pop ecx
pop ecx
je 0x424438
lea ecx, [ebp - 0x10d60]
sub eax, ecx
cmp eax, 2
mov byte [esi], 0xa
jne 0x424438
cmp byte [esi - 1], 0x3a
jne 0x424438
push esi
call fcn.00453b00
inc eax
push eax
lea eax, [esi + 1]
push esi
push eax
call fcn.00453cf0
add esp, 0x10
mov byte [esi], 0x5c
jmp 0x424438
inc eax
cmp byte [eax], bl
jne 0x42441c
cmp byte [eax + 1], bl
je 0x424438
mov byte [eax], 0xa
jmp 0x42441d
inc eax
cmp byte [eax], bl
jne 0x42442b
cmp byte [eax + 1], bl
mov byte [eax], 0xa
jne 0x42442c
push 1
push ebx
push 0xffffffffffffffff
lea eax, [ebp - 0x10d60]
push eax
mov ecx, dword [ebp - 4]
call fcn.00401525
pop edi
pop esi
pop ebx
leave
ret 0x10