Function at 0x52a9e0
Capabilities:
Get common file path
Set current directory

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x68
mov eax, dword [0x7dcee0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x104
push 0
push 0xa25bc8
call fcn.00695690
mov esi, dword [ebp + 0xc]
add esp, 0xc
test esi, esi
je 0x52aa38
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52aa13
sub eax, edx
inc eax
cmp eax, 0x104
jbe 0x52aa29
mov eax, 0x104
push eax
push esi
push 0xa25bc8
call fcn.00695130
add esp, 0xc
mov edi, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push 0
push 0
call edi
mov esi, eax
lea eax, [esi + 1]
call fcn.00697040
mov eax, esp
push eax
push esi
mov dword [ebp - 0x10], eax
call edi
mov ebx, dword [ebp + 8]
test ebx, ebx
jne 0x52aa63
mov ebx, 0x6f7ed0
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52aa68
sub eax, edx
lea eax, [eax + eax + 8]
call fcn.00697040
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov edi, esp
test edi, edi
je 0x52aad0
push 0
push 0
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
call esi
push eax
push edi
push 0xffffffffffffffff
push ebx
push 0
push 0xfde9
call esi
cmp word [edi], 0
mov eax, edi
je 0x52aac4
lea esp, [esp]
cmp word [eax], 0x7c
jne 0x52aabb
xor ecx, ecx
mov word [eax], cx
add eax, 2
cmp word [eax], 0
jne 0x52aab0
xor edx, edx
xor ecx, ecx
mov word [eax + 2], dx
mov word [eax + 4], cx
mov eax, dword [ebp + 0x14]
mov dword [ebp - 8], 0
test eax, eax
je 0x52ab0f
push 0
push 0
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call esi
mov ebx, eax
lea eax, [ebx + ebx + 2]
call fcn.00697040
mov edx, dword [ebp + 0x14]
mov eax, esp
push ebx
push eax
push 0xffffffffffffffff
push edx
push 0
push 0xfde9
mov dword [ebp - 8], eax
call esi
mov eax, dword [ebp + 0x10]
xor ebx, ebx
test eax, eax
je 0x52ab47
push ebx
push ebx
push 0xffffffffffffffff
push eax
push ebx
push 0xfde9
call esi
mov dword [ebp - 0xc], eax
lea eax, [eax + eax + 2]
call fcn.00697040
mov eax, dword [ebp - 0xc]
mov ecx, dword [ebp + 0x10]
mov ebx, esp
push eax
push ebx
push 0xffffffffffffffff
push ecx
push 0
push 0xfde9
call esi
mov eax, 0xa25bc8
lea ecx, [eax + 1]
nop
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52ab50
sub eax, ecx
inc eax
push eax
push 0xa25ed8
push 0xffffffffffffffff
push 0xa25bc8
push 0
push 0xfde9
call esi
push 0x58
xor esi, esi
lea edx, [ebp - 0x68]
push esi
push edx
call fcn.00695690
mov eax, dword [0xa3061c]
mov ecx, dword [ebp - 8]
add esp, 0xc
lea edx, [ebp - 0x68]
push edx
mov dword [ebp - 0x68], 0x58
mov dword [ebp - 0x64], esi
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x5c], edi
mov dword [ebp - 0x4c], 0xa25ed8
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x48], 0x104
mov dword [ebp - 0x38], ecx
mov dword [ebp - 0x34], 0x1000
call dword [0x6d801c]
test eax, eax
je 0x52abfa
push esi
push esi
push esi
push esi
push 0xffffffffffffffff
push 0xa25ed8
push esi
mov esi, dword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
push 0xfde9
call esi
push 0
push 0
push eax
push 0xa25bc8
push 0xffffffffffffffff
push 0xa25ed8
push 0
push 0xfde9
call esi
mov esi, 0xa25bc8
mov eax, dword [ebp - 0x10]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, esi
lea esp, [ebp - 0x74]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0069528d
mov esp, ebp
pop ebp
ret