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

Disassembly:
push 0xc20
mov eax, 0x5f0d46
call fcn.0044e95a
call fcn.00403028
mov ecx, eax
call fcn.0052ea5b
push eax
lea ecx, [ebp - 0xc08]
call fcn.00404479
and dword [ebp - 4], 0
lea eax, [ebp - 0xc08]
push 8
pop esi
cmp dword [ebp - 0xbf4], esi
lea ecx, [ebp - 0xc24]
cmovae eax, dword [ebp - 0xc08]
push eax
call fcn.0040b20c
push 0x5c
push dword [ebp - 0xc24]
mov byte [ebp - 4], 1
call fcn.00543ce7
pop ecx
pop ecx
test eax, eax
jne 0x40bce6
or eax, 0xffffffff
jmp 0x40bcee
sub eax, dword [ebp - 0xc24]
sar eax, 1
inc eax
lea ecx, [ebp - 0xc24]
push eax
lea eax, [ebp - 0xc28]
push eax
call fcn.0040ba13
push eax
lea ecx, [ebp - 0xc24]
mov byte [ebp - 4], 2
call fcn.0040b25f
mov ecx, dword [ebp - 0xc28]
mov byte [ebp - 4], 1
lea ecx, [ecx - 0x10]
call fcn.0040bb8d
push str..temp
lea eax, [ebp - 0xc08]
push eax
lea eax, [ebp - 0xc20]
push eax
call fcn.0040b106
add esp, 0xc
cmp dword [ebp - 0xc0c], esi
lea eax, [ebp - 0xc20]
mov byte [ebp - 4], 3
cmovae eax, dword [ebp - 0xc20]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x40bd91
cmp dword [ebp - 0xbf4], esi
lea ecx, [ebp - 0xc08]
push 1
cmovae ecx, dword [ebp - 0xc08]
lea eax, [ebp - 0xc20]
cmp dword [ebp - 0xc0c], esi
push ecx
cmovae eax, dword [ebp - 0xc20]
push eax
call dword [sym.imp.KERNEL32.dll_MoveFileExW]
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, 0x3e8
push edi
call ebx
call fcn.0040b9d5
mov ecx, eax
call fcn.00410921
push 0x4f
call fcn.0040b9d5
mov ecx, eax
call fcn.0040f179
push 0x91
mov esi, eax
call fcn.0040b9d5
mov ecx, eax
call fcn.0040ef43
mov dword [ebp - 0xc28], eax
test esi, esi
je 0x40bed9
push edi
xor esi, esi
lea eax, [ebp - 0x3f8]
push esi
push eax
call fcn.005426c0
push edi
lea eax, [ebp - 0xbf0]
push esi
push eax
call fcn.005426c0
push 0x208
lea eax, [ebp - 0x600]
push esi
push eax
call fcn.005426c0
add esp, 0x24
push str..wnpf
push dword [ebp - 0xc28]
call fcn.00403028
mov ecx, eax
call fcn.0052eaef
push eax
lea eax, [ebp - 0x3f8]
push str._sSkin_s_s
push eax
call fcn.00404de4
mov esi, dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
lea eax, [ebp - 0x3f8]
add esp, 0x14
push eax
call esi
test eax, eax
jne 0x40be85
push str..wnpf
push dword [ebp - 0xc28]
call fcn.00403028
mov ecx, eax
call fcn.0051636e
push eax
lea eax, [ebp - 0x3f8]
push str._sAllSkin_s_s
push eax
call fcn.00404de4
add esp, 0x14
lea eax, [ebp - 0x3f8]
push eax
call esi
test eax, eax
je 0x40bed9
push str.WnSkinInst.exe
call fcn.00403028
mov ecx, eax
call fcn.00516386
push eax
lea eax, [ebp - 0x600]
push 0x5f9edc
push eax
call fcn.00404de4
lea eax, [ebp - 0x3f8]
push eax
lea eax, [ebp - 0x600]
push eax
lea eax, [ebp - 0xbf0]
push str.__s___untie__s
push eax
call fcn.00404de4
lea eax, [ebp - 0xbf0]
push eax
call fcn.0052f535
add esp, 0x24
push edi
call ebx
mov esi, 0x8c
push esi
call fcn.0040b9d5
mov ecx, eax
call fcn.0040f179
inc eax
push eax
push esi
call fcn.0040b9d5
mov ecx, eax
call fcn.004114c9
inc esi
push esi
call fcn.0040b9d5
mov ecx, eax
call fcn.0040f179
inc eax
push eax
push esi
call fcn.0040b9d5
mov ecx, eax
call fcn.004114c9
mov esi, 0x8e
push esi
call fcn.0040b9d5
mov ecx, eax
call fcn.0040f179
inc eax
push eax
push esi
call fcn.0040b9d5
mov ecx, eax
call fcn.004114c9
push 0x208
xor ebx, ebx
lea eax, [ebp - 0x808]
push ebx
push eax
call fcn.005426c0
add esp, 0xc
lea eax, [ebp - 0x808]
push eax
push 0x104
call dword [sym.imp.KERNEL32.dll_GetTempPathW]
lea eax, [ebp - 0x808]
push eax
lea ecx, [ebp - 0xc2c]
call fcn.0040b20c
push str.MutualTempFile.ini
lea ecx, [ebp - 0xc2c]
mov byte [ebp - 4], 4
call fcn.0040b2d9
mov ecx, dword [ebp - 0xc2c]
lea ecx, [ecx - 0x10]
call fcn.0040bb8d
push ebx
push 1
lea ecx, [ebp - 0xc20]
call fcn.004037bf
mov ecx, dword [ebp - 0xc24]
lea ecx, [ecx - 0x10]
call fcn.0040bb8d
push ebx
push 1
lea ecx, [ebp - 0xc08]
call fcn.004037bf
call fcn.0044e904
ret