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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
sub esp, 0x498
mov eax, dword [0x1027474]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp + 0x10]
push ebx
push esi
push edi
mov dword [ebp - 0x494], eax
mov eax, dword [ebp + 0x14]
xor edi, edi
mov dword [ebp - 0x490], ecx
mov dword [ebp - 0x498], eax
cmp eax, edi
je 0x102436e
cmp dword [ebp + 0x18], edi
je 0x102436e
xor edx, edx
mov word [eax], dx
cmp ecx, edi
je 0x102436e
lea eax, [ebp - 0x478]
test eax, eax
je 0x1024146
xor eax, eax
mov word [ebp - 0x478], ax
lea eax, [ebp - 0x20c]
test eax, eax
je 0x10240c2
xor eax, eax
cmp dword [ebp + 8], 2
mov word [ebp - 0x20c], ax
mov ebx, 0x1027cd0
je 0x1023f79
cmp dword [ebp + 8], 3
jne 0x1023f84
xor edi, edi
inc edi
mov dword [ebp - 0x480], ebx
jmp 0x1023f8e
mov dword [ebp - 0x480], 0x1027ac8
mov ecx, dword [ebp - 0x480]
xor eax, eax
cmp ax, word [ecx]
jne 0x10240a1
and dword [ebp - 0x47c], eax
lea eax, [ebp - 0x47c]
push eax
push 0x1007608
push 1
push 0
push 0x100764c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov esi, eax
test esi, esi
jl 0x102408f
and dword [ebp - 0x484], 0
mov ecx, 0x1007788
test edi, edi
jne 0x1023fdf
mov ecx, 0x1007798
mov eax, dword [ebp - 0x47c]
mov edx, dword [eax]
lea esi, [ebp - 0x484]
push esi
push ecx
push eax
call dword [edx + 0x18]
mov esi, eax
test esi, esi
jl 0x102407f
mov eax, dword [ebp - 0x484]
and dword [ebp - 0x488], 0
mov ecx, dword [eax]
lea edx, [ebp - 0x488]
push edx
push 0
push eax
call dword [ecx + 0x18]
mov esi, eax
test esi, esi
jl 0x1024073
push dword [ebp - 0x488]
push 0x1007618
push 0x104
test edi, edi
jne 0x102403a
push 0x1027ac8
jmp 0x102403b
push ebx
call fcn.01007b68
mov esi, eax
add esp, 0x10
test esi, esi
jl 0x1024073
push dword [ebp - 0x480]
xor esi, esi
push esi
call dword [sym.imp.SHELL32.dll_SHCreateDirectory]
cmp eax, esi
je 0x1024073
cmp eax, 0xb7
je 0x1024073
cmp eax, esi
jle 0x1024071
and eax, 0xffff
or eax, 0x80070000
mov esi, eax
push dword [ebp - 0x488]
call dword [sym.imp.ole32.dll_CoTaskMemFree]
mov eax, dword [ebp - 0x484]
test eax, eax
je 0x102408f
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0x47c]
test eax, eax
je 0x10240a3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
jmp 0x10240a3
xor esi, esi
test esi, esi
jl 0x10240c7
push dword [ebp - 0x480]
lea eax, [ebp - 0x20c]
push 0x104
push eax
call fcn.0100dfd8
mov esi, eax
jmp 0x10240c7
mov esi, 0x80070057
xor edi, edi
cmp esi, edi
mov eax, esi
jl 0x102414b
cmp dword [ebp + 8], edi
je 0x10240df
cmp dword [ebp + 8], 3
mov eax, 0x100765c
jne 0x10240e4
mov eax, 0x10017ac
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
test eax, eax
je 0x1024146
push 0x32
lea eax, [ebp - 0x270]
push eax
push dword [ebp - 0x494]
call dword [sym.imp.ole32.dll_StringFromGUID2]
test eax, eax
je 0x1024146
lea eax, [ebp - 0x270]
push eax
lea eax, [ebp - 0x20c]
push eax
call esi
test eax, eax
je 0x102413f
lea eax, [ebp - 0x20c]
push eax
push 0x104
lea eax, [ebp - 0x478]
push eax
call fcn.0100dfd8
jmp 0x102414b
mov eax, 0x8000ffff
jmp 0x102414b
mov eax, 0x80070057
cmp eax, edi
mov ebx, eax
jl 0x1024267
push dword [ebp - 0x490]
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
je 0x102435b
mov esi, dword [sym.imp.KERNEL32.dll_GetFileMUIPath]
lea eax, [ebp - 0x48c]
push eax
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x484]
push eax
mov dword [ebp - 0x480], edi
mov dword [ebp - 0x48c], edi
mov dword [ebp - 0x488], edi
mov dword [ebp - 0x484], edi
push edi
mov ebx, 0x80070002
mov edi, 0x210
jmp 0x10241ea
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x10242a8
lea eax, [ebp - 0x48c]
push eax
lea eax, [ebp - 0x47c]
push eax
lea eax, [ebp - 0x20c]
push eax
lea eax, [ebp - 0x484]
push eax
push 0
lea eax, [ebp - 0x478]
push eax
push edi
mov dword [ebp - 0x47c], 0x104
call esi
test eax, eax
jne 0x10241b7
lea eax, [ebp - 0x478]
push eax
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x1024267
lea eax, [ebp - 0x478]
push eax
push 0x104
lea eax, [ebp - 0x20c]
push eax
call fcn.0100dfd8
mov ebx, eax
test ebx, ebx
jl 0x1024267
lea eax, [ebp - 0x20c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x10242ac
shr eax, 4
not eax
and eax, 1
mov dword [ebp - 0x480], eax
je 0x1024255
xor ebx, ebx
test ebx, ebx
jl 0x1024267
cmp dword [ebp - 0x480], 0
jne 0x10242ce
mov ebx, 0x80070002
mov eax, dword [0x1027010]
cmp eax, 0x1027010
je 0x1024373
test byte [eax + 0x1c], 2
je 0x1024373
push ebx
push dword [ebp - 0x490]
push dword [ebp - 0x494]
push dword [ebp + 8]
push 0x10075f8
push 0xe
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010238c4
jmp 0x1024373
xor ebx, ebx
jmp 0x1024231
call dword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 2
je 0x1024253
cmp eax, 3
je 0x1024253
test eax, eax
jle 0x10242ca
and eax, 0xffff
or eax, 0x80070000
mov ebx, eax
jmp 0x1024255
cmp dword [ebp + 0x1c], 0
je 0x10242f8
cmp dword [ebp + 8], 2
je 0x10242e4
cmp dword [ebp + 8], 3
je 0x10242e4
xor eax, eax
jmp 0x10242e7
xor eax, eax
inc eax
push eax
lea eax, [ebp - 0x20c]
push eax
call fcn.01023cf6
mov ebx, eax
jmp 0x10242fa
xor ebx, ebx
test ebx, ebx
jl 0x1024267
lea eax, [ebp - 0x20c]
push eax
push dword [ebp + 0x18]
push dword [ebp - 0x498]
call fcn.0100dfd8
mov ebx, eax
mov eax, dword [0x1027010]
cmp eax, 0x1027010
je 0x1024365
test byte [eax + 0x1c], 2
je 0x1024365
cmp byte [eax + 0x19], 2
jb 0x1024365
lea ecx, [ebp - 0x20c]
push ecx
push dword [ebp - 0x490]
push dword [ebp - 0x494]
push dword [ebp + 8]
push 0x10075f8
push 0xd
push dword [eax + 0x14]
push dword [eax + 0x10]
call fcn.010237f2
jmp 0x1024360
mov ebx, 0x80070057
mov eax, dword [0x1027010]
test ebx, ebx
jge 0x1024373
jmp 0x102426c
mov ebx, 0x80070057
mov ecx, dword [ebp - 4]
pop edi
pop esi
mov eax, ebx
xor ecx, ebp
pop ebx
call fcn.01016fbd
leave
ret 0x18