Function at 0x100016770
Capabilities:
Delete file

Disassembly:
mov qword [rsp + 0x20], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov r13, qword [0x100023780]
xor r15d, r15d
mov r14, qword [r13 + 8]
mov r12d, r15d
mov ebp, 8
lock add dword [r13 + 0x14], 1
lea r9, [rsp + 0x80]
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x70]
mov rcx, r14
mov dword [rsp + 0x70], r15d
mov qword [rsp + 0x78], r15
mov qword [rsp + 0x80], r15
mov dword [rsp + 0x20], 0x2710
call qword [sym.imp.KERNEL32.dll_GetQueuedCompletionStatus]
cmp eax, r15d
jne 0x1000169bb
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r12d, eax
lock add dword [r13 + 0x14], 0xffffffff
cmp eax, 0x102
je 0x10001679f
mov rdi, qword [rsp + 0x80]
mov rdx, qword [rsp + 0x78]
mov rcx, qword [0x100023778]
cmp rdi, r15
je 0x1000169a4
add rdi, 0xffffffffffffffa8
call fcn.100015544
mov rbx, rax
cmp rax, r15
jne 0x100016859
cmp rdi, r15
je 0x10001679f
mov rcx, qword [rdi + 0x40]
cmp rcx, r15
je 0x10001683e
call fcn.100015a7c
mov rcx, qword [rdi + 0x48]
cmp rcx, r15
je 0x10001684c
call fcn.100015a7c
mov rcx, rdi
call fcn.100015a7c
jmp 0x10001679f
cmp dword [rdi], 1
jne 0x100016865
lock add dword [rax + 0x40], 0xffffffff
jmp 0x10001688b
cmp dword [rdi], 3
jne 0x100016871
lock add dword [rax + 0x48], 0xffffffff
jmp 0x100016876
cmp dword [rdi], 2
jne 0x100016886
mov rcx, qword [rdi + 0x50]
cmp rcx, r15
je 0x10001688b
call fcn.100015b48
jmp 0x10001688b
cmp dword [rdi], r15d
je 0x100016830
cmp dword [rbx + 0x60], r15d
jne 0x100016929
mov dword [rbx + 0x60], 1
cmp r12d, 0x40
je 0x10001691c
mov rcx, qword [rbx + 0x20]
cmp rcx, 0xffffffffffffffff
je 0x1000168b7
call qword [sym.imp.WS2_32.dll_closesocket]
or qword [rbx + 0x20], 0xffffffffffffffff
mov rcx, qword [rbx + 0x28]
cmp rcx, 0xffffffffffffffff
je 0x1000168db
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rcx, qword [rbx + 0x30]
or qword [rbx + 0x28], 0xffffffffffffffff
cmp rcx, r15
je 0x1000168db
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, r12d
mov edx, r12d
and eax, 0xfff0000
cmp eax, 0x200000
je 0x100016921
cmp r12d, r15d
je 0x100016921
cmp r12d, 0x70
je 0x100016915
cmp r12d, 0x1d
je 0x100016915
cmp r12d, 0x13
je 0x100016915
cmp r12d, 0x1f
je 0x100016915
mov edx, 0x80200006
cmp r12d, 0x1a
jne 0x100016921
mov edx, 0x80200002
jmp 0x100016921
mov edx, 0x80200003
mov rcx, rbx
call fcn.100015d90
mov eax, dword [rbx + 0x48]
add eax, dword [rbx + 0x40]
jne 0x100016830
mov rsi, qword [0x100023778]
mov rbp, qword [rsp + 0x78]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov r11d, r15d
mov rcx, r15
cmp dword [rsi + 0x28], r15d
jbe 0x100016984
mov rdx, qword [rsi + 0x30]
mov rax, rdx
cmp qword [rax], rbp
je 0x100016974
inc r11d
inc rcx
add rax, 0x10
cmp r11d, dword [rsi + 0x28]
jb 0x10001695d
jmp 0x100016984
add rcx, rcx
mov qword [rdx + rcx*8], r15
mov rax, qword [rsi + 0x30]
mov qword [rax + rcx*8 + 8], r15
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov edx, 1
mov rcx, rbx
call fcn.100013d48
mov ebp, 8
jmp 0x100016830
call fcn.100015544
mov edx, 0x80200006
mov rcx, rax
call fcn.100015d90
jmp 0x10001679f
mov rdx, qword [rsp + 0x78]
mov eax, 0xffffffff
cmp rdx, rax
jne 0x1000169d8
cmp qword [rsp + 0x80], r15
je 0x100016c44
mov rcx, qword [0x100023778]
call fcn.100015544
mov rsi, rax
cmp rax, r15
jne 0x100016a25
mov rbx, qword [rsp + 0x80]
add rbx, 0xffffffffffffffa8
cmp rbx, r15
je 0x10001679f
mov rcx, qword [rbx + 0x40]
cmp rcx, r15
je 0x100016a0f
call fcn.100015a7c
mov rcx, qword [rbx + 0x48]
cmp rcx, r15
je 0x100016a1d
call fcn.100015a7c
mov rcx, rbx
jmp 0x10001684f
lock add dword [r13 + 0x14], 0xffffffff
mov rdi, qword [rsp + 0x80]
add rdi, 0xffffffffffffffa8
cmp dword [rdi], r15d
jne 0x100016ba0
lock add dword [rax + 0x40], 0xffffffff
mov ecx, 0x90
call fcn.100015a28
mov rbx, rax
cmp rax, r15
je 0x100016acb
mov dword [rax], r15d
mov dword [rax + 4], 0x200
mov dword [rax + 8], 0x1000
mov byte [rax + 0xc], r15b
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r15
mov word [rax + 0x20], bp
mov word [rax + 0x22], bp
mov qword [rax + 0x30], r15
mov qword [rax + 0x38], r15
mov qword [rax + 0x40], r15
mov dword [rax + 0x48], r15d
mov dword [rax + 0x4c], r15d
mov dword [rax + 0x50], r15d
mov byte [rax + 0x54], r15b
mov byte [rax + 0x55], r15b
mov dword [rax + 0x58], r15d
mov dword [rax + 0x5c], r15d
mov dword [rax + 0x60], r15d
mov qword [rax + 0x68], r15
mov qword [rax + 0x70], r15
mov qword [rax + 0x78], r15
mov qword [rax + 0x80], r15
mov dword [rax + 0x88], r15d
mov dword [rax + 0x8c], r15d
jmp 0x100016ace
mov rbx, r15
cmp rbx, r15
je 0x100016830
mov ecx, 0x80
call fcn.100015a28
cmp rax, r15
je 0x100016b0f
mov ecx, dword [0x100023750]
mov r9, qword [rdi + 8]
mov r8, qword [rdi + 0x18]
mov dword [rsp + 0x28], ecx
mov edx, 1
mov rcx, rax
mov qword [rsp + 0x20], rbx
call fcn.10001455c
mov rbp, rax
jmp 0x100016b12
mov rbp, r15
cmp rbp, r15
jne 0x100016b4d
mov edx, 1
mov rcx, rbx
call fcn.1000145e4
mov rcx, qword [rdi + 0x40]
cmp rcx, r15
je 0x100016b32
call fcn.100015a7c
mov rcx, qword [rdi + 0x48]
cmp rcx, r15
je 0x100016b40
call fcn.100015a7c
mov rcx, rdi
call fcn.100015a7c
jmp 0x10001679a
mov r8, qword [rbp + 0x20]
mov rcx, qword [0x100023778]
mov rdx, rbp
call fcn.100015664
mov rcx, qword [rdi + 0x40]
cmp rcx, r15
je 0x100016b6e
call fcn.100015a7c
mov rcx, qword [rdi + 0x48]
cmp rcx, r15
je 0x100016b7c
call fcn.100015a7c
mov rcx, rdi
call fcn.100015a7c
xor edx, edx
mov rcx, rbp
call fcn.100014944
xor edx, edx
mov rcx, rsi
call fcn.100014944
mov r12d, eax
jmp 0x10001679a
cmp dword [rdi], 2
jne 0x100016bbc
mov rcx, qword [rdi + 0x50]
cmp rcx, r15
je 0x100016830
call fcn.100015b48
jmp 0x100016830
cmp dword [rdi], 3
jne 0x100016bc8
lock add dword [rax + 0x48], 0xffffffff
jmp 0x100016ba5
lock add dword [rax + 0x40], 0xffffffff
mov r8d, dword [rsp + 0x70]
cmp r8d, r15d
je 0x100016c17
mov rdx, rdi
mov rcx, r13
call fcn.10001617c
cmp eax, r15d
jne 0x100016bf9
xor edx, edx
mov rcx, rsi
call fcn.100014944
mov r12d, eax
jmp 0x100016830
mov rcx, qword [rsi + 0x20]
cmp rcx, 0xffffffffffffffff
je 0x100016830
call qword [sym.imp.WS2_32.dll_closesocket]
or qword [rsi + 0x20], 0xffffffffffffffff
jmp 0x100016830
mov eax, dword [rax + 0x48]
add eax, dword [rsi + 0x40]
jne 0x100016830
mov rcx, qword [0x100023778]
mov rdx, rsi
call fcn.1000157a8
mov edx, 1
mov rcx, rsi
call fcn.100013d48
jmp 0x100016830
mov eax, r12d
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret