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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x238
push ebx
push esi
push edi
push 0x105
mov edi, 0x466
push edi
mov esi, ecx
call fcn.0048cb12
lea ecx, [ebp - 4]
mov dword [ebp - 4], eax
lea ebx, [esi + 0x4c]
call fcn.004a0ff9
mov ecx, eax
call fcn.004b696a
push eax
push 0x511690
call fcn.0049f9e2
pop ecx
pop ecx
mov edx, eax
mov ecx, ebx
call fcn.0049fe43
mov edx, dword [0x8954d8]
mov ecx, dword [0x8954ec]
push 0x1807
push ebx
call fcn.0042d491
lea ecx, [ebp - 4]
test al, al
jne 0x4c234f
call fcn.004a0c7d
xor al, al
pop edi
pop esi
pop ebx
leave
ret
call fcn.004a0ff9
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov dword [ebp - 0xc], eax
cmp eax, 0xffffffff
jne 0x4c23b3
mov ecx, dword [ebp - 4]
test ecx, ecx
je 0x4c237c
mov ebx, dword [0x8954e0]
xor eax, eax
cmp word [ecx], ax
sete al
test al, al
je 0x4c2382
mov ebx, dword [0x8954c4]
lea ecx, [ebp - 4]
mov dword [ebp - 0x2c], 1
mov dword [ebp - 0x28], 0x30
call fcn.004a0ff9
push eax
lea eax, [ebp - 0x2c]
push ebx
push eax
call fcn.00477c73
add esp, 0xc
push edi
mov ecx, esi
call fcn.004c22b5
lea ecx, [ebp - 4]
jmp 0x4c2343
push 0x42d
mov ecx, esi
call fcn.00476271
mov ecx, eax
mov edx, 0x532b58
mov dword [ebp - 0x30], ecx
call fcn.0049fbbd
xor ebx, ebx
inc ebx
test al, al
jne 0x4c240d
mov ecx, dword [ebp - 0x30]
mov edx, 0x532b50
call fcn.0049fbbd
test al, al
jne 0x4c240d
push dword [0x8954c8]
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x24
call fcn.00477c73
pop ecx
pop ecx
cmp eax, 6
je 0x4c240d
push 0x42d
jmp 0x4c23a7
mov eax, dword [esi]
push ebx
mov ecx, esi
mov byte [esi + 0x48], 0
call dword [eax + 0x4c]
test byte [ebp - 0xc], 0x10
je 0x4c2515
push ebx
push 5
lea eax, [ebp - 0x238]
push eax
push 0
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x4c2470
lea eax, [ebp - 0x238]
push eax
lea ecx, [ebp - 4]
call fcn.004a1101
test al, al
je 0x4c2470
push dword [0x8954dc]
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x124
call fcn.00477c73
pop ecx
pop ecx
cmp eax, 6
jne 0x4c23a6
lea ecx, [ebp - 4]
call fcn.004a0ff9
mov ecx, dword [esi + 0x34]
push eax
call fcn.00409f8e
mov ecx, esi
test al, al
jne 0x4c24b8
push edi
call fcn.004c22b5
mov esi, dword [0x8954e0]
lea ecx, [ebp - 4]
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x30
call fcn.004a0ff9
push eax
lea eax, [ebp - 0x2c]
push esi
push eax
call fcn.00477c73
add esp, 0xc
jmp 0x4c23ae
call fcn.004c1b4f
push eax
push 0
mov ecx, esi
mov dword [ebp - 0xc], eax
call fcn.004c2009
mov ecx, dword [ebp - 0xc]
mov dl, bl
mov byte [ebp - 5], al
call fcn.00479b79
cmp byte [ebp - 5], 0
je 0x4c23a6
mov ecx, dword [esi + 0x34]
call fcn.0040a3b1
or eax, edx
mov ecx, esi
jne 0x4c2529
push edi
call fcn.004c22b5
push dword [0x8954b8]
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x30
call fcn.00477c73
pop ecx
pop ecx
jmp 0x4c23ae
lea ecx, [ebp - 4]
call fcn.004a0ff9
push eax
mov ecx, esi
call fcn.004c1d8d
test al, al
jmp 0x4c24db
call fcn.004c1b6e
mov ecx, dword [esi + 0x34]
push eax
call fcn.0040a358
mov ecx, esi
test al, al
jne 0x4c2573
push 0x430
call fcn.004c22b5
push dword [0x8954e4]
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x2c], ebx
mov dword [ebp - 0x28], 0x30
call fcn.00477c73
pop ecx
pop ecx
xor bl, bl
lea ecx, [ebp - 4]
call fcn.004a0c7d
mov al, bl
jmp 0x4c234a
push 0
push edi
call fcn.0048cb12
mov edx, eax
mov ecx, 0x890144
call fcn.004b8011
mov eax, dword [esi + 0x34]
mov edi, dword [eax]
push 0x54b
mov ecx, esi
add edi, 4
call fcn.00476211
mov ecx, dword [esi + 0x34]
movzx eax, al
push eax
call dword [edi]
jmp 0x4c2564