Function at 0x500d20
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x60c1dd
mov eax, dword fs:[0]
push eax
sub esp, 0x470
mov eax, dword [0x7f206c]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov byte [ebp - 0x469], dl
mov edi, ecx
mov dword [ebp - 0x47c], edi
mov dword [ebp - 0x478], edi
mov dword [ebp - 0x478], edi
mov dword [ebp - 4], 0
or ebx, 0xffffffff
mov eax, dword [ebp + 8]
mov esi, dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp byte [eax], 0
je 0x500da5
lea edx, [ebp + 8]
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x478]
call fcn.00418480
push dword [eax]
call esi
mov byte [ebp - 4], 0
cmp eax, ebx
jne 0x500e31
mov eax, dword [ebp + 8]
push ecx
mov ecx, esp
mov dword [ecx], eax
lea ecx, [eax - 8]
cmp ecx, 0x7a1354
je 0x500dbe
mov eax, 1
lock xadd dword [ecx], eax
mov edx, str..lnk
lea ecx, [ebp - 0x470]
call fcn.005268e0
mov edx, eax
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x474]
call fcn.00524830
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0x474]
add ecx, 0xfffffff8
mov dword [ebp + 8], eax
cmp ecx, 0x7a1354
je 0x500e09
mov eax, ebx
lock xadd dword [ecx], eax
test eax, eax
jne 0x500e09
push ecx
call fcn.004a8172
add esp, 4
mov byte [ebp - 4], 0
mov ecx, dword [ebp - 0x470]
add ecx, 0xfffffff8
cmp ecx, 0x7a1354
je 0x500e31
mov eax, ebx
lock xadd dword [ecx], eax
test eax, eax
jne 0x500e31
push ecx
call fcn.004a8172
add esp, 4
mov eax, dword [ebp + 8]
cmp byte [eax], 0
je 0x501015
lea edx, [ebp + 8]
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x478]
call fcn.00418480
push dword [eax]
call esi
mov byte [ebp - 4], 0
cmp eax, 0xffffffff
je 0x501015
mov dword [ebp - 0x474], 0
lea eax, [ebp - 0x470]
mov byte [ebp - 4], 5
push eax
push 0x7aebec
push 1
push 0
push 0x61b790
mov dword [ebp - 0x470], 0
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x500fe7
mov esi, dword [ebp - 0x470]
test esi, esi
je 0x500fed
mov eax, dword [esi]
mov ecx, dword [eax]
mov eax, dword [ebp - 0x474]
mov dword [ebp - 0x478], ecx
test eax, eax
je 0x500ec9
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x478]
lea eax, [ebp - 0x474]
mov dword [ebp - 0x474], 0
push eax
push 0x7aeca8
push esi
call ecx
test eax, eax
js 0x500fe7
mov esi, dword [ebp - 0x474]
lea edx, [ebp + 8]
lea ecx, [ebp - 0x478]
mov eax, dword [esi]
mov edi, dword [eax + 0x14]
call fcn.00418480
push 0
push dword [eax]
push esi
call edi
test eax, eax
js 0x500fe1
cmp byte [ebp - 0x469], 0
je 0x500f33
mov eax, dword [ebp - 0x470]
push 3
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x4c]
test eax, eax
js 0x500fe1
push 0x250
lea eax, [ebp - 0x468]
push 0
push eax
call fcn.004c0240
mov eax, dword [ebp - 0x470]
add esp, 0xc
mov ecx, dword [eax]
mov edx, dword [ecx + 0xc]
movzx ecx, byte [ebp - 0x469]
xor ecx, 1
lea ecx, [ecx*4 + 2]
push ecx
lea ecx, [ebp - 0x468]
push ecx
push 0x104
lea ecx, [ebp - 0x218]
push ecx
push eax
call edx
test eax, eax
js 0x500fe1
mov esi, dword [ebp - 0x47c]
lea eax, [ebp - 0x218]
push eax
mov ecx, esi
call fcn.0041d400
add esp, 4
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x474]
test eax, eax
je 0x500fab
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 7
mov eax, dword [ebp - 0x470]
test eax, eax
je 0x500fbf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp + 8]
add eax, 0xfffffff8
cmp eax, 0x7a1354
je 0x500fdd
lock xadd dword [eax], ebx
test ebx, ebx
jne 0x500fdd
push eax
call fcn.004a8172
add esp, 4
mov eax, esi
jmp 0x50103b
mov edi, dword [ebp - 0x47c]
mov esi, dword [ebp - 0x470]
mov byte [ebp - 4], 8
mov eax, dword [ebp - 0x474]
test eax, eax
je 0x501007
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov esi, dword [ebp - 0x470]
mov byte [ebp - 4], 9
test esi, esi
je 0x501015
mov eax, dword [esi]
push esi
call dword [eax + 8]
mov eax, dword [ebp + 8]
add eax, 0xfffffff8
mov dword [edi], 0x7a135c
cmp eax, 0x7a1354
je 0x501039
lock xadd dword [eax], ebx
test ebx, ebx
jne 0x501039
push eax
call fcn.004a8172
add esp, 4
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.004a7e5e
mov esp, ebp
pop ebp
ret