Function at 0x4abec0
Capabilities:
Check if file exists
Get common file path

Disassembly:
sub esp, 0x304
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 4]
push ebp
push esi
push edi
mov edi, dword [esp + 0x314]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
xor eax, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edi, [esp + 0x10]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edx, ecx
cmp edx, 3
jl 0x4ac22f
lea ebp, [edx - 2]
test ebp, ebp
jle 0x4abf26
mov cl, 0x3a
mov al, 0x5c
cmp byte [esp + ebp + 0x10], cl
jne 0x4abf21
cmp byte [esp + ebp + 0x11], al
je 0x4abf26
dec ebp
test ebp, ebp
jg 0x4abf15
test ebp, ebp
je 0x4ac0b6
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
lea esi, [esp + 0x110]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov dword [esp + 0xc], esi
mov eax, ecx
mov esi, edi
mov edi, dword [esp + 0xc]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, edx
and ecx, 3
test edx, edx
rep movsb byte es:[edi], byte [esi]
jle 0x4ac02b
mov dl, 0x42
mov cl, byte [esp + eax + 0x10]
cmp cl, 0x2e
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x65
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x45
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x64
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x44
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x6f
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x4f
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x63
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x43
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x73
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x53
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x70
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x50
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], 0x62
je 0x4ac02b
cmp cl, cl
jne 0x4ac022
cmp byte [esp + eax + 0x11], dl
je 0x4ac02b
cmp cl, cl
je 0x4ac02b
dec eax
test eax, eax
jg 0x4abf68
sub eax, ebp
mov byte [esp + 0x10], 0
lea ecx, [eax + 5]
test ecx, ecx
jle 0x4ac052
mov edx, ecx
lea esi, [esp + ebp + 0x10f]
lea edi, [esp + 0x10]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov byte [esp + eax + 0x15], 0
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
lea eax, [esp + 0x10]
mov esi, ecx
push eax
push str.tempchar::
mov ecx, 0xf558a0
call fcn.004f0087
mov ecx, eax
call fcn.004f0087
push 0x402150
push 0xa
mov ecx, eax
call fcn.004eff40
mov ecx, eax
call fcn.004016a0
test esi, esi
mov eax, esi
jle 0x4ac0a9
cmp byte [esp + eax + 0x10], 0x2e
je 0x4ac0a9
dec eax
test eax, eax
jg 0x4ac09d
test eax, eax
mov byte [esp + eax + 0x14], 0
jne 0x4ac1d5
mov esi, dword [esp + 0x314]
or ecx, 0xffffffff
mov edi, esi
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov byte [esp + 0x10], 0
test ecx, ecx
jle 0x4ac0e4
mov dl, byte [esi + eax + 1]
cmp dl, 0x2e
mov byte [esp + eax + 0x10], dl
je 0x4ac0e4
inc eax
cmp eax, ecx
jl 0x4ac0d2
cmp eax, ecx
je 0x4ac22f
mov cl, byte [eax + esi + 2]
mov dl, byte [eax + esi + 3]
mov byte [esp + eax + 0x11], cl
mov cl, byte [eax + esi + 4]
mov byte [esp + eax + 0x12], dl
lea edx, [esp + 0x290]
push 0x80
mov byte [esp + eax + 0x17], cl
push edx
mov byte [esp + eax + 0x1c], 0
call dword [sym.imp.KERNEL32.dll_GetSystemDirectoryA]
lea eax, [esp + 0x210]
push 0x80
push eax
call dword [sym.imp.KERNEL32.dll_GetWindowsDirectoryA]
lea edi, [esp + 0x10]
or ecx, 0xffffffff
xor eax, eax
lea edx, [esp + 0x110]
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
push str.System32
mov eax, ecx
mov esi, edi
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x114]
push ecx
call fcn.004f2d80
add esp, 8
test eax, eax
jne 0x4ac1b3
lea edx, [esp + 0x110]
push str.system32
push edx
call fcn.004f2d80
add esp, 8
test eax, eax
jne 0x4ac1b3
lea eax, [esp + 0x110]
push str.SYSTEM32
push eax
call fcn.004f2d80
add esp, 8
test eax, eax
jne 0x4ac1b3
lea ecx, [esp + 0x110]
lea edx, [esp + 0x290]
push ecx
jmp 0x4ac1c2
lea ecx, [esp + 0x110]
lea edx, [esp + 0x210]
push ecx
push edx
lea eax, [esp + 0x18]
push str._s_s
push eax
call fcn.004f175f
add esp, 0x10
push 0x100
lea ecx, [esp + 0x14]
push 0
push ecx
call fcn.004f2f2b
add esp, 0xc
cmp eax, 0xffffffff
je 0x4ac206
push eax
call fcn.004f2e00
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebp
add esp, 0x304
ret
push 0xffffffffffffffff
call fcn.004f2e00
add esp, 4
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x4ac22f
cmp eax, 3
je 0x4ac22f
pop edi
pop esi
mov eax, 1
pop ebp
add esp, 0x304
ret
pop edi
pop esi
or eax, 0xffffffff
pop ebp
add esp, 0x304
ret