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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6d2f1d
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.00534bc0
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.0046b510
add esp, 0x10
test al, al
je 0x4544da
mov al, byte [ebp - 0x118]
lea ecx, [ebp - 0x118]
test al, al
je 0x45435b
js 0x4544c6
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x45434d
push edi
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.00543040
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x118]
push 0x6e2e20
push eax
call fcn.00544b40
push 0x104
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00544d20
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.00543040
add esp, 0x2c
push 0xffffffffffffffff
push 0x104
push esi
call fcn.00544110
add esp, 4
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00544b40
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x118]
add esp, 0x10
push eax
call edi
cmp eax, 0xffffffff
je 0x45440f
lea eax, [ebp - 0x21c]
push eax
call edi
cmp eax, 0xffffffff
je 0x45440f
call fcn.00546270
push dword [0x7d6c70]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
mov ecx, eax
call edx
test eax, eax
jle 0x454503
push str.Decided_to_rebuild_junction_n
call fcn.00534bc0
add esp, 4
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
push esi
call fcn.0049f6a0
mov dword [ebp - 4], 0
push dword [ebp - 0x10]
call fcn.00543d70
push str.Removing_directory_n
call fcn.00534bc0
add esp, 8
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push str.Creating_junction_n
call fcn.00534bc0
mov eax, dword [ebp - 0x10]
mov ecx, 0x6e0a80
test eax, eax
cmovne ecx, eax
lea eax, [ebp - 0x118]
push ecx
push eax
call fcn.0046b590
add esp, 0xc
test al, al
jne 0x4544eb
push str.Junction_creation_failed__bailing_on_launch_n
push 0x367
push str.c:_buildslave_steam_rel_client_hotfix_win32_build_src_steamexemain.cpp
call fcn.00534490
add esp, 0xc
test al, al
jne 0x45449c
int3
mov dword [ebp - 4], 0xffffffff
call fcn.00534050
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.00534bc0
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.00534050
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 0x454510
sub ecx, edx
lea esi, [ecx + 1]
call fcn.00534050
push 0
push 0
push 0x36d
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 0x454552
push esi
lea ecx, [ebp - 0x21c]
push ecx
push eax
call fcn.0054ca20
add esp, 0xc
mov edx, eax
jmp 0x454554
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 0x4545d9
mov dword [ebp - 0x10], 2
mov eax, dword [ecx]
lea esi, [ebx*4]
push closesocket
push str._forcejunction
push dword [esi + eax]
call fcn.00544da0
mov edx, dword [ebp - 0x10]
add esp, 0xc
test eax, eax
jne 0x4545ca
mov ecx, dword [edi]
cmp edx, ecx
jge 0x4545b9
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 0x4545a0
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 0x454572
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