Function at 0xa2577b
Capabilities:
Check if file exists
Get common file path
Set current directory

Disassembly:
push 0x230
push 0xa259a0
call fcn.00a22756
mov dword [ebp - 0x23c], edx
push 0x5c
pop eax
cmp word [ecx], ax
je 0xa35672
call fcn.00a22258
mov esi, eax
mov dword [ebp - 0x240], esi
test esi, esi
je 0xa3a91b
xor ebx, ebx
mov dword [ebp - 4], ebx
mov ecx, esi
lea edx, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
cmp ax, bx
jne 0xa257bb
sub ecx, edx
sar ecx, 1
lea eax, [esi + ecx*2]
mov dword [ebp - 0x234], eax
cmp eax, esi
jbe 0xa257e2
cmp word [eax - 2], 0x20
je 0xa35681
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x230]
push eax
push 0x104
call dword [sym.imp.api_ms_win_core_processenvironment_l1_2_0.dll_GetCurrentDirectoryW]
push dword [ebp - 0x230]
mov ebx, dword [sym.imp.msvcrt.dll_towupper]
call ebx
movzx eax, ax
mov dword [ebp - 0x238], eax
push 0x3d
pop eax
mov word [ebp - 0x24], ax
movzx eax, word [esi]
push eax
call dword [sym.imp.msvcrt.dll_iswalpha]
pop ecx
pop ecx
push 0x3a
pop edi
test eax, eax
je 0xa35596
cmp word [esi + 2], di
jne 0xa35596
movzx eax, word [esi]
push eax
call ebx
pop ecx
mov word [ebp - 0x22], ax
mov word [ebp - 0x20], di
xor eax, eax
mov word [ebp - 0x1e], ax
lea eax, [ebp - 0x234]
push eax
lea eax, [ebp - 0x230]
push eax
mov ebx, 0x104
push ebx
push esi
call dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_GetFullPathNameW]
test eax, eax
je 0xa35689
cmp eax, ebx
ja 0xa3a957
cmp word [ebp - 0x230], 0
je 0xa3a91f
cmp word [ebp - 0x22e], di
jne 0xa3a91f
lea ecx, [ebp - 0x230]
lea edx, [ecx + 2]
xor edi, edi
mov ax, word [ecx]
add ecx, 2
cmp ax, di
jne 0xa2589e
sub ecx, edx
sar ecx, 1
lea eax, [ebp - 0x230]
lea eax, [eax + ecx*2]
push 0x5c
pop edx
mov dword [ebp - 0x234], eax
lea ecx, [ebp - 0x22a]
cmp eax, ecx
jbe 0xa258d3
cmp word [eax - 2], dx
je 0xa3115e
xor ecx, ecx
mov word [eax], cx
lea eax, [ebp - 0x230]
push eax
mov ebx, dword [sym.imp.api_ms_win_core_file_l1_2_1.dll_GetFileAttributesW]
call ebx
cmp eax, 0xffffffff
je 0xa3a974
cmp byte [0xa45044], 0
je 0xa25912
push edi
mov edx, 0x104
lea ecx, [ebp - 0x230]
call fcn.00a255c5
test eax, eax
je 0xa3a957
mov edi, dword [ebp - 0x23c]
cmp edi, 2
je 0xa2593a
lea eax, [ebp - 0x230]
push eax
call ebx
cmp eax, 0xffffffff
je 0xa3a9ac
test eax, 0x410
je 0xa3a9bb
test edi, edi
je 0xa2594f
cmp edi, 1
jne 0xa25964
mov eax, dword [ebp - 0x238]
cmp ax, word [ebp - 0x22]
jne 0xa25964
lea eax, [ebp - 0x230]
push eax
call dword [sym.imp.api_ms_win_core_processenvironment_l1_2_0.dll_SetCurrentDirectoryW]
test eax, eax
je 0xa35689
lea edx, [ebp - 0x230]
lea ecx, [ebp - 0x24]
call fcn.00a2269e
test eax, eax
jne 0xa3a908
push eax
mov edx, 0x104
mov ecx, 0xa45a20
call fcn.00a2557c
mov dword [ebp - 4], 0xfffffffe
call fcn.00a259c1
xor eax, eax
call fcn.00a2279e
ret
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
add byte [eax], al
mov eax, dword [ebp - 0x238]
jmp 0xa2583f
cmp word [ecx + 2], ax
jne 0xa2579c
jmp 0xa35f02
add eax, 0xfffffffe
jmp 0xa257cd
call dword [sym.imp.api_ms_win_core_errorhandling_l1_1_1.dll_GetLastError]
jmp 0xa35f0c
mov eax, 0x400023c9
jmp 0xa25998
mov esi, eax
jmp 0xa3a93d