Function at 0x4086f0
Capabilities:
Check if file exists
Get file attributes
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x46e20f
mov eax, dword fs:[0]
push eax
sub esp, 0x2b0
mov eax, dword [0x48b998]
xor eax, esp
mov dword [esp + 0x2ac], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x48b998]
xor eax, esp
push eax
lea eax, [esp + 0x2c4]
mov dword fs:[0], eax
xor esi, esi
mov dword [esp + 0x2cc], esi
mov eax, dword [esp + 0x2d8]
mov edi, 8
cmp dword [esp + 0x2ec], edi
jae 0x408750
lea eax, [esp + 0x2d8]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x408760
test al, 0x10
jne 0x40877a
cmp dword [esp + 0x2ec], edi
jb 0x408a96
mov eax, dword [esp + 0x2d8]
push eax
jmp 0x408a8e
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x50], esp
push 1
mov ebx, 7
xor edx, edx
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], esi
push 0x47c3f0
mov word [ecx + 4], dx
call fcn.00403ad0
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x4c], esp
push 0xffffffffffffffff
mov byte [esp + 0x308], 1
push esi
lea edx, [esp + 0x314]
xor eax, eax
mov dword [ecx + 0x18], ebx
mov dword [ecx + 0x14], esi
push edx
mov word [ecx + 4], ax
call fcn.004039d0
lea ecx, [esp + 0x50]
mov byte [esp + 0x304], 0
call fcn.0040ddd0
add esp, 0x38
push 0xffffffffffffffff
push esi
push eax
lea ecx, [esp + 0x2e0]
mov byte [esp + 0x2d8], 2
call fcn.004039d0
mov byte [esp + 0x2cc], 0
cmp dword [esp + 0x30], edi
jb 0x408814
mov eax, dword [esp + 0x1c]
push eax
call fcn.0042bced
add esp, 4
push 0x47c3f4
lea ecx, [esp + 0x2d8]
push ecx
lea edx, [esp + 0x40]
push edx
call fcn.0040b830
add esp, 0xc
mov byte [esp + 0x2cc], 3
mov eax, dword [esp + 0x3c]
cmp dword [esp + 0x50], edi
jae 0x408844
lea eax, [esp + 0x3c]
lea ecx, [esp + 0x70]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
mov ebp, eax
cmp ebp, 0xffffffff
je 0x4089f3
jmp 0x408860
mov ebx, dword [esp + 0x70]
push 0x47c3f0
lea edx, [esp + 0x2d8]
push edx
lea eax, [esp + 0x20]
shr ebx, 4
push eax
and bl, 1
call fcn.0040b830
lea ecx, [esp + 0xa8]
push ecx
push eax
lea edx, [esp + 0x68]
push edx
mov byte [esp + 0x2e4], 4
call fcn.0040b830
add esp, 0x18
mov byte [esp + 0x2cc], 6
cmp dword [esp + 0x30], edi
jb 0x4088ba
mov eax, dword [esp + 0x1c]
push eax
call fcn.0042bced
add esp, 4
xor ecx, ecx
mov dword [esp + 0x30], 7
mov dword [esp + 0x2c], esi
mov word [esp + 0x1c], cx
test bl, bl
je 0x4089a5
mov ecx, 0x47c3fc
lea eax, [esp + 0x9c]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408907
cmp dx, si
je 0x408903
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408907
add eax, 4
add ecx, 4
cmp dx, si
jne 0x4088e1
xor eax, eax
jmp 0x40890c
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
je 0x40897f
mov ecx, 0x47c400
lea eax, [esp + 0x9c]
lea esp, [esp]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x408946
cmp dx, si
je 0x408942
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x408946
add eax, 4
add ecx, 4
cmp dx, si
jne 0x408920
xor eax, eax
jmp 0x40894b
sbb eax, eax
sbb eax, 0xffffffff
cmp eax, esi
je 0x40897f
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x30], esp
push 0xffffffffffffffff
push esi
lea eax, [esp + 0x78]
xor edx, edx
mov dword [ecx + 0x18], 7
mov dword [ecx + 0x14], esi
push eax
mov word [ecx + 4], dx
call fcn.004039d0
call fcn.004086f0
add esp, 0x1c
jmp 0x4089ba
lea ecx, [esp + 0x70]
push ecx
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
sete bl
mov byte [esp + 0x2cc], 3
cmp dword [esp + 0x6c], edi
jb 0x4089e6
mov edx, dword [esp + 0x58]
push edx
jmp 0x4089de
mov eax, dword [esp + 0x58]
cmp dword [esp + 0x6c], edi
jae 0x4089b3
lea eax, [esp + 0x58]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea eax, [esp + 0x70]
push eax
push ebp
call dword [sym.imp.KERNEL32.dll_FindNextFileW]
test eax, eax
sete bl
mov byte [esp + 0x2cc], 3
cmp dword [esp + 0x6c], edi
jb 0x4089e6
mov ecx, dword [esp + 0x58]
push ecx
call fcn.0042bced
add esp, 4
test bl, bl
je 0x408860
mov ebx, 7
push ebp
call dword [sym.imp.KERNEL32.dll_FindClose]
mov eax, dword [esp + 0x2d8]
cmp dword [esp + 0x2ec], edi
jae 0x408a11
lea eax, [esp + 0x2d8]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x408a5b
cmp dword [esp + 0x50], edi
jb 0x408a2f
mov edx, dword [esp + 0x3c]
push edx
call fcn.0042bced
add esp, 4
xor eax, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], esi
mov word [esp + 0x3c], ax
cmp dword [esp + 0x2ec], edi
jb 0x408a57
mov ecx, dword [esp + 0x2d8]
push ecx
call fcn.0042bced
add esp, 4
xor al, al
jmp 0x408a98
cmp dword [esp + 0x50], edi
jb 0x408a6e
mov edx, dword [esp + 0x3c]
push edx
call fcn.0042bced
add esp, 4
xor eax, eax
mov dword [esp + 0x50], ebx
mov dword [esp + 0x4c], esi
mov word [esp + 0x3c], ax
cmp dword [esp + 0x2ec], edi
jb 0x408a96
mov ecx, dword [esp + 0x2d8]
push ecx
call fcn.0042bced
add esp, 4
mov al, 1
mov ecx, dword [esp + 0x2c4]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2ac]
xor ecx, esp
call fcn.0044b1f7
add esp, 0x2bc
ret