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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x6c
mov eax, dword [0x7dcee0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
push edi
push 0x104
xor esi, esi
push esi
push 0xa25bc8
call fcn.00695690
mov edi, dword [ebp + 0xc]
add esp, 0xc
cmp edi, esi
je 0x52ac79
mov eax, edi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52ac54
sub eax, edx
inc eax
cmp eax, 0x104
jbe 0x52ac6a
mov eax, 0x104
push eax
push edi
push 0xa25bc8
call fcn.00695130
add esp, 0xc
mov ebx, dword [sym.imp.KERNEL32.dll_GetCurrentDirectoryA]
push esi
push esi
call ebx
mov edi, eax
lea eax, [edi + 1]
call fcn.00697040
mov eax, esp
push eax
push edi
mov dword [ebp - 0x14], eax
call ebx
mov ebx, dword [ebp + 8]
cmp ebx, esi
je 0x52acbb
mov eax, ebx
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x52aca2
sub eax, edx
lea eax, [eax + eax + 8]
call fcn.00697040
mov edi, esp
mov dword [ebp - 8], edi
jmp 0x52acc0
mov dword [ebp - 8], esi
mov edi, esi
mov dword [ebp - 0xc], esi
cmp edi, esi
mov esi, dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
je 0x52ad2f
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
xor cl, cl
cmp word [edi], 0
mov eax, edi
je 0x52ad23
cmp word [eax], 0x7c
jne 0x52ad04
xor ecx, ecx
mov word [eax], cx
mov cl, 1
jmp 0x52ad08
test cl, cl
je 0x52ad1a
cmp dword [ebp - 0xc], 0
jne 0x52ad1a
cmp word [eax], 0x2e
jne 0x52ad1a
lea edx, [eax + 2]
mov dword [ebp - 0xc], edx
add eax, 2
cmp word [eax], 0
jne 0x52acf5
xor ecx, ecx
xor edx, edx
mov word [eax + 2], cx
mov word [eax + 4], dx
mov eax, dword [ebp + 0x14]
xor ebx, ebx
test eax, eax
je 0x52ad63
push ebx
push ebx
push 0xffffffffffffffff
push eax
push ebx
push 0xfde9
call esi
mov edi, eax
lea eax, [edi + edi + 2]
call fcn.00697040
mov eax, dword [ebp + 0x14]
mov ebx, esp
push edi
push ebx
push 0xffffffffffffffff
push eax
push 0
push 0xfde9
call esi
mov eax, dword [ebp + 0x10]
xor edi, edi
test eax, eax
je 0x52ad9b
push edi
push edi
push 0xffffffffffffffff
push eax
push edi
push 0xfde9
call esi
mov dword [ebp - 0x10], eax
lea eax, [eax + eax + 2]
call fcn.00697040
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp + 0x10]
mov edi, esp
push ecx
push edi
push 0xffffffffffffffff
push edx
push 0
push 0xfde9
call esi
mov eax, 0xa25bc8
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x52ada3
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 eax, [ebp - 0x6c]
push esi
push eax
call fcn.00695690
mov ecx, dword [0xa3061c]
mov edx, dword [ebp - 8]
mov dword [ebp - 0x60], edx
add esp, 0xc
xor eax, eax
mov dword [ebp - 0x64], ecx
mov ecx, dword [ebp - 0xc]
lea edx, [ebp - 0x6c]
push edx
mov dword [ebp - 0x6c], 0x58
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x50], 0xa25ed8
mov dword [ebp - 0x40], edi
mov dword [ebp - 0x5c], 0xa25cd0
mov dword [ebp - 0x58], 0x208
mov dword [ebp - 0x30], ecx
mov dword [ebp - 0x4c], 0x104
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x38], 0x80806
call dword [0x6d8018]
test eax, eax
je 0x52ae67
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 - 0x14]
push eax
call dword [sym.imp.KERNEL32.dll_SetCurrentDirectoryA]
mov eax, esi
lea esp, [ebp - 0x78]
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0069528d
mov esp, ebp
pop ebp
ret