Function at 0x43f67b
Capabilities:
Check if file exists
Enumerate files on windows

Disassembly:
push 0x35c
mov eax, 0x490dc4
call fcn.00458f67
mov edi, ecx
mov esi, 0x104
lea eax, [ebp - 0x114]
push esi
xor ebx, ebx
push ebx
push eax
call fcn.0045b1d0
push esi
lea eax, [ebp - 0x218]
push ebx
push eax
call fcn.0045b1d0
add esp, 0x18
lea ecx, [ebp - 0x364]
call fcn.0040d837
push esi
lea eax, [ebp - 0x114]
mov dword [ebp - 4], ebx
push eax
mov ecx, edi
call fcn.0043e35a
test al, al
jne 0x43f6f7
mov ecx, dword [edi + 0x110]
test ecx, ecx
je 0x43f832
cmp dword [0x4c12e0], ebx
je 0x43f832
push str.Unable_to_get_base_path_for_previous_installations_of_McInst
jmp 0x43f7b3
lea eax, [ebp - 0x114]
push eax
lea eax, [ebp - 0x218]
push esi
push eax
call fcn.00465df5
mov edx, eax
add esp, 0xc
test edx, edx
je 0x43f74a
mov ecx, dword [edi + 0x110]
test ecx, ecx
je 0x43f832
cmp dword [0x4c12e0], 0
je 0x43f832
mov eax, dword [ecx]
push edx
lea edx, [ebp - 0x114]
push edx
push str.Unable_to_copy_my_path__s_to_search_path_buffer._Error:__d
push ecx
call dword [eax + 0x14]
add esp, 0x10
jmp 0x43f832
push 0x4a38e8
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendA]
test eax, eax
jne 0x43f781
mov ecx, dword [edi + 0x110]
test ecx, ecx
je 0x43f832
cmp dword [0x4c12e0], eax
je 0x43f832
push str.Unable_to_append_wildcard_to_base_McInst_installation_path_to_search_for_subfolders
jmp 0x43f7b3
lea eax, [ebp - 0x364]
mov ecx, edi
push eax
call fcn.0043e6ec
test al, al
jne 0x43f7bd
mov ecx, dword [edi + 0x110]
test ecx, ecx
je 0x43f832
cmp dword [0x4c12e0], 0
je 0x43f832
push str.Unable_to_get_my_file_version
mov eax, dword [ecx]
push ecx
call dword [eax + 0x14]
pop ecx
pop ecx
jmp 0x43f832
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x368], eax
cmp eax, 0xffffffff
jne 0x43f83d
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, dword [edi + 0x110]
mov edx, eax
cmp edx, 2
jne 0x43f816
test ecx, ecx
je 0x43f812
cmp dword [0x4c12e0], 0
je 0x43f812
cmp dword [0x4c3630], 0
je 0x43f812
mov eax, dword [ecx]
push str.No_previous_versions_of_McInst_found._Nothing_to_remove.
push ecx
call dword [eax + 0x10]
pop ecx
pop ecx
mov bl, 1
jmp 0x43f832
test ecx, ecx
je 0x43f832
cmp dword [0x4c12e0], 0
je 0x43f832
mov eax, dword [ecx]
push edx
push str.FindFirstFile___failed._Error:__d
push ecx
call dword [eax + 0x14]
add esp, 0xc
mov esi, dword [ebp - 0x364]
jmp 0x43fa0c
mov esi, dword [ebp - 0x364]
lea eax, [ebp - 0x32c]
push eax
lea ecx, [ebp - 0x35c]
call fcn.0040d7d2
push 0x4947cc
push dword [ebp - 0x35c]
mov byte [ebp - 4], 1
call fcn.00465a8e
pop ecx
pop ecx
test eax, eax
je 0x43f997
push 0x4947d0
push dword [ebp - 0x35c]
call fcn.00465a8e
pop ecx
pop ecx
test eax, eax
je 0x43f997
test byte [ebp - 0x358], 0x10
je 0x43f997
lea eax, [ebp - 0x32c]
push eax
push esi
call fcn.00465a8e
pop ecx
pop ecx
test eax, eax
je 0x43f997
mov ecx, dword [edi + 0x110]
test ecx, ecx
je 0x43f8e9
cmp dword [0x4c12e0], 0
je 0x43f8e9
cmp dword [0x4c3630], 0
je 0x43f8e9
mov eax, dword [ecx]
lea edx, [ebp - 0x114]
push edx
lea edx, [ebp - 0x32c]
push edx
push str.Directory__s_found_in__s._Removing...
push ecx
call dword [eax + 0x10]
add esp, 0x10
lea eax, [ebp - 0x114]
push eax
lea ecx, [ebp - 0x360]
call fcn.0040d7d2
lea eax, [ebp - 0x32c]
mov byte [ebp - 4], 2
push eax
call fcn.00461890
pop ecx
push eax
lea eax, [ebp - 0x32c]
push eax
lea ecx, [ebp - 0x360]
call fcn.004141e9
push 1
push dword [ebp - 0x360]
call fcn.00442c28
pop ecx
pop ecx
mov ecx, dword [edi + 0x110]
test ecx, ecx
je 0x43f989
test eax, eax
je 0x43f96b
cmp dword [0x4c12e0], 0
je 0x43f989
cmp dword [0x4c3630], 0
je 0x43f989
push dword [ebp - 0x360]
mov eax, dword [ecx]
lea edx, [ebp - 0x32c]
push edx
push str.Removed_McInst_version__s___deleted_folder__s
push ecx
call dword [eax + 0x10]
add esp, 0x10
jmp 0x43f989
cmp dword [0x4c12e0], 0
je 0x43f989
mov eax, dword [ecx]
lea edx, [ebp - 0x32c]
push edx
push str.Failed_to_delete_McInst_version__s
push ecx
call dword [eax + 0x14]
add esp, 0xc
mov ecx, dword [ebp - 0x360]
lea ecx, [ecx - 0x10]
call fcn.0040c5fb
mov ecx, dword [ebp - 0x35c]
add ecx, 0xfffffff0
mov byte [ebp - 4], bl
call fcn.0040c5fb
lea eax, [ebp - 0x358]
push eax
push dword [ebp - 0x368]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x43f843
call dword [sym.imp.KERNEL32.dll_GetLastError]
push dword [ebp - 0x368]
mov dword [ebp - 0x35c], eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [ebp - 0x35c]
cmp edx, 0x12
je 0x43fa0a
mov ecx, dword [edi + 0x110]
test ecx, ecx
je 0x43fa0c
cmp dword [0x4c12e0], 0
je 0x43fa0c
mov eax, dword [ecx]
push edx
push str.FindNextFile___failed._Error:__d
push ecx
call dword [eax + 0x14]
add esp, 0xc
jmp 0x43fa0c
mov bl, 1
lea ecx, [esi - 0x10]
call fcn.0040c5fb
mov al, bl
call fcn.00458f11
ret