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

Disassembly:
push 0xffffffffffffffff
push 0x72feac
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x370
push ebx
xor eax, eax
mov ax, word [0x7d4080]
push ebp
push esi
push edi
push eax
call fcn.00595370
mov esi, eax
xor edi, edi
add esp, 4
cmp esi, edi
mov dword [esp + 0x30], esi
je 0x5ddb6a
push str..Morrowind.ini
push edi
push str.DisableLanguageCheck
push str.General
mov byte [esp + 0x23], 1
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x5dd804
mov byte [esp + 0x13], 0
mov ecx, esi
call fcn.00583b60
mov eax, dword [0x7d4070]
push edi
push edi
push 8
push eax
lea ecx, [esp + 0x44]
push ecx
mov ecx, esi
call fcn.00581440
mov eax, dword [eax]
push eax
call fcn.00649ca0
push 0xc
mov dword [esp + 0x30], eax
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 8
mov dword [esp + 0x20], eax
cmp eax, edi
mov dword [esp + 0x388], edi
je 0x5dd853
mov ecx, eax
call fcn.004d3fb0
mov dword [esp + 0x14], eax
jmp 0x5dd857
mov dword [esp + 0x14], edi
mov ecx, 0x7cb478
mov dword [esp + 0x388], 0xffffffff
call fcn.004d51b0
mov ebp, eax
push ebp
push 0x104
mov dword [esp + 0x2c], ebp
call dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
test eax, eax
je 0x5dd8b8
or ecx, 0xffffffff
xor eax, eax
mov edi, ebp
repne scasb al, byte es:[edi]
not ecx
dec ecx
je 0x5dd8b8
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 ebx, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebp
lea eax, [esp + 0x280]
push eax
call ebx
mov ecx, dword [esp + 0x14]
call fcn.004f1ab0
mov edi, eax
test edi, edi
mov dword [esp + 0x18], edi
je 0x5dd901
mov ecx, dword [esp + 0x14]
mov esi, dword [edi]
push edi
call fcn.004d4270
test esi, esi
mov edi, eax
mov dword [esp + 0x18], edi
je 0x5dd8f9
mov ecx, esi
call fcn.004b4940
test edi, edi
mov edi, dword [esp + 0x18]
jne 0x5dd8dc
lea ecx, [esp + 0x27c]
push ecx
lea edx, [esp + 0x17c]
push edx
call ebx
push str..ess
lea eax, [esp + 0x17c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x17c]
push edx
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
cmp eax, 0xffffffff
mov dword [esp + 0x20], eax
je 0x5ddb2e
mov eax, dword [esp + 0x54]
test eax, eax
jne 0x5dd95a
mov eax, dword [esp + 0x58]
test eax, eax
je 0x5ddb0f
mov eax, dword [0x7c67e0]
mov ecx, dword [eax]
lea edx, [esp + 0x64]
push edx
call fcn.004baf80
test eax, eax
jne 0x5ddb0f
push 0x574
mov dword [0x7c952c], 0x7b7f20
call sub.MSVCRT.dll_void____cdecl_operator_new_unsigned_int_
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
mov dword [esp + 0x388], 1
je 0x5dd9b0
push 0
lea ecx, [esp + 0x68]
push ecx
push ebp
mov ecx, eax
call fcn.004b3f10
mov ebx, eax
jmp 0x5dd9b2
xor ebx, ebx
mov ecx, ebx
mov dword [esp + 0x388], 0xffffffff
call fcn.004b4940
test eax, eax
jne 0x5ddaf4
mov al, byte [esp + 0x13]
test al, al
je 0x5dd9ea
mov ecx, ebx
call fcn.004b6d70
mov esi, eax
call fcn.004678f0
cmp esi, eax
jne 0x5ddaf4
mov ecx, dword [esp + 0x28]
push 0
push fcn.0064c180
push 0xffff80b4
lea edi, [ebx + 0x3d4]
call fcn.00588140
mov dl, byte [esp + 0x13]
sub esp, 0x10
mov esi, esp
mov dword [esp + 0x2c], esp
push 0
mov ecx, esi
mov ebp, eax
mov dword [esp + 0x40], esi
mov byte [esi], dl
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
mov edi, ecx
push 1
push edi
mov ecx, esi
mov dword [esp + 0x34], edi
call dword [sym.imp.MSVCP60.dll_private:_bool___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Grow_unsigned_int__bool_]
test al, al
je 0x5dda6b
mov eax, dword [esp + 0x3c]
mov ecx, edi
mov edi, dword [eax + 4]
mov edx, ecx
shr ecx, 2
lea esi, [ebx + 0x3d4]
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
push ecx
mov ecx, eax
call dword [sym.imp.MSVCP60.dll_private:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::_Eos_unsigned_int_]
mov ecx, ebp
call fcn.00580d20
xor edx, edx
mov dx, word [0x7d40f4]
push 8
lea eax, [ebx + 0xc]
push eax
mov ecx, ebp
push edx
call fcn.00581f30
xor eax, eax
mov ax, word [0x7d4090]
push 8
push ebx
mov ecx, ebp
push eax
call fcn.00581f30
xor ecx, ecx
mov cx, word [0x7d4188]
push 1
xor eax, eax
push eax
push ecx
mov ecx, ebp
call fcn.00581f30
push 0x20
push 0x5dd1e0
push 0xffff8035
mov ecx, ebp
call fcn.00581f30
push 0x20
push 0x5dde80
push 0xffff8063
mov ecx, ebp
call fcn.00581f30
push 1
push ebp
call fcn.0064caa0
add esp, 8
mov ecx, ebx
call fcn.004b47c0
mov ebp, dword [esp + 0x24]
mov edi, dword [esp + 0x18]
jmp 0x5ddb0f
mov ecx, ebx
call fcn.004b47c0
test ebx, ebx
je 0x5ddb0f
mov ecx, ebx
call fcn.004b4140
push ebx
call fcn.00727530
add esp, 4
mov esi, dword [esp + 0x20]
lea edx, [esp + 0x38]
push edx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x5dd946
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
call fcn.005ddb90
mov ecx, dword [esp + 0x30]
push 1
call fcn.00583b70
test edi, edi
je 0x5ddb52
mov ecx, edi
call fcn.006e9a00
push edi
call fcn.00727530
add esp, 4
mov esi, dword [esp + 0x14]
test esi, esi
je 0x5ddb6a
mov ecx, esi
call fcn.004d4230
push esi
call fcn.00727530
add esp, 4
mov ecx, dword [esp + 0x380]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x37c
ret