Function at 0x454cc0
Capabilities:
Check if file exists
Delete directory
Get file attributes

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6d96ed
push eax
mov eax, dword [ebp + 0xc]
mov dword fs:[0], esp
sub esp, 0x210
mov eax, dword [eax]
push esi
mov esi, dword [eax]
push esi
push str.Relaunching__s_via_junction_n
call fcn.0053b630
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.0046cae0
add esp, 0x10
test al, al
je 0x454eaa
mov al, byte [ebp - 0x118]
lea ecx, [ebp - 0x118]
test al, al
je 0x454d2b
js 0x454e96
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x454d1d
push edi
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.00549c50
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x118]
push 0x6e9f5c
push eax
call fcn.0054b840
push 0x104
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0054ba20
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.00549c50
add esp, 0x2c
push 0xffffffffffffffff
push 0x104
push esi
call fcn.0054adf0
add esp, 4
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.0054b840
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x118]
add esp, 0x10
push eax
call edi
cmp eax, 0xffffffff
je 0x454ddf
lea eax, [ebp - 0x21c]
push eax
call edi
cmp eax, 0xffffffff
je 0x454ddf
call fcn.0054d230
push dword [0x7de0f0]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
mov ecx, eax
call edx
test eax, eax
jle 0x454ed3
push str.Decided_to_rebuild_junction_n
call fcn.0053b630
add esp, 4
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
push esi
call fcn.004a0550
mov dword [ebp - 4], 0
push dword [ebp - 0x10]
call fcn.0054a990
push str.Removing_directory_n
call fcn.0053b630
add esp, 8
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push str.Creating_junction_n
call fcn.0053b630
mov eax, dword [ebp - 0x10]
mov ecx, 0x6e7a86
test eax, eax
cmovne ecx, eax
lea eax, [ebp - 0x118]
push ecx
push eax
call fcn.0046cb60
add esp, 0xc
test al, al
jne 0x454ebb
push str.Junction_creation_failed__bailing_on_launch_n
push 0x38f
push str.C:_buildworker_steam_rel_client_win32_build_src_steamexemain.cpp
call fcn.0053aea0
add esp, 0xc
test al, al
jne 0x454e6c
int3
mov dword [ebp - 4], 0xffffffff
call fcn.0053aa60
push 0
push dword [ebp - 0x10]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x1c]
pop edi
xor al, al
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
lea eax, [ebp - 0x118]
push eax
push str.Bad_ProgramData_folder__contains_non_ascii:__s_n
call fcn.0053b630
add esp, 8
xor al, al
pop esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret
mov dword [ebp - 4], 0xffffffff
call fcn.0053aa60
push 0
push dword [ebp - 0x10]
mov ecx, eax
mov edx, dword [eax]
call dword [edx + 0x1c]
lea ecx, [ebp - 0x21c]
lea edx, [ecx + 1]
lea esp, [esp]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x454ee0
sub ecx, edx
lea esi, [ecx + 1]
call fcn.0053aa60
push 0
push 0
push 0x395
mov ecx, dword [eax]
push str.C:_buildworker_steam_rel_client_win32_build_src_steamexemain.cpp
push esi
mov edx, dword [ecx + 8]
mov ecx, eax
call edx
test eax, eax
je 0x454f22
push esi
lea ecx, [ebp - 0x21c]
push ecx
push eax
call fcn.00553b80
add esp, 0xc
mov edx, eax
jmp 0x454f24
xor edx, edx
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov eax, dword [ecx]
mov dword [eax], edx
mov edx, 1
mov dword [ebp - 0x10], edx
cmp dword [edi], edx
jle 0x454fbf
push ebx
mov ebx, 2
mov dword [ebp - 0x14], ebx
jmp 0x454f50
mov eax, dword [ecx]
lea esi, [edx*4]
push closesocket
push str._forcejunction
push dword [esi + eax]
call fcn.0054baa0
add esp, 0xc
test eax, eax
jne 0x454fac
mov ecx, dword [edi]
cmp ebx, ecx
jge 0x454f96
mov edx, ebx
mov ebx, dword [ebp + 0xc]
lea ecx, [ecx]
mov ecx, dword [ebx]
lea esi, [esi + 4]
inc edx
mov eax, dword [ecx + esi]
mov dword [ecx + esi - 4], eax
mov ecx, dword [edi]
cmp edx, ecx
jl 0x454f80
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
dec ebx
mov eax, dword [ebp + 0xc]
dec edx
dec ecx
mov dword [edi], ecx
mov eax, dword [eax]
mov dword [eax + ecx*4], 0
jmp 0x454faf
mov edx, dword [ebp - 0x10]
mov ecx, dword [ebp + 0xc]
inc edx
inc ebx
mov dword [ebp - 0x10], edx
mov dword [ebp - 0x14], ebx
cmp edx, dword [edi]
jl 0x454f50
pop ebx
mov ecx, dword [ebp - 0xc]
mov al, 1
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret