Function at 0x180003470
Capabilities:
Delete file

Disassembly:
push rdi
sub rsp, 0x30
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x50], rsi
mov rdi, rcx
lea rbx, [rcx + 0x28]
mov qword [rsp + 0x40], rbx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
nop
cmp dword [rdi + 0x7e0], 0
je 0x1800036d5
xor esi, esi
cmp dword [rdi + 0x7f0], esi
je 0x1800034c1
call fcn.1800e2ac0
mov dword [rdi + 0x7f0], esi
cmp dword [rdi + 0x7ec], esi
je 0x1800034d4
call fcn.1800e3010
mov dword [rdi + 0x7ec], esi
cmp dword [rdi + 0x7e8], esi
je 0x18000351d
lea r8, [0x1800e1d50]
lea rdx, [0x18017aef8]
lea rcx, str.NtCreateFile
call fcn.1800e4df0
lea r8, [0x1800e1e30]
lea rdx, [0x18017aef0]
lea rcx, str.NtOpenFile
call fcn.1800e4df0
mov qword [0x18017a618], rsi
mov dword [rdi + 0x7e8], esi
mov rcx, qword [rdi + 0x7f8]
test rcx, rcx
je 0x180003543
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rdi + 0x7f8]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rdi + 0x7f8], rsi
mov rcx, qword [rdi + 0x800]
test rcx, rcx
je 0x180003569
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rdi + 0x800]
mov rax, qword [rcx]
call qword [rax + 0x10]
mov qword [rdi + 0x800], rsi
cmp qword [rdi + 0x4f8], rsi
je 0x180003592
cmp qword [rdi + 0x500], 8
jb 0x180003585
mov rcx, qword [rdi + 0x4e8]
jmp 0x18000358c
lea rcx, [rdi + 0x4e8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
cmp qword [rdi + 0x778], rsi
je 0x1800035bb
cmp qword [rdi + 0x780], 8
jb 0x1800035ae
mov rcx, qword [rdi + 0x768]
jmp 0x1800035b5
lea rcx, [rdi + 0x768]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
lea rcx, [rdi + 0x4b8]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x4e0]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x508]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x530]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x558]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x580]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x5a8]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x5d0]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x5f8]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x620]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x648]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x670]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x698]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x6c0]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x6e8]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x710]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x738]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x760]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
lea rcx, [rdi + 0x788]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::clear_void____ptr64]
lea rcx, [rdi + 0x7b0]
call qword [sym.imp.MSVCP90.dll_public:_void___cdecl_std::basic_string_wchar_t__struct_std::char_traits_wchar_t___class_std::allocator_wchar_t__::clear_void____ptr64]
mov dword [rdi + 0x7dc], 0xffffffff
mov dword [rdi + 0x7d8], esi
mov dword [rdi + 0x7e0], esi
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov eax, 1
mov rbx, qword [rsp + 0x48]
mov rsi, qword [rsp + 0x50]
add rsp, 0x30
pop rdi
ret