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

Disassembly:
push 0xffffffffffffffff
push 0x475031
mov eax, dword fs:[0]
push eax
sub esp, 0x18
push ebx
push ebp
push esi
push edi
mov eax, dword [0x490018]
xor eax, esp
push eax
lea eax, [esp + 0x2c]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [0x491c54]
xor ebx, ebx
mov dword [edi + 0x214], ebx
mov dword [edi + 8], 1
mov eax, dword [eax + 4]
mov esi, dword [eax + 0x14]
call fcn.00402650
test eax, eax
jne 0x4079fb
mov ecx, dword [edi + 0x48]
mov esi, 0x1000200
cmp ecx, ebx
je 0x4079f1
lea eax, [esp + 0x18]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x18], 3
mov edx, dword [ecx]
mov edx, dword [edx + 8]
push eax
push edi
call edx
mov dword [edi + 0x40], esi
mov eax, esi
jmp 0x407b42
mov eax, dword [esp + 0x3c]
push eax
lea ecx, [esp + 0x18]
call dword [0x4763f4]
mov dword [esp + 0x34], ebx
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
cmp eax, ebx
je 0x407a3a
dec eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::operator__]
cmp ax, 0x5c
je 0x407a3a
push 0x47d53c
lea ecx, [esp + 0x18]
call dword [0x476390]
mov edx, dword [esp + 0x14]
push edx
lea ecx, [edi + 0xb8]
call fcn.0041bd00
mov eax, dword [esp + 0x14]
mov eax, dword [eax - 0xc]
cmp eax, ebx
je 0x407a7c
dec eax
push eax
lea ecx, [esp + 0x18]
call dword [sym.imp.mfc90u.dll_ATL::CSimpleStringT_wchar_t_1_::operator__]
cmp ax, 0x5c
jne 0x407a7c
mov ecx, dword [esp + 0x14]
mov eax, dword [ecx - 0xc]
push 1
dec eax
push eax
lea ecx, [esp + 0x1c]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::Delete]
mov edx, dword [esp + 0x14]
push edx
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x407ab7
and eax, 0x10
mov eax, 0
sete al
cmp eax, ebx
je 0x407ab7
mov dword [esp + 0x34], 0xffffffff
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, 0x1000e00
jmp 0x407b42
push ebx
lea ecx, [edi + 0x210]
mov dword [edi + 0x138], ebx
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::operator_1]
mov esi, edi
call fcn.00406f80
mov ebp, eax
mov eax, dword [edi + 0x10]
mov ecx, dword [eax + 0x40]
cmp ecx, ebx
jne 0x407ae0
mov ecx, dword [eax + 0x3c]
lea esi, [esp + 0x20]
call fcn.0045c290
mov byte [esp + 0x34], 1
mov eax, dword [esp + 0x24]
lea esi, [edi + 0x174]
mov edi, eax
cmp eax, ebx
je 0x407b21
cmp dword [esi + 4], ebx
je 0x407b15
mov eax, dword [esi]
mov edx, dword [eax + 0x10]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0x18]
mov ecx, esi
call edx
mov eax, dword [esi]
mov edx, dword [eax + 0xc]
mov ecx, esi
mov dword [esi + 4], edi
call edx
mov byte [esp + 0x34], bl
lea ecx, [esp + 0x20]
call fcn.00461cd0
mov dword [esp + 0x34], 0xffffffff
lea ecx, [esp + 0x14]
call dword [sym.imp.mfc90u.dll_ATL::CStringT_wchar_t_class_StrTraitMFC_DLL_wchar_t_class_ATL::ChTraitsCRT_wchar_t_____::CStringT_wchar_t_clas]
mov eax, ebp
mov ecx, dword [esp + 0x2c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x24
ret 4