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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6bf04d
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.00522780
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.0046b110
add esp, 0x10
test al, al
je 0x45445a
mov al, byte [ebp - 0x118]
lea ecx, [ebp - 0x118]
test al, al
je 0x4542db
js 0x454446
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4542cd
push edi
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.00530c40
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x118]
push 0x6cee70
push eax
call fcn.00532630
push 0x104
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00532810
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.00530c40
add esp, 0x2c
push 0xffffffffffffffff
push 0x104
push esi
call fcn.00531c90
add esp, 4
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00532630
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x118]
add esp, 0x10
push eax
call edi
cmp eax, 0xffffffff
je 0x45438f
lea eax, [ebp - 0x21c]
push eax
call edi
cmp eax, 0xffffffff
je 0x45438f
call fcn.00533d60
push dword [0x7b8fdc]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
mov ecx, eax
call edx
test eax, eax
jle 0x454483
push str.Decided_to_rebuild_junction_n
call fcn.00522780
add esp, 4
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
push esi
call fcn.0049ec40
mov dword [ebp - 4], 0
push dword [ebp - 0x10]
call fcn.005318f0
push str.Removing_directory_n
call fcn.00522780
add esp, 8
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push str.Creating_junction_n
call fcn.00522780
mov eax, dword [ebp - 0x10]
mov ecx, 0x6cca60
test eax, eax
cmovne ecx, eax
lea eax, [ebp - 0x118]
push ecx
push eax
call fcn.0046b190
add esp, 0xc
test al, al
jne 0x45446b
push str.Junction_creation_failed__bailing_on_launch_n
push 0x36a
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_src_steamexemain.cpp
call fcn.00522050
add esp, 0xc
test al, al
jne 0x45441c
int3
mov dword [ebp - 4], 0xffffffff
call fcn.00521c10
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.00522780
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.00521c10
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 0x454490
sub ecx, edx
lea esi, [ecx + 1]
call fcn.00521c10
push 0
push 0
push 0x370
mov ecx, dword [eax]
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_src_steamexemain.cpp
push esi
mov edx, dword [ecx + 8]
mov ecx, eax
call edx
test eax, eax
je 0x4544d2
push esi
lea ecx, [ebp - 0x21c]
push ecx
push eax
call fcn.0053a4d0
add esp, 0xc
mov edx, eax
jmp 0x4544d4
xor edx, edx
mov ecx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
push ebx
mov ebx, 1
mov eax, dword [ecx]
mov dword [ebp - 0x14], ebx
mov dword [eax], edx
cmp dword [edi], ebx
jle 0x454559
mov dword [ebp - 0x10], 2
mov eax, dword [ecx]
lea esi, [ebx*4]
push closesocket
push str._forcejunction
push dword [esi + eax]
call fcn.00532890
mov edx, dword [ebp - 0x10]
add esp, 0xc
test eax, eax
jne 0x45454a
mov ecx, dword [edi]
cmp edx, ecx
jge 0x454539
mov ebx, dword [ebp + 0xc]
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 0x454520
mov ebx, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp + 0xc]
dec ebx
dec edx
dec ecx
mov dword [edi], ecx
mov eax, dword [eax]
mov dword [eax + ecx*4], 0
mov ecx, dword [ebp + 0xc]
inc ebx
inc edx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], edx
cmp ebx, dword [edi]
jl 0x4544f2
mov ecx, dword [ebp - 0xc]
mov al, 1
pop ebx
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret