Function at 0x100074784
Capabilities:
Delete file

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r15
sub rsp, 0x50
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov rsi, rcx
lea r15, [0x100153eb8]
mov rcx, qword [0x100153eb8]
cmp rcx, r15
je 0x1000747d7
test byte [rcx + 0x1c], 1
je 0x1000747d7
cmp byte [rcx + 0x19], 5
jb 0x1000747d7
mov edx, 0xcb
mov r9d, dword [rsi + 8]
lea r8, [0x10001e430]
mov rcx, qword [rcx + 0x10]
call fcn.100036510
lea rcx, [0x100152100]
mov rax, qword [0x100152100]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x98], rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
mov edi, 0x104
sub eax, edi
or eax, ecx
jge 0x100074821
mov edx, edi
lea rcx, [rsp + 0x98]
call fcn.100036160
mov rbx, qword [rsp + 0x98]
mov edx, edi
mov rcx, rbx
call fcn.10006aa20
or r13, 0xffffffffffffffff
xor r12d, r12d
cmp eax, r12d
jne 0x100074b15
cmp rbx, r12
jne 0x100074845
mov ecx, r12d
jmp 0x10007485f
xor eax, eax
mov rcx, r13
mov rdi, rbx
repne scasw ax, word [rdi]
not rcx
dec rcx
cmp ecx, r12d
jl 0x100074b0a
cmp ecx, dword [rbx - 0xc]
jg 0x100074b0a
mov dword [rbx - 0x10], ecx
movsxd rax, ecx
mov word [rbx + rax*2], r12w
xor eax, eax
mov rcx, r13
lea rdx, [0x1000021e8]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8d, [rcx - 1]
lea rcx, [rsp + 0x98]
call fcn.10003579c
lea r8, [0x1000217b8]
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x30]
call fcn.100057844
nop
mov edi, r12d
mov eax, dword [rsi + 8]
cmp eax, r12d
jle 0x100074ad4
cmp edi, r12d
jl 0x100074abe
cmp edi, eax
jge 0x100074abe
movsxd rbp, edi
mov rax, qword [rsi]
lea r8, [rax + rbp*8]
lea rdx, [rsp + 0x98]
lea rcx, [rsp + 0x38]
call fcn.100077048
nop
lea r8, [0x1000217d0]
mov rdx, rax
lea rcx, [rsp + 0xa8]
call fcn.100057844
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
cmp eax, r12d
jg 0x10007492a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rsp + 0xa8]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov r8d, r12d
cmp eax, r12d
jne 0x100074949
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov rcx, qword [0x100153eb8]
cmp rcx, r15
je 0x100074983
test byte [rcx + 0x1c], 2
je 0x100074983
cmp byte [rcx + 0x19], 5
jb 0x100074983
mov edx, 0xcc
mov dword [rsp + 0x20], r8d
mov r9, qword [rsp + 0xa8]
lea r8, [0x10001e430]
mov rcx, qword [rcx + 0x10]
call fcn.10003b678
mov ebx, r12d
cmp edi, dword [rsi + 8]
jge 0x100074aa8
mov rax, qword [rsi]
lea r8, [rax + rbp*8]
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x40]
call fcn.100077048
nop
movsxd rcx, ebx
lea rdx, [rcx + rcx*4]
lea rcx, [0x10001e500]
lea r8, [rcx + rdx*2]
mov rdx, rax
lea rcx, [rsp + 0xa0]
call fcn.100057844
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
cmp eax, r12d
jg 0x1000749eb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov r8d, r12d
cmp eax, r12d
jne 0x100074a0a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r8d, eax
mov rcx, qword [0x100153eb8]
cmp rcx, r15
je 0x100074a44
test byte [rcx + 0x1c], 2
je 0x100074a44
cmp byte [rcx + 0x19], 5
jb 0x100074a44
mov edx, 0xcd
mov dword [rsp + 0x20], r8d
mov r9, qword [rsp + 0xa0]
lea r8, [0x10001e430]
mov rcx, qword [rcx + 0x10]
call fcn.10003b678
mov rdx, qword [rsp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
cmp eax, r12d
jg 0x100074a69
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
inc ebx
cmp ebx, 6
jb 0x100074986
mov rdx, qword [rsp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
cmp eax, r12d
jg 0x100074a99
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
inc edi
mov eax, dword [rsi + 8]
cmp edi, eax
jl 0x1000748c2
jmp 0x100074ad4
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 1]
mov ecx, 0xc000008c
call qword [sym.imp.KERNEL32.dll_RaiseException]
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
cmp eax, r12d
jg 0x100074b00
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rbx, qword [rsp + 0x98]
jmp 0x100074b15
mov rbx, qword [rsp + 0x98]
jmp 0x100074b15
mov ecx, 0x80070057
call fcn.100036284
int3
mov rcx, qword [0x100153eb8]
cmp rcx, r15
je 0x100074b3d
test byte [rcx + 0x1c], 1
je 0x100074b3d
mov edx, 0xce
lea r8, [0x10001e430]
mov rcx, qword [rcx + 0x10]
call fcn.100034784
nop
lea rdx, [rbx - 0x18]
mov eax, r13d
lock xadd dword [rdx + 0x10], eax
add eax, r13d
cmp eax, r12d
jg 0x100074b5a
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
add rsp, 0x50
pop r15
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret