Function at 0x14000f580
Capabilities:
Delete file

Disassembly:
push rdi
push r14
push r15
sub rsp, 0x40
mov qword [rsp + 0x20], 0xfffffffffffffffe
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x68], rbp
mov qword [rsp + 0x70], rsi
mov rdi, rcx
cmp qword [rcx + 0xa0], 0
je 0x14000f829
mov byte [rcx + 0x118], 1
mov rax, qword [rcx + 0x150]
mov rcx, qword [rax + 8]
test rcx, rcx
je 0x14000f5d7
cmp qword [rax + 0x10], 0
je 0x14000f5d7
call qword [sym.imp.KERNEL32.dll_ResetEvent]
mov rsi, qword [rdi + 0x130]
lea r15, vtable.base::CriticalSectionLock.0
xor r14d, r14d
test rsi, rsi
je 0x14000f6b0
cmp qword [rsi + 0x18], r14
je 0x14000f6b0
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
cmp eax, dword [rsi + 0x20]
jne 0x14000f60f
mov byte [rsi + 0x24], 1
jmp 0x14000f6b0
mov byte [rsi + 0x25], r14b
mov qword [rsp + 0x28], r15
lea rax, [rsi + 0x70]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], r14b
lea rbx, [rax + 8]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rsp + 0x38], 1
mov byte [rsi + 0x24], 1
mov qword [rsp + 0x28], r15
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [rsp + 0x38], 0
lea rbx, [rsi + 8]
mov rcx, qword [rbx]
call qword [sym.imp.KERNEL32.dll_SetEvent]
mov edx, 0x64
mov rcx, qword [rsi + 0x18]
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
test eax, eax
sete bpl
cmp byte [rsi + 0x25], 0
je 0x14000f67f
mov rcx, rsi
call fcn.14003f220
mov esi, 2
mov rcx, qword [rbx]
test rcx, rcx
je 0x14000f695
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov qword [rbx], r14
add rbx, 8
sub rsi, 1
jne 0x14000f684
test bpl, bpl
jne 0x14000f6b0
mov rcx, qword [rdi + 0x130]
call fcn.14003ec10
mov rbx, qword [rdi + 0x140]
test rbx, rbx
je 0x14000f7b5
cmp byte [rbx], 0
jne 0x14000f7b5
nop dword [rax]
cmp qword [rdi + 0xa0], 0
je 0x14000f7b5
mov qword [rsp + 0x28], r15
lea rax, [rbx + 0x30]
mov qword [rsp + 0x30], rax
mov byte [rsp + 0x38], 0
lea rsi, [rax + 8]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov byte [rsp + 0x38], 1
mov r8, qword [rbx + 0x28]
test r8, r8
jne 0x14000f722
mov byte [rbx], 1
mov qword [rsp + 0x28], r15
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov rbp, r14
jmp 0x14000f782
mov rbp, qword [rbx + 0x20]
mov rax, qword [rbx + 8]
test rax, rax
mov rdx, r14
je 0x14000f735
mov rdx, qword [rax]
mov rcx, qword [rdx + 0x10]
dec rcx
mov rax, rbp
shr rax, 1
and rcx, rax
and ebp, 1
mov rax, qword [rdx + 8]
mov rcx, qword [rax + rcx*8]
mov rbp, qword [rcx + rbp*8]
lea rax, [r8 - 1]
mov qword [rbx + 0x28], rax
test rax, rax
jne 0x14000f767
mov qword [rbx + 0x20], r14
jmp 0x14000f76b
inc qword [rbx + 0x20]
cmp rax, 0
sete al
mov byte [rbx], al
mov qword [rsp + 0x28], r15
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov byte [rsp + 0x38], 0
mov rdx, qword [rdi + 0xa0]
mov rcx, rbp
call fcn.140093994
mov rdx, rbp
mov rcx, qword [rdi + 0x120]
call fcn.140030880
mov rbx, qword [rdi + 0x140]
cmp byte [rbx], 0
je 0x14000f6d0
mov rcx, qword [rdi + 0xa0]
test rcx, rcx
je 0x14000f7c6
call fcn.140094028
movsxd rdx, dword [rdi + 0x78]
lea r8, str._tr__th___th__th___th__th___th__th___th__th___th___tr__t__table__t__html_
mov rcx, qword [rdi + 0x68]
call fcn.140013b70
mov rdx, qword [rdi + 0xa0]
mov rcx, qword [rdi + 0x68]
call fcn.140093994
mov rcx, qword [rdi + 0xa0]
call fcn.140094028
mov rcx, qword [rdi + 0xa0]
call fcn.14009412c
cmp byte [rdi + 0x160], 0
je 0x14000f822
lea rcx, [rdi + 0xa8]
cmp qword [rcx + 0x18], 8
jb 0x14000f81c
mov rcx, qword [rcx]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov qword [rdi + 0xa0], r14
mov rbx, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x70]
add rsp, 0x40
pop r15
pop r14
pop rdi
ret