Function at 0xbcfb11
Capabilities:
Check if file exists
Get file attributes
Set file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xec
push ebx
push esi
push edi
push 0
push 3
xor ebx, ebx
inc ebx
push ebx
push 0x80000000
push dword [ebp + 0xc]
mov dword [ebp - 8], ebx
call fcn.00bd5042
mov esi, eax
add esp, 0x14
test esi, esi
je 0xbcfb57
cmp dword [ebp + 0x14], 0
mov edi, 0xe4
jg 0xbcfb83
jl 0xbcfb50
cmp dword [ebp + 0x10], edi
jae 0xbcfb83
push esi
call fcn.00bd1e17
pop ecx
cmp dword [ebp + 0x14], 0
mov ebx, 0x100000
jg 0xbcfb6c
jl 0xbcfb69
cmp dword [ebp + 0x10], ebx
jae 0xbcfb6c
mov ebx, dword [ebp + 0x10]
mov edi, dword [ebp + 8]
lea eax, [ebx + 0x158]
push eax
push edi
call fcn.00bd4c8e
pop ecx
pop ecx
jmp 0xbcfc2c
push 2
push 0xffffffffffffffff
push 0xffffff1c
push esi
call fcn.00bd5081
lea eax, [ebp - 4]
push eax
push edi
lea eax, [ebp - 0xec]
push eax
push esi
call fcn.00bd5068
add esp, 0x20
test eax, eax
je 0xbcfbb4
cmp dword [ebp - 4], edi
jne 0xbcfbb4
mov edi, ebx
jmp 0xbcfbb6
xor edi, edi
push esi
call fcn.00bd1e17
pop ecx
test edi, edi
je 0xbcfb57
push 0x20
lea eax, [ebp - 0x3c]
push eax
push 0
call fcn.00bd426a
add esp, 0xc
cmp dword [ebp - 0x14], eax
jne 0xbcfb57
xor eax, eax
jmp 0xbcfd37
call sub.ntdll.dll_RtlGetLastWin32Error
cmp eax, 8
jne 0xbcfbd6
mov esi, 0xbe0d60
push esi
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
push str._DBG_
push 7
call fcn.00bd1b2c
push str.IOCP_ERROR_NOT_ENOUGH_MEMORY__retrying.._r_n
push 8
call fcn.00bd1b2c
add esp, 0x10
push esi
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
push 0x64
call fcn.00bd2c32
lea eax, [ebx + 0x158]
push eax
push edi
call fcn.00bd4c8e
add esp, 0xc
mov esi, eax
test esi, esi
je 0xbcfbdd
push 0xbe0d60
mov dword [esi + 0x150], ebx
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
push str._DBG_
push 7
call fcn.00bd1b2c
mov ebx, dword [ebp + 0xc]
pop ecx
pop ecx
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
call fcn.00bd4ced
pop ecx
push eax
push ebx
push str.open:_s:_08X:_llu_r_n
push 8
call fcn.00bd1b2c
add esp, 0x18
push 0xbe0d60
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
jmp 0xbcfd0d
call sub.ntdll.dll_RtlGetLastWin32Error
push 0xbe0d60
mov dword [ebp - 4], eax
call dword [sym.imp.kernel32.dll_EnterCriticalSection]
push str._ERR_
push 0xc
call fcn.00bd1b2c
call sub.ntdll.dll_RtlGetLastWin32Error
push eax
push ebx
push str._err:_s:_d_r_n
push 4
call fcn.00bd1b2c
push 0x7b
push str.enc_file_ctx_init
push 0xbdb0b0
push str._______S:_S:_lu_r_n
push 4
call fcn.00bd1b2c
add esp, 0x2c
push 0xbe0d60
call dword [sym.imp.kernel32.dll_LeaveCriticalSection]
mov ecx, dword [ebp - 8]
mov eax, ecx
dec ecx
mov dword [ebp - 8], ecx
test eax, eax
je 0xbcfd3e
cmp dword [ebp - 4], 5
jne 0xbcfd0d
push ebx
call dword [sym.imp.kernel32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0xbcfd3e
test al, 1
je 0xbcfd0d
push 0x80
push ebx
call dword [sym.imp.kernel32.dll_SetFileAttributesW]
test eax, eax
je 0xbcfd3e
push 3
push 0
push 0xc0000000
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push ebx
push esi
call fcn.00bd4d8b
add esp, 0x1c
test eax, eax
je 0xbcfc82
push esi
call fcn.00bcfd4a
mov eax, esi
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push esi
push edi
call fcn.00bd4ca2
pop ecx
xor eax, eax
jmp 0xbcfd36