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

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4612fd
push eax
mov dword fs:[0], esp
sub esp, 0x450
push ebx
push ebp
mov ebp, dword [esp + 0x468]
push esi
test ebp, ebp
push edi
je 0x42dda9
push ebp
call fcn.0044d1f0
add esp, 4
test al, al
je 0x42dda9
mov byte [esp + 0x13], 1
mov dword [esp + 0x47c], 0x472b1c
jmp 0x42ddc0
mov eax, dword [esp + 0x47c]
mov byte [esp + 0x13], 0
test eax, eax
jne 0x42ddc0
mov dword [esp + 0x47c], ebp
mov ebx, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
test ebp, ebp
je 0x42dfc4
push ebp
call fcn.0044e460
mov esi, dword [sym.imp.MSVCRT.dll_strchr]
push 0x2a
push ebp
call esi
add esp, 0xc
test eax, eax
jne 0x42e799
push 0x3f
push ebp
call esi
add esp, 8
test eax, eax
jne 0x42e799
push ebp
call ebx
cmp eax, 0xffffffff
je 0x42de0e
test al, 0x10
je 0x42de7d
or eax, 0xffffffff
jmp 0x42e7a0
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
cmp eax, 2
jne 0x42de40
push 0x4704b0
push ebp
call dword [sym.imp.MSVCRT.dll_fopen]
add esp, 8
test eax, eax
je 0x42de38
push eax
call dword [sym.imp.MSVCRT.dll_fclose]
add esp, 4
push ebp
call ebx
cmp eax, 0xffffffff
jne 0x42de7d
mov eax, dword [0x483a50]
mov esi, dword [eax + 0x4e0]
call edi
push eax
call fcn.0044c500
mov ecx, dword [0x483a50]
add esp, 4
mov edx, dword [ecx + eax*4]
push edx
push esi
push ebp
push str._s_n_n_s:__s
push esi
push 0x2010
call fcn.0043ac10
add esp, 0x18
or eax, 0xffffffff
jmp 0x42e7a0
call dword [sym.imp.USER32.dll_GetFocus]
push eax
call sub.MFC42.DLL_CWnd::FromHandle
mov edi, eax
xor esi, esi
test edi, edi
je 0x42df42
cmp esi, 0x40
jge 0x42df42
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42deaf
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42df04
cmp eax, 0x40
jge 0x42df04
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42df04
mov ecx, dword [eax + 0x830]
test ecx, ecx
je 0x42df04
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42dede
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42defa
cmp eax, 0x40
jge 0x42defa
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42defa
mov eax, dword [eax + 0x830]
jmp 0x42defc
xor eax, eax
cmp dword [eax + 0xa4], edi
je 0x42df37
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42df15
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42df31
cmp eax, 0x40
jge 0x42df31
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42df31
mov eax, dword [eax + 0x82c]
jmp 0x42df33
xor eax, eax
cmp eax, edi
jne 0x42df39
xor edi, edi
inc esi
test edi, edi
jne 0x42de95
mov al, byte [0x475a9f]
xor esi, esi
test al, al
jne 0x42dfc4
cmp esi, 0x40
jge 0x42dfc4
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42df63
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42df77
cmp eax, 0x40
jge 0x42df77
mov eax, dword [eax*4 + 0x473308]
test eax, eax
jne 0x42df7c
mov eax, 0x473408
push ebp
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x42dfba
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42df9c
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42dfba
cmp eax, 0x40
jge 0x42dfba
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42dfba
mov ecx, dword [eax + 0x82c]
test ecx, ecx
jne 0x42e002
mov al, byte [0x475a9f]
inc esi
test al, al
je 0x42df4d
xor ebx, ebx
mov esi, 0x473308
mov dword [esp + 0x18], ebx
cmp dword [esi], 0
jne 0x42dfed
push 0x838
call sub.MFC42.DLL_operatornew
mov edi, eax
add esp, 4
test edi, edi
mov dword [esi], edi
jne 0x42e126
inc ebx
add esi, 4
cmp ebx, 0x40
jl 0x42dfcf
mov dword [esp + 0x18], ebx
or eax, 0xffffffff
jmp 0x42e7a0
test esi, esi
jl 0x42e0a2
cmp esi, 0x40
jge 0x42e0a2
mov eax, dword [esi*4 + 0x473308]
test eax, eax
je 0x42e0a2
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x42e0a2
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42e03d
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42e11e
cmp eax, 0x40
jge 0x42e11e
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42e11e
mov ecx, dword [eax + 0x830]
test ecx, ecx
je 0x42e11e
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42e07c
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42e098
cmp eax, 0x40
jge 0x42e098
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42e098
mov eax, dword [eax + 0x830]
jmp 0x42e09a
xor eax, eax
cmp dword [eax + 0xa4], edi
je 0x42e11e
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42e0b3
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42e0cf
cmp eax, 0x40
jge 0x42e0cf
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42e0cf
mov eax, dword [eax + 0x82c]
jmp 0x42e0d1
xor eax, eax
mov eax, dword [eax + 0x20]
push eax
call dword [sym.imp.USER32.dll_BringWindowToTop]
cmp esi, 0xfffffffe
mov eax, esi
jne 0x42e0ec
mov ecx, 0x473308
call fcn.0041df20
test eax, eax
jl 0x42e115
cmp eax, 0x40
jge 0x42e115
mov eax, dword [eax*4 + 0x473308]
test eax, eax
je 0x42e115
mov eax, dword [eax + 0x82c]
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetFocus
or eax, 0xffffffff
jmp 0x42e7a0
xor eax, eax
mov ecx, eax
call sub.MFC42.DLL_CWnd::SetFocus
or eax, 0xffffffff
jmp 0x42e7a0
mov ecx, 0x20e
xor eax, eax
rep stosd dword es:[edi], eax
mov ecx, dword [ebx*4 + 0x473308]
or eax, 0xffffffff
test ebx, ebx
mov dword [ecx + 0x814], eax
mov edx, dword [ebx*4 + 0x473308]
mov dword [esp + 0x18], ebx
mov dword [edx + 0x81c], eax
jge 0x42e15c
or eax, 0xffffffff
jmp 0x42e7a0
mov al, byte [esp + 0x478]
xor esi, esi
xor ecx, ecx
test al, al
mov dword [esp + 0x14], ecx
jne 0x42e1d3
push 0xf4
call sub.MFC42.DLL_operatornew
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, esi
mov dword [esp + 0x468], esi
je 0x42e194
mov ecx, eax
call fcn.0041d2a0
jmp 0x42e196
xor eax, eax
mov ecx, eax
cmp eax, esi
mov dword [esp + 0x468], 0xffffffff
mov dword [esp + 0x14], ecx
jne 0x42e1d3
cmp ebx, 0x40
jge 0x42e1cb
mov eax, dword [ebx*4 + 0x473308]
cmp eax, esi
je 0x42e1cb
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [ebx*4 + 0x473308], esi
or eax, 0xffffffff
jmp 0x42e7a0
cmp ebx, 0x40
jge 0x42e1e9
mov eax, dword [ebx*4 + 0x473308]
cmp eax, esi
je 0x42e1e9
mov dword [eax + 0x82c], ecx
or ebx, 0xffffffff
cmp ebp, esi
je 0x42e3fd
mov al, byte [esp + 0x13]
test al, al
jne 0x42e3fd
mov al, byte [0x472b1c]
mov ecx, 8
mov byte [esp + 0x1c], al
xor eax, eax
lea edi, [esp + 0x1d]
rep stosd dword es:[edi], eax
mov eax, dword [esp + 0x47c]
cmp eax, esi
je 0x42e2d9
mov ecx, dword [0x483a50]
mov esi, dword [ecx + 0x4d4]
mov dl, byte [eax]
mov cl, dl
cmp dl, byte [esi]
jne 0x42e255
test cl, cl
je 0x42e251
mov dl, byte [eax + 1]
mov cl, dl
cmp dl, byte [esi + 1]
jne 0x42e255
add eax, 2
add esi, 2
test cl, cl
jne 0x42e231
xor eax, eax
jmp 0x42e25a
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x42e2d9
mov eax, dword [esp + 0x470]
mov ebp, dword [sym.imp.MSVCRT.dll_strrchr]
push 0x2e
push eax
call ebp
add esp, 8
test eax, eax
je 0x42e2d9
lea edi, [eax + 1]
push 0x4700b8
push edi
call dword [sym.imp.MSVCRT.dll_strspn]
mov edx, eax
or ecx, 0xffffffff
xor eax, eax
add esp, 8
repne scasb al, byte es:[edi]
not ecx
dec ecx
cmp ecx, edx
jne 0x42e2d9
mov edi, dword [esp + 0x470]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
lea edx, [esp + 0x5c]
mov eax, ecx
mov esi, edi
mov edi, edx
push 0x2e
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
call ebp
mov byte [eax], 0
lea eax, [esp + 0x64]
lea ecx, [esp + 0x24]
push eax
push ecx
call fcn.0044b350
add esp, 0x10
mov al, byte [esp + 0x1c]
test al, al
jne 0x42e330
mov esi, dword [esp + 0x47c]
test esi, esi
je 0x42e30f
push esi
call fcn.0044d9c0
add esp, 4
test al, al
je 0x42e307
lea edx, [esp + 0x1c]
push esi
push edx
call fcn.0044b350
add esp, 8
mov al, byte [esp + 0x1c]
test al, al
jne 0x42e330
mov eax, dword [esp + 0x470]
lea ecx, [esp + 0x1c]
push eax
push ecx
call fcn.0044b350
mov al, byte [esp + 0x24]
add esp, 8
test al, al
je 0x42e3c2
mov edx, dword [0x47447c]
xor esi, esi
test edx, edx
jle 0x42e372
mov ebp, dword [sym.imp.MSVCRT.dll__stricmp]
mov edi, 0x474484
cmp ebx, 0xffffffff
jne 0x42e372
mov eax, dword [edi]
lea edx, [esp + 0x1c]
add eax, 0x10cf
push edx
push eax
call ebp
add esp, 8
test eax, eax
jne 0x42e364
mov ebx, esi
mov edx, dword [0x47447c]
inc esi
add edi, 4
cmp esi, edx
jl 0x42e347
xor edi, edi
test edx, edx
jle 0x42e3f6
mov ebp, 0x474484
cmp ebx, 0xffffffff
jne 0x42e409
xor esi, esi
mov edx, dword [ebp]
lea ecx, [esp + 0x1c]
push ecx
lea eax, [esi + edx + 0x10f1]
push eax
call dword [sym.imp.MSVCRT.dll__stricmp]
add esp, 8
test eax, eax
jne 0x42e3a7
mov ebx, edi
add esi, 0x21
cmp esi, 0x210
jl 0x42e388
mov edx, dword [0x47447c]
inc edi
add ebp, 4
cmp edi, edx
jl 0x42e37d
jmp 0x42e3f6
mov edx, dword [0x47447c]
xor esi, esi
test edx, edx
jle 0x42e403
mov ebp, 0x474484
cmp ebx, 0xffffffff
jne 0x42e409
mov edi, dword [ebp]
or ecx, ebx
add edi, 0x10cf
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
jne 0x42e3ee
mov ebx, esi
inc esi
add ebp, 4
cmp esi, edx
jl 0x42e3d3
cmp ebx, 0xffffffff
jne 0x42e409
jmp 0x42e403
mov edx, dword [0x47447c]
mov ebx, dword [0x474480]
mov esi, dword [esp + 0x470]
mov ecx, 7
xor eax, eax
lea edi, [esp + 0x40]
rep stosd dword es:[edi], eax
mov al, byte [esp + 0x13]
test al, al
jne 0x42e45b
test esi, esi
je 0x42e45b
cmp byte [esi], 0
je 0x42e45b
lea ecx, [esp + 0x40]
push ecx
push esi
mov ecx, 0x482fd0
call fcn.004492f0
test eax, eax
je 0x42e455
lea edx, [esp + 0x50]
push 0
push edx
mov ecx, 0x473410
call fcn.0043e1f0
mov ebx, eax
mov edx, dword [0x47447c]
dec edx
xor ebp, ebp
push edx
push ebp
push ebx
call fcn.0044b330
mov edi, dword [esp + 0x24]
add esp, 0xc
cmp edi, 0x40
jge 0x42e4e2
mov ecx, dword [edi*4 + 0x473308]
cmp ecx, ebp
je 0x42e483
mov dword [ecx + 0x814], eax
cmp edi, 0x40
jge 0x42e4e2
mov ecx, dword [edi*4 + 0x473308]
cmp ecx, ebp
je 0x42e4ad
cmp esi, ebp
mov eax, esi
jne 0x42e49e
mov eax, 0x472b1c
push 0x402
push eax
push ecx
call fcn.0044a7e0
add esp, 0xc
cmp edi, 0x40
jge 0x42e4e2
mov ecx, dword [edi*4 + 0x473308]
cmp ecx, ebp
je 0x42e4e2
mov eax, dword [esp + 0x47c]
cmp eax, ebp
jne 0x42e4cd
mov eax, 0x472b1c
push 0x402
add ecx, 0x402
push eax
push ecx
call fcn.0044a7e0
add esp, 0xc
mov al, byte [0x475a9c]
mov edx, dword [esp + 0x474]
test al, al
je 0x42e515
cmp esi, ebp
je 0x42e515
test dl, dl
jne 0x42e515
push esi
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
and al, 1
cmp edi, 0x40
jge 0x42e531
mov ecx, dword [edi*4 + 0x473308]
cmp ecx, ebp
je 0x42e531
jmp 0x42e52b
cmp edi, 0x40
jge 0x42e531
mov ecx, dword [edi*4 + 0x473308]
cmp ecx, ebp
je 0x42e531
neg al
sbb al, al
and eax, edx
mov byte [ecx + 0x819], al
cmp edi, 0xfffffffe
jne 0x42e58d
mov esi, dword [0x47340c]
cmp esi, ebp
jl 0x42e55e
cmp esi, 0x40
jge 0x42e55e
mov eax, dword [esi*4 + 0x473308]
cmp eax, ebp
je 0x42e55e
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x42e55e
mov eax, esi
jmp 0x42e595
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
cmp edx, ebp
je 0x42e575
mov bl, byte [edx + 0x81a]
test bl, bl
jne 0x42e583
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x42e565
or eax, 0xffffffff
jmp 0x42e595
mov esi, eax
mov dword [0x47340c], esi
jmp 0x42e595
mov esi, dword [0x47340c]
mov eax, edi
cmp eax, ebp
jl 0x42e5a9
cmp eax, 0x40
jge 0x42e5a9
mov eax, dword [eax*4 + 0x473308]
cmp eax, ebp
jne 0x42e5b6
mov eax, 0x473408
cmp eax, ebp
je 0x42e735
mov al, byte [esp + 0x13]
test al, al
jne 0x42e735
cmp edi, 0xfffffffe
jne 0x42e618
cmp esi, ebp
jl 0x42e5e9
cmp esi, 0x40
jge 0x42e5e9
mov eax, dword [esi*4 + 0x473308]
cmp eax, ebp
je 0x42e5e9
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x42e5e9
mov eax, esi
jmp 0x42e61a
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
cmp edx, ebp
je 0x42e600
mov bl, byte [edx + 0x81a]
test bl, bl
jne 0x42e60e
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x42e5f0
or eax, 0xffffffff
jmp 0x42e61a
mov esi, eax
mov dword [0x47340c], esi
jmp 0x42e61a
mov eax, edi
cmp eax, ebp
jl 0x42e62e
cmp eax, 0x40
jge 0x42e62e
mov eax, dword [eax*4 + 0x473308]
cmp eax, ebp
jne 0x42e633
mov eax, 0x473408
cmp byte [eax], 0
je 0x42e735
cmp edi, 0xfffffffe
jne 0x42e68f
cmp esi, ebp
jl 0x42e663
cmp esi, 0x40
jge 0x42e663
mov eax, dword [esi*4 + 0x473308]
cmp eax, ebp
je 0x42e663
mov cl, byte [eax + 0x81a]
test cl, cl
je 0x42e663
mov eax, esi
jmp 0x42e691
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
cmp edx, ebp
je 0x42e67a
mov bl, byte [edx + 0x81a]
test bl, bl
jne 0x42e688
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x42e66a
or eax, 0xffffffff
jmp 0x42e691
mov dword [0x47340c], eax
jmp 0x42e691
mov eax, edi
cmp eax, ebp
jl 0x42e6a5
cmp eax, 0x40
jge 0x42e6a5
mov eax, dword [eax*4 + 0x473308]
cmp eax, ebp
jne 0x42e6aa
mov eax, 0x473408
push eax
push 0x482b78
call fcn.0044b3a0
add esp, 8
cmp edi, 0xfffffffe
jne 0x42e70c
mov eax, dword [0x47340c]
cmp eax, ebp
jl 0x42e6e0
cmp eax, 0x40
jge 0x42e6e0
mov ecx, dword [eax*4 + 0x473308]
cmp ecx, ebp
je 0x42e6e0
mov dl, byte [ecx + 0x81a]
test dl, dl
jne 0x42e70e
xor eax, eax
mov ecx, 0x473308
mov edx, dword [ecx]
cmp edx, ebp
je 0x42e6f7
mov bl, byte [edx + 0x81a]
test bl, bl
jne 0x42e705
inc eax
add ecx, 4
cmp eax, 0x40
jl 0x42e6e7
or eax, 0xffffffff
jmp 0x42e70e
mov dword [0x47340c], eax
jmp 0x42e70e
mov eax, edi
cmp eax, ebp
jl 0x42e722
cmp eax, 0x40
jge 0x42e722
mov eax, dword [eax*4 + 0x473308]
cmp eax, ebp
jne 0x42e727
mov eax, 0x473408
push eax
push 0x482f7c
call fcn.0044b350
add esp, 8
mov al, byte [esp + 0x478]
test al, al
jne 0x42e79e
mov esi, dword [esp + 0x14]
push ebp
push ebp
push 0xffffffffffffffff
push ebp
push ebp
push edi
mov ecx, esi
call fcn.0041d330
test al, al
jne 0x42e79e
cmp edi, 0x40
jge 0x42e76c
mov eax, dword [edi*4 + 0x473308]
cmp eax, ebp
je 0x42e76c
mov dword [eax + 0x82c], ebp
cmp esi, ebp
je 0x42e779
mov eax, dword [esi]
push 1
mov ecx, esi
call dword [eax + 4]
cmp edi, 0x40
jge 0x42e799
mov eax, dword [edi*4 + 0x473308]
cmp eax, ebp
je 0x42e799
push eax
call sub.MFC42.DLL_operatordelete
add esp, 4
mov dword [edi*4 + 0x473308], ebp
or eax, 0xffffffff
jmp 0x42e7a0
mov eax, edi
mov ecx, dword [esp + 0x460]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x45c
ret 0x14