Function at 0x611d50
Capabilities:
Enumerate files on windows
Get common file path
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x73024c
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x364
push ebx
xor eax, eax
mov ax, word [0x7d5c20]
push ebp
push esi
push edi
push eax
call fcn.00595370
mov ebx, eax
add esp, 4
mov ecx, 0x7cb478
mov dword [esp + 0x20], ebx
call fcn.004d51b0
xor esi, esi
cmp ebx, esi
mov ebp, eax
mov dword [esp + 0x24], ebp
je 0x6120cd
mov ecx, ebx
call fcn.00583b60
mov eax, dword [0x7d5c0c]
push esi
push esi
push 8
push eax
lea ecx, [esp + 0x24]
push ecx
mov ecx, ebx
call fcn.00581440
mov eax, dword [eax]
push eax
call fcn.00649ca0
add esp, 4
push str..Morrowind.ini
push esi
push str.DisableLanguageCheck
push str.General
mov dword [esp + 0x38], eax
mov byte [esp + 0x22], 1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x611df0
mov byte [esp + 0x12], 0
push 0xc
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x14], eax
cmp eax, esi
mov dword [esp + 0x37c], esi
je 0x611e16
mov ecx, eax
call fcn.004d3fb0
mov dword [esp + 0x1c], eax
jmp 0x611e1a
mov dword [esp + 0x1c], esi
push ebp
push 0x104
mov dword [esp + 0x384], 0xffffffff
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x611e6b
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x611e6b
or ecx, 0xffffffff
mov edi, str.Saves_
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov edx, ecx
or ecx, 0xffffffff
mov esi, edi
mov edi, ebp
repne scasb al, byte es:[edi]
mov ecx, edx
shr ecx, 2
dec edi
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov esi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebp
lea eax, [esp + 0x274]
push eax
call esi
lea ecx, [esp + 0x270]
push ecx
lea edx, [esp + 0x170]
push edx
call esi
push str..ess
lea eax, [esp + 0x170]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x2c]
push ecx
lea edx, [esp + 0x170]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov esi, eax
cmp esi, 0xffffffff
mov dword [esp + 0x14], esi
je 0x6120a7
mov eax, dword [esp + 0x48]
test eax, eax
jne 0x611ed7
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x612088
mov eax, dword [0x7c67e0]
mov ecx, dword [eax]
lea edx, [esp + 0x58]
push edx
call fcn.004baf80
test eax, eax
jne 0x612088
push 0x574
mov dword [0x7c952c], 0x7b7f20
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x18], eax
test eax, eax
mov dword [esp + 0x37c], 1
je 0x611f2d
push 0
lea ecx, [esp + 0x5c]
push ecx
push ebp
mov ecx, eax
call fcn.004b3f10
mov ebx, eax
jmp 0x611f2f
xor ebx, ebx
mov ecx, ebx
mov dword [esp + 0x37c], 0xffffffff
call fcn.004b4940
test eax, eax
jne 0x61206d
mov al, byte [esp + 0x12]
test al, al
je 0x611f67
mov ecx, ebx
call fcn.004b6d70
mov edi, eax
call fcn.004678f0
cmp edi, eax
jne 0x61206d
mov edx, str.save
test edx, edx
lea edi, [ebx + 0x3d4]
jne 0x611f85
push 0x7b3b78
call fcn.0058df10
add esp, 4
jmp 0x611fa8
push 0
sub esp, 0x10
mov ecx, esp
mov dword [esp + 0x2c], esp
lea eax, [esp + 0x27]
push eax
push str.save
call dword [sym.imp.MSVCP60.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const___class_std::allocator_char__const__]
call fcn.0057b290
add esp, 0x14
mov ecx, dword [esp + 0x28]
push 0
push fcn.0064c180
push eax
call fcn.00588140
mov cl, byte [esp + 0x13]
sub esp, 0x10
mov ebp, esp
mov dword [esp + 0x28], esp
mov byte [ebp], cl
push 0
mov ecx, ebp
mov esi, eax
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Tidy_bool_]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
lea eax, [ebx + 0x3d4]
push eax
mov ecx, ebp
call dword [sym.imp.MSVCP60.dll_public:_class_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char______thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::assign_char_const___unsigned_int_]
mov ecx, esi
call fcn.00580d20
xor edx, edx
mov dx, word [0x7d5db0]
push 8
lea eax, [ebx + 0xc]
push eax
mov ecx, esi
push edx
call fcn.00581f30
xor eax, eax
mov ax, word [0x7d5bd2]
push 8
push ebx
mov ecx, esi
push eax
call fcn.00581f30
xor ecx, ecx
mov cx, word [0x7d5d94]
push 1
xor eax, eax
push eax
push ecx
mov ecx, esi
call fcn.00581f30
push 0x20
push 0x611890
push 0xffff8035
mov ecx, esi
call fcn.00581f30
push 0x20
push 0x6122b0
push 0xffff8063
mov ecx, esi
call fcn.00581f30
mov ecx, ebx
call fcn.004b47c0
mov ebp, dword [esp + 0x24]
mov esi, dword [esp + 0x14]
jmp 0x612088
mov ecx, ebx
call fcn.004b47c0
test ebx, ebx
je 0x612088
mov ecx, ebx
call fcn.004b4140
push ebx
call fcn.00727530
add esp, 4
lea edx, [esp + 0x2c]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x611ec3
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov ebx, dword [esp + 0x20]
call fcn.006120f0
push 1
mov ecx, ebx
call fcn.00583b70
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x6120cd
mov ecx, esi
call fcn.004d4230
push esi
call fcn.00727530
add esp, 4
mov ecx, dword [esp + 0x374]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x370
ret