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

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x6d584d
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.00537430
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.0046b4d0
add esp, 0x10
test al, al
je 0x45448a
mov al, byte [ebp - 0x118]
lea ecx, [ebp - 0x118]
test al, al
je 0x45430b
js 0x454476
mov al, byte [ecx + 1]
inc ecx
test al, al
jne 0x4542fd
push edi
lea eax, [ebp - 0x118]
push 0x104
push eax
call fcn.00545940
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x118]
push 0x6e5dbc
push eax
call fcn.00547440
push 0x104
lea eax, [ebp - 0x118]
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00547620
lea eax, [ebp - 0x21c]
push 0x104
push eax
call fcn.00545940
add esp, 0x2c
push 0xffffffffffffffff
push 0x104
push esi
call fcn.00546a10
add esp, 4
push eax
lea eax, [ebp - 0x21c]
push eax
call fcn.00547440
mov edi, dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
lea eax, [ebp - 0x118]
add esp, 0x10
push eax
call edi
cmp eax, 0xffffffff
je 0x4543bf
lea eax, [ebp - 0x21c]
push eax
call edi
cmp eax, 0xffffffff
je 0x4543bf
call fcn.00548b70
push dword [0x7d9d70]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x20]
mov ecx, eax
call edx
test eax, eax
jle 0x4544b3
push str.Decided_to_rebuild_junction_n
call fcn.00537430
add esp, 4
mov dword [ebp - 0x10], 0
lea ecx, [ebp - 0x10]
push esi
call fcn.0049f670
mov dword [ebp - 4], 0
push dword [ebp - 0x10]
call fcn.00546670
push str.Removing_directory_n
call fcn.00537430
add esp, 8
lea eax, [ebp - 0x118]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
push str.Creating_junction_n
call fcn.00537430
mov eax, dword [ebp - 0x10]
mov ecx, 0x6e3a60
test eax, eax
cmovne ecx, eax
lea eax, [ebp - 0x118]
push ecx
push eax
call fcn.0046b550
add esp, 0xc
test al, al
jne 0x45449b
push str.Junction_creation_failed__bailing_on_launch_n
push 0x367
push str.c:_buildslave_steam_rel_client_win32_build_src_steamexemain.cpp
call fcn.00536d10
add esp, 0xc
test al, al
jne 0x45444c
int3
mov dword [ebp - 4], 0xffffffff
call fcn.005368d0
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.00537430
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.005368d0
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 0x4544c0
sub ecx, edx
lea esi, [ecx + 1]
call fcn.005368d0
push 0
push 0
push 0x36d
mov ecx, dword [eax]
push str.c:_buildslave_steam_rel_client_win32_build_src_steamexemain.cpp
push esi
mov edx, dword [ecx + 8]
mov ecx, eax
call edx
test eax, eax
je 0x454502
push esi
lea ecx, [ebp - 0x21c]
push ecx
push eax
call fcn.0054f320
add esp, 0xc
mov edx, eax
jmp 0x454504
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 0x454589
mov dword [ebp - 0x10], 2
mov eax, dword [ecx]
lea esi, [ebx*4]
push closesocket
push str._forcejunction
push dword [esi + eax]
call fcn.005476a0
mov edx, dword [ebp - 0x10]
add esp, 0xc
test eax, eax
jne 0x45457a
mov ecx, dword [edi]
cmp edx, ecx
jge 0x454569
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 0x454550
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 0x454522
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