Function at 0x140002d70
Capabilities:
Check if file exists
Copy file
Delete file
Get file attributes
Move file
Timestomp file

Disassembly:
mov qword [rsp + 0x10], rdx
push rbp
push rbx
push r12
push r14
push r15
lea rbp, [rsp - 0x2020]
mov eax, 0x2120
call fcn.140004220
sub rsp, rax
movsxd r15, ecx
mov r14d, 1
mov rax, r15
mov qword [rsp + 0x2118], rsi
mov qword [rbp + 0x2068], rax
mov r12, rdx
mov ebx, r14d
mov qword [rsp + 0x2110], rdi
nop dword [rax + rax]
cmp rbx, rax
jge 0x1400037ca
mov rdi, qword [r12 + rbx*8]
lea rdx, str._add_delay_for_testing
mov rcx, rdi
mov r8d, 0x17
inc r14d
inc rbx
call fcn.140011b74
test eax, eax
jne 0x140002e02
lea r8, section..data
mov rcx, rdi
lea rdx, str._add_delay_for_testing_d
call fcn.140003840
cmp word [rdi], 0x2d
mov rax, r15
je 0x140002dc0
xor ecx, ecx
mov qword [rsp + 0x2108], r13
call fcn.1400121b4
mov rbx, rax
call sub.KERNEL32.dll_GetCurrentProcessId
imul eax, ebx
mov ecx, eax
call fcn.14001219c
xor r13d, r13d
lea rdx, str.down
mov ecx, r13d
nop dword [rax]
movzx eax, word [rdi + rcx*2]
mov esi, 2
inc rcx
cmp ax, word [rdx + rcx*2 - 2]
jne 0x140002e5e
cmp rcx, 5
jne 0x140002e40
mov ebx, r13d
jmp 0x140002e9d
cmp word [rdi], 0x75
jne 0x140002e79
cmp word [rdi + 2], 0x70
jne 0x140002e79
cmp word [rdi + 4], r13w
jne 0x140002e79
mov ebx, 1
jmp 0x140002e9d
mov rcx, r13
lea rdx, str.clean
movzx eax, word [rdi + rcx*2]
inc rcx
cmp ax, word [rdx + rcx*2 - 2]
jne 0x1400037ae
cmp rcx, 6
jne 0x140002e83
mov ebx, esi
lea rcx, str.BEE_CACHE_DIRECTORY
mov dword [rbp + 0x2050], ebx
call fcn.140011e48
mov r8, 0xffffffffffffffff
mov qword [rbp - 0x50], r13
mov qword [rbp - 0x48], 7
mov word [rbp - 0x60], r13w
nop word [rax + rax]
inc r8
cmp word [rax + r8*2], r13w
jne 0x140002ed0
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.140002a60
cmp ebx, esi
jne 0x140002f24
cmp r14d, r15d
jge 0x1400037e5
movsxd rcx, r14d
lea r8, [rbp + 0x2060]
lea rdx, [0x1400217c0]
mov rcx, qword [r12 + rcx*8]
call fcn.140003840
mov rdx, qword [rbp + 0x2060]
lea rcx, [rbp - 0x60]
call fcn.140001690
mov esi, eax
jmp 0x140003748
cmp r14d, r15d
jge 0x140003800
movsxd rax, r14d
inc r14d
mov rcx, qword [r12 + rax*8]
mov r12, qword [rbp - 0x50]
mov qword [rbp + 0x2060], rcx
movabs rcx, 0x7ffffffffffffffe
mov rax, rcx
sub rax, r12
cmp rax, 1
jb 0x14000381b
cmp qword [rbp - 0x48], 8
lea r13, [rbp - 0x60]
mov ebx, 7
lea r15, [r12 + 1]
cmovae r13, qword [rbp - 0x60]
lea rdi, [rsp + 0x60]
xor eax, eax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
lea eax, [rbx + 3]
cmp r15, rbx
jbe 0x140002fbb
mov rbx, r15
or rbx, 7
cmp rbx, rcx
jbe 0x140002f9e
mov rbx, rcx
jmp 0x140002fa5
cmp rbx, rax
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rsp + 0x60]
call fcn.140002870
mov rdi, rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x78], rbx
mov rdx, r13
lea rbx, [r12 + r12]
mov qword [rsp + 0x70], r15
mov r8, rbx
mov rcx, rdi
call fcn.140004dd0
mov r13, qword [rbp + 0x2060]
mov eax, 0x5c
mov word [rbx + rdi], ax
xor eax, eax
mov word [rdi + r15*2], ax
mov r15, 0xffffffffffffffff
mov r8, r15
nop dword [rax + rax]
inc r8
cmp word [r13 + r8*2], ax
jne 0x140003000
mov rdx, r13
lea rcx, [rsp + 0x60]
call fcn.1400028e0
xor edi, edi
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x40], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x50], xmm1
mov qword [rax + 0x10], rdi
mov qword [rax + 0x18], 7
mov word [rax], di
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x14000307c
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140003077
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003827
mov rcx, r8
call fcn.140004204
mov ebx, dword [rbp + 0x2050]
cmp ebx, 1
jne 0x1400032cc
lea rcx, [rbp - 0x40]
call fcn.1400022a0
mov r12, qword [rbp - 0x50]
mov qword [rbp - 0x80], rax
movabs rax, 0x7ffffffffffffffe
mov rcx, rax
sub rcx, r12
cmp rcx, 1
jb 0x140003821
cmp qword [rbp - 0x48], 8
lea r13, [rbp - 0x60]
lea r15, [r12 + 1]
mov qword [rsp + 0x70], rdi
cmovae r13, qword [rbp - 0x60]
mov ebx, 7
mov qword [rsp + 0x78], rdi
lea rdi, [rsp + 0x60]
cmp r15, rbx
jbe 0x140003116
mov rbx, r15
or rbx, 7
cmp rbx, rax
jbe 0x1400030f3
mov rbx, rax
jmp 0x140003100
cmp rbx, 0xa
mov eax, 0xa
cmovb rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rsp + 0x60]
call fcn.140002870
mov rdi, rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x78], rbx
mov rdx, r13
lea rbx, [r12 + r12]
mov qword [rsp + 0x70], r15
mov r8, rbx
mov rcx, rdi
call fcn.140004dd0
mov eax, 0x5c
lea rdx, str.tmp_
mov word [rbx + rdi], ax
lea rcx, [rsp + 0x60]
xor eax, eax
mov word [rdi + r15*2], ax
lea r8d, [rax + 4]
call fcn.1400028e0
mov r9, qword [rbp - 0x80]
lea r8, [rbp - 0x20]
movzx edx, byte [rbp + 0x2050]
lea rcx, [rbp - 0x80]
xor edi, edi
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
mov qword [rax + 0x10], rdi
movups xmmword [rbp - 0x20], xmm0
mov qword [rax + 0x18], 7
movups xmmword [rbp - 0x10], xmm1
mov word [rax], di
call fcn.1400013f0
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x1400031d1
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400031cc
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000382d
mov rcx, r8
call fcn.140004204
movups xmm0, xmmword [rbp - 0x80]
mov rdx, qword [rbp - 8]
movups xmm1, xmmword [rbp - 0x70]
movups xmmword [rsp + 0x40], xmm0
movups xmmword [rsp + 0x50], xmm1
cmp rdx, 8
jb 0x140003223
mov rcx, qword [rbp - 0x20]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14000321e
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000382d
mov rcx, r8
call fcn.140004204
mov rdx, qword [rsp + 0x78]
cmp rdx, 8
jb 0x140003265
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140003260
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000382d
mov rcx, r8
call fcn.140004204
mov rdx, qword [rbp - 0x28]
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x78], 7
mov word [rsp + 0x60], di
cmp rdx, 8
jb 0x1400032b8
mov rcx, qword [rbp - 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400032b3
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x14000382d
mov rcx, r8
call fcn.140004204
mov r13, qword [rbp + 0x2060]
mov r15, 0xffffffffffffffff
mov ebx, dword [rbp + 0x2050]
cmp qword [rsp + 0x58], 8
lea rcx, [rsp + 0x40]
cmovae rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400032ec
test al, 0x10
jne 0x140003326
test ebx, ebx
je 0x1400036a9
cmp qword [rsp + 0x58], 8
lea rcx, [rsp + 0x40]
cmovae rcx, qword [rsp + 0x40]
call fcn.140002c20
test eax, eax
je 0x140003326
lea rcx, str.mkpath_failed
call fcn.140008068
xor ebx, ebx
mov esi, 0xff
jmp 0x1400036f3
movsxd r14, r14d
cmp r14, qword [rbp + 0x2068]
jge 0x1400034f7
mov r12, qword [rbp + 0x2058]
nop dword [rax]
mov rdi, qword [r12 + r14*8]
mov rdx, r15
inc r14
nop word [rax + rax]
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x140003350
add rdx, rdx
xor r8d, r8d
mov rcx, rdi
call fcn.1400038f0
cmp qword [rsp + 0x58], 8
lea r9, [rsp + 0x40]
lea r8, str._s__llx
mov qword [rsp + 0x20], rax
cmovae r9, qword [rsp + 0x40]
lea rcx, [rbp]
mov edx, 0x1000
call fcn.140002d10
cmp eax, 0xfff
jg 0x140003698
test ebx, ebx
jne 0x140003459
cmp dword [section..data], 3
jne 0x1400033e6
lea rcx, str.BEE_CACHE_TEST_DELAY_FILE
call fcn.140011e48
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400033d9
test al, 0x10
je 0x1400033e6
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x1400033c7
lea rcx, [rbp]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14000366a
test al, 0x10
jne 0x14000366a
cmp dword [section..data], 4
jne 0x140003441
lea rcx, str.BEE_CACHE_TEST_DELAY_FILE
call fcn.140011e48
mov rcx, rax
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140003434
test al, 0x10
je 0x140003441
mov ecx, 1
call qword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x140003422
xor r8d, r8d
lea rcx, [rbp]
mov rdx, rdi
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov ebx, dword [rbp + 0x2050]
jmp 0x140003469
xor r8d, r8d
lea rdx, [rbp]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CopyFileW]
xor edx, edx
test eax, eax
mov ecx, edx
sete cl
test ecx, ecx
jne 0x140003683
test ebx, ebx
jne 0x1400034ea
mov qword [rsp + 0x30], rdx
lea rcx, [rbp]
mov dword [rsp + 0x28], edx
xor r9d, r9d
mov edx, 0x40000000
mov dword [rsp + 0x20], 3
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
lea rcx, [rbp - 0x80]
mov rbx, rax
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
lea rdx, [rbp + 0x2060]
lea rcx, [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_SystemTimeToFileTime]
lea r9, [rbp + 0x2060]
xor edx, edx
lea r8, [rbp + 0x2060]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_SetFileTime]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov ebx, dword [rbp + 0x2050]
cmp r14, qword [rbp + 0x2068]
jl 0x140003340
cmp ebx, 1
jne 0x1400036ef
mov ecx, ebx
call fcn.140002480
lea r8, [0x140021524]
lea rdx, [rbp - 0x60]
lea rcx, [rbp - 0x40]
call section..text
nop dword [rax + rax]
inc r15
cmp word [r13 + r15*2], 0
jne 0x140003520
mov r8, r15
mov rdx, r13
mov rcx, rax
call fcn.1400028e0
xor ebx, ebx
movups xmm0, xmmword [rax]
movups xmmword [rbp - 0x80], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rbp - 0x70], xmm1
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], 7
mov word [rax], bx
mov rdx, qword [rbp - 0x28]
cmp rdx, 8
jb 0x14000359a
mov rcx, qword [rbp - 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140003595
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003833
mov rcx, r8
call fcn.140004204
cmp qword [rbp - 0x68], 8
lea rcx, [rbp - 0x80]
cmovae rcx, qword [rbp - 0x80]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400035ca
test al, 0x10
je 0x1400035ca
cmp qword [rbp - 0x68], 8
lea rcx, [rbp - 0x80]
cmovae rcx, qword [rbp - 0x80]
call fcn.140002b90
mov ecx, esi
call fcn.140002480
cmp qword [rbp - 0x68], 8
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x40]
cmovae rdx, qword [rbp - 0x80]
cmp qword [rsp + 0x58], 8
cmovae rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
test eax, eax
jne 0x1400036ad
lea rcx, str.move_path_failed
call fcn.140008068
cmp qword [rsp + 0x58], 8
lea rcx, [rsp + 0x40]
cmovae rcx, qword [rsp + 0x40]
call fcn.140002b90
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x140003660
mov rcx, qword [rbp - 0x80]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14000365b
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003839
mov rcx, r8
call fcn.140004204
mov esi, 0xff
jmp 0x1400036f3
lea rdx, [rbp]
lea rcx, str.Could_not_find_cached_file__s_n
call fcn.1400038a0
xor ebx, ebx
mov esi, 0xff
jmp 0x1400036f3
lea rcx, str.copyfile_failed
call fcn.140008068
xor ebx, ebx
mov esi, 0xff
jmp 0x1400036f3
lea rcx, str.path_name_too_long_n
call fcn.1400038a0
mov esi, 0xff
xor ebx, ebx
jmp 0x1400036f3
mov rdx, qword [rbp - 0x68]
cmp rdx, 8
jb 0x1400036f1
mov rcx, qword [rbp - 0x80]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400036e8
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140003839
mov rcx, r8
call fcn.140004204
jmp 0x1400036f1
xor ebx, ebx
mov esi, ebx
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140003735
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140003730
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400037c4
mov rcx, r8
call fcn.140004204
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], bx
mov rdx, qword [rbp - 0x48]
cmp rdx, 8
jb 0x140003784
mov rcx, qword [rbp - 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x14000377f
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400037c4
mov rcx, r8
call fcn.140004204
mov eax, esi
mov r13, qword [rsp + 0x2108]
mov rdi, qword [rsp + 0x2110]
mov rsi, qword [rsp + 0x2118]
add rsp, 0x2120
pop r15
pop r14
pop r12
pop rbx
pop rbp
ret
mov rdx, rdi
lea rcx, str.Unexpected_command:___s_._Use__up__or__down_._n
call fcn.1400038a0
mov eax, 0xff
jmp 0x140003786
call fcn.140007e48
int3
mov rdx, qword [r12]
lea rcx, str.Usage:__s_command_hash_file1__file2__file3__...____n
call fcn.1400038a0
mov ecx, 0xff
call fcn.140012164
int3
mov rdx, qword [r12]
lea rcx, str.Usage:__s_command_hash_file1__file2__file3__...____n
call fcn.1400038a0
mov ecx, 0xff
call fcn.140012164
int3
mov rdx, qword [r12]
lea rcx, str.Usage:__s_command_hash_file1__file2__file3__...____n
call fcn.1400038a0
mov ecx, 0xff
call fcn.140012164
int3
call fcn.140002850
int3
call fcn.140002850
int3
call fcn.140007e48
int3
call fcn.140007e48
int3
call fcn.140007e48
int3
call fcn.140007e48
int3