Function at 0x440cfd
Capabilities:
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x454
mov eax, dword [0x4c143c]
xor eax, ebp
mov dword [ebp - 4], eax
push esi
mov esi, ecx
push edi
mov edi, dword [ebp + 8]
mov ecx, dword [esi + 0x110]
test ecx, ecx
je 0x440d50
mov eax, dword [ecx]
push edi
call dword [eax + 0x2c]
mov ecx, dword [esi + 0x110]
test ecx, ecx
je 0x440d50
cmp dword [0x4c12e0], 0
je 0x440d50
cmp dword [0x4c3630], 0
je 0x440d50
mov eax, dword [ecx]
push str.In__DoesFileExist__
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
xor eax, eax
mov dword [ebp - 0x454], eax
mov byte [ebp - 0x20c], al
test edi, edi
je 0x441053
cmp byte [edi], al
je 0x441053
push ebx
mov ebx, 0x104
push ebx
push eax
lea eax, [ebp - 0x310]
push eax
call fcn.0045b1d0
add esp, 0xc
lea eax, [ebp - 0x310]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
mov edx, dword [esi + 0x110]
mov ecx, edx
test edx, edx
je 0x440dcc
mov eax, dword [0x4c12e0]
test eax, eax
je 0x440df1
cmp dword [0x4c3630], 0
je 0x440dd5
mov eax, dword [edx]
lea ecx, [ebp - 0x310]
push ecx
push str...Checking_in_Directory:__s.
push edx
call dword [eax + 0x10]
mov ecx, dword [esi + 0x110]
add esp, 0xc
test ecx, ecx
je 0x440df1
mov eax, dword [0x4c12e0]
test eax, eax
je 0x440df1
cmp dword [0x4c3630], 0
je 0x440df1
mov eax, dword [ecx]
push edi
push str...Trying_to_see_if_file__s_exists
push ecx
call dword [eax + 0x10]
add esp, 0xc
push 0x5c
push edi
call fcn.004662f3
pop ecx
pop ecx
test eax, eax
jne 0x440ed5
mov ecx, dword [esi + 0x110]
test ecx, ecx
je 0x440e24
cmp dword [0x4c12e0], eax
je 0x440e24
mov eax, dword [ecx]
push edi
push str...Filename__s_does_not_contain_a_path._Trying_to_find_the_path
push ecx
call dword [eax + 0x18]
add esp, 0xc
lea eax, [ebp - 0x454]
mov ebx, 0x208
push eax
lea eax, [ebp - 0x20c]
push eax
push ebx
push 0
push edi
push 0
call dword [sym.imp.KERNEL32.dll_SearchPathA]
test eax, eax
je 0x440e89
cmp byte [ebp - 0x20c], 0
je 0x440e89
mov ecx, dword [esi + 0x110]
test ecx, ecx
je 0x440f30
cmp dword [0x4c12e0], 0
je 0x440f30
cmp dword [0x4c3630], 0
je 0x440f30
lea edx, [ebp - 0x20c]
push edx
push str...SearchPath___found_the_path._Full_Path:__s
jmp 0x440f27
push ebx
lea eax, [ebp - 0x20c]
push 0
push eax
call fcn.0045b1d0
push 0x207
push edi
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.00467c26
mov ecx, dword [esi + 0x110]
add esp, 0x1c
test ecx, ecx
je 0x440f30
cmp dword [0x4c12e0], 0
je 0x440f30
mov eax, dword [ecx]
lea edx, [ebp - 0x20c]
push edx
push str...SearchPath___could_not_find_the_path._Setting_the_fullpath_to:__s
push ecx
call dword [eax + 0x14]
jmp 0x440f2d
mov ebx, 0x208
lea eax, [ebp - 0x20c]
push ebx
push 0
push eax
call fcn.0045b1d0
push 0x207
push edi
lea eax, [ebp - 0x20c]
push ebx
push eax
call fcn.00467c26
mov ecx, dword [esi + 0x110]
add esp, 0x1c
test ecx, ecx
je 0x440f30
cmp dword [0x4c12e0], 0
je 0x440f30
cmp dword [0x4c3630], 0
je 0x440f30
lea edx, [ebp - 0x20c]
push edx
push str...Input_file_name_is_already_a_path._Setting_the_fullpath_to:__s
mov eax, dword [ecx]
push ecx
call dword [eax + 0x10]
add esp, 0xc
lea eax, [ebp - 0x450]
push eax
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
pop ebx
cmp eax, 0xffffffff
jne 0x440f7f
mov ecx, dword [esi + 0x110]
test ecx, ecx
je 0x441072
cmp dword [0x4c12e0], 0
je 0x441072
mov eax, dword [ecx]
lea edx, [ebp - 0x20c]
push edx
push str.File__s_does_not_exist
push ecx
call dword [eax + 0x14]
add esp, 0xc
jmp 0x441072
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
test byte [ebp - 0x450], 0x10
jne 0x441000
lea eax, [ebp - 0x20c]
push eax
call fcn.00465f76
mov edx, dword [esi + 0x110]
mov dword [esi + 0x10], eax
pop ecx
mov ecx, edx
test edx, edx
je 0x440fd8
mov eax, dword [0x4c12e0]
test eax, eax
je 0x440ffb
cmp dword [0x4c3630], 0
je 0x440fe1
mov eax, dword [edx]
lea ecx, [ebp - 0x20c]
push ecx
push str...File_is_valid_and_exists._Setting_working_file_to__s
push edx
call dword [eax + 0x10]
mov ecx, dword [esi + 0x110]
add esp, 0xc
test ecx, ecx
je 0x440ffb
mov eax, dword [0x4c12e0]
test eax, eax
je 0x440ffb
cmp dword [0x4c3630], 0
je 0x440ffb
mov eax, dword [ecx]
push str._DoesFileExist___returns_TRUE
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
xor eax, eax
inc eax
jmp 0x441074
mov edx, dword [esi + 0x110]
mov ecx, edx
test edx, edx
je 0x441030
mov eax, dword [0x4c12e0]
test eax, eax
je 0x441072
mov eax, dword [edx]
lea ecx, [ebp - 0x20c]
push ecx
push str.The_file_is__s_actually_a_directory._Error.
push edx
call dword [eax + 0x14]
mov ecx, dword [esi + 0x110]
add esp, 0xc
test ecx, ecx
je 0x441072
mov eax, dword [0x4c12e0]
test eax, eax
je 0x441072
cmp dword [0x4c3630], 0
je 0x441072
mov eax, dword [ecx]
push str._DoesFileExist___returns_FALSE
push ecx
call dword [eax + 0x10]
jmp 0x441070
mov ecx, dword [esi + 0x110]
test ecx, ecx
je 0x441072
cmp dword [0x4c12e0], eax
je 0x441072
mov eax, dword [ecx]
push str.Parameters_to_CMcInstModule::_DoesFileExist___are_invalid
push ecx
call dword [eax + 0x14]
pop ecx
pop ecx
xor eax, eax
mov ecx, dword [ebp - 4]
pop edi
xor ecx, ebp
pop esi
call fcn.00458eeb
leave
ret 4