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

Disassembly:
sub esp, 0x428
push ebx
push ecx
push edx
push esi
push edi
push ebp
mov esi, eax
mov dword [esp + 0x20], esi
mov edi, ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x30], edx
mov ebp, 0
mov eax, esi
mov ebx, 0x3a
call fcn.004eb904
jmp 0x46633a
cmp byte [esi + 1], 0x3a
jne 0x4662af
jmp 0x466343
cmp byte [esi + 1], 0x5c
je 0x4662af
jmp 0x46634c
cmp edx, 0
jne 0x4662ed
jmp 0x4662fa
mov eax, edi
mov ebx, esi
call fcn.004eba60
mov eax, edi
mov ebx, 0x2e
call fcn.004eb858
mov esi, eax
mov eax, 0
cmp esi, 0
je 0x4662dc
mov eax, esi
mov ebx, 0x5c
call fcn.004eb904
cmp esi, 0
jne 0x4662a8
jmp 0x4662fa
cmp ecx, 0
jne 0x466304
jmp 0x46654e
cmp eax, 0
jne 0x4662f5
mov byte [esi], 0
mov esi, 0
cmp esi, 0
je 0x4662e3
jmp 0x46654e
cmp byte [ecx], 0x2e
je 0x466315
mov eax, edi
mov ebx, 0x59e1e8
call fcn.004eba04
mov eax, edi
mov ebx, ecx
call fcn.004eba04
jmp 0x46654e
mov ecx, dword [esp + 0x20]
mov eax, ecx
call fcn.00420750
cmp byte [ecx + eax - 1], 0x2e
je 0x4663b2
jmp 0x4663c2
cmp eax, 0
jne 0x466292
cmp byte [esi], 0x5c
je 0x46629d
mov eax, esi
call fcn.00420750
cmp eax, 0x104
jae 0x466549
mov eax, 0x100
mov ebx, dword [eax + 0x59e1f4]
mov dword [esp + eax + 0x33c], ebx
sub eax, 4
jae 0x466363
lea eax, [esp + 0x23c]
mov dword [esp + 0x2c], eax
push eax
mov eax, esi
lea ebx, [esp + 0x23c]
mov dword [esp + 0x28], ebx
lea esi, [esp + 0x138]
mov ecx, esi
lea edi, [esp + 0x38]
mov edx, edi
call fcn.004eb424
cmp byte [esp + 0x23c], 0
je 0x466323
jmp 0x4663c2
mov byte [esp + 0x23c], 0x2e
mov byte [esp + 0x23d], 0
cmp byte [esp + 0x238], 0
jne 0x466417
lea eax, [esp + 0x33c]
push eax
push 0x104
call sub.KERNEL32.dll_GetCurrentDirectoryA
cmp eax, 0
jne 0x4663ef
call sub.KERNEL32.dll_GetLastError
mov ebp, eax
jmp 0x46654e
cmp byte [esp + 0x33d], 0x3a
jne 0x466417
mov al, byte [esp + 0x33c]
mov byte [esp + 0x238], al
mov byte [esp + 0x239], 0x3a
mov byte [esp + 0x23a], 0
cmp byte [esp + 0x134], 0x5c
je 0x46650f
cmp byte [esp + 0x33c], 0
jne 0x4664b9
lea ecx, [esp + 0x33c]
mov dword [esp + 0x1c], ecx
mov eax, ecx
call fcn.004eba60
mov eax, ecx
mov ebx, esi
call fcn.004eba04
mov eax, esi
mov ebx, dword [esp + 0x1c]
call fcn.004eba60
push ebx
push 0x104
call sub.KERNEL32.dll_GetCurrentDirectoryA
cmp eax, 0
je 0x4663e3
push esi
call sub.KERNEL32.dll_SetCurrentDirectoryA
cmp eax, 0
je 0x4663e3
push esi
push 0x104
call sub.KERNEL32.dll_GetCurrentDirectoryA
cmp eax, 0
je 0x4663e3
push ebx
call sub.KERNEL32.dll_SetCurrentDirectoryA
cmp eax, 0
je 0x4663e3
cmp byte [esp + 0x135], 0x3a
jne 0x46650f
mov eax, esi
lea ebx, [esp + 0x136]
call fcn.004eba60
jmp 0x46650f
cmp byte [esp + 0x134], 0
je 0x4664df
lea ecx, [esp + 0x33c]
mov eax, ecx
mov ebx, 0x59e1ec
call fcn.004eba04
mov eax, ecx
mov ebx, esi
call fcn.004eba04
cmp byte [esp + 0x33d], 0x3a
jne 0x4664fc
mov ebx, 2
jmp 0x466501
cmp byte [esp + 0x23c], 0
je 0x46651a
jmp 0x466523
mov ebx, 0
mov eax, esi
lea ebx, [esp + ebx + 0x33c]
call fcn.004eba60
mov ebx, dword [esp + 0x18]
cmp ebx, 0
jne 0x4664f0
jmp 0x466523
mov eax, dword [esp + 0x2c]
call fcn.004eba60
cmp ebp, 0
jne 0x46654e
cmp dword [esp + 0x30], 0
je 0x466531
jmp 0x466535
mov ebx, dword [esp + 0x2c]
push ebx
mov eax, dword [esp + 0x2c]
mov ebx, dword [esp + 0x28]
mov ecx, esi
mov edx, edi
call fcn.004eb364
jmp 0x46654e
mov ebp, 0x2d
mov eax, ebp
pop ebp
pop edi
pop esi
pop edx
pop ecx
pop ebx
add esp, 0x428
ret