Function at 0x1400039b0
Capabilities:
Copy file
Get file attributes
Hash data using djb2
Set file attributes
Timestomp file

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x20], r9
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x400]
sub rsp, 0x500
xor ebx, ebx
xorps xmm0, xmm0
mov qword [rbp - 0x80], rbx
mov r15, rdx
mov r14, rcx
movups xmmword [rcx], xmm0
lea r12, [rbx - 1]
movups xmmword [rcx + 0x10], xmm0
movups xmmword [rcx + 0x20], xmm0
test r9, r9
je 0x14000433f
mov r13, qword [rbp + 0x460]
mov rax, r8
sub rax, rdx
add rax, 4
sub r8, rdx
mov qword [rbp - 0x58], rax
mov qword [rbp + 0x450], r8
movsxd rdi, dword [r15]
lea r9, [r13 + 0x10]
add rdi, r15
mov eax, ebx
sub eax, dword [r15]
neg eax
sbb rax, rax
and rdi, rax
mov eax, ebx
sub eax, dword [r8 + r15]
mov ebx, 0x1505
neg eax
movsxd rax, dword [r8 + r15]
movzx edx, byte [rdi]
sbb rsi, rsi
add rax, r8
lea r8, [rdi + 1]
add rax, r15
and rsi, rax
test edx, edx
je 0x140003a7e
nop dword [rax]
lea eax, [rdx - 0x41]
cmp eax, 0x1a
lea ecx, [rdx + 0x20]
lea r8, [r8 + 1]
cmovb edx, ecx
imul ebx, ebx, 0x21
add ebx, edx
movzx edx, byte [r8 - 1]
test edx, edx
jne 0x140003a60
mov rcx, r9
call qword [sym.imp.KERNEL32.dll_AcquireSRWLockExclusive]
mov edx, 1
lea rcx, [r13 + 0x18]
test ebx, ebx
mov r8, rdi
cmovne edx, ebx
call fcn.140017350
cmp eax, r12d
je 0x140003abb
cdqe
lea rcx, [rax + rax*2]
mov rax, qword [r13 + 0x40]
lea rdx, [rax + rcx*8]
test rdx, rdx
je 0x140003abb
mov dword [rdx], 0x40000000
lea rcx, [r13 + 0x10]
call qword [sym.imp.KERNEL32.dll_ReleaseSRWLockExclusive]
movzx edx, byte [rdi]
lea r9, [rdi + 1]
mov r8d, 0x1505
test edx, edx
je 0x140003b00
nop word [rax + rax]
lea eax, [rdx - 0x41]
cmp eax, 0x1a
lea ecx, [rdx + 0x20]
lea r9, [r9 + 1]
cmovb edx, ecx
imul r8d, r8d, 0x21
add r8d, edx
movzx edx, byte [r9 - 1]
test edx, edx
jne 0x140003ae0
test r8d, r8d
lea rcx, [rbp - 0x48]
mov r9d, 1
mov rdx, r13
cmovne r9d, r8d
mov r8, rdi
call fcn.14004afb0
mov ebx, dword [rbp - 0x48]
test bl, 1
je 0x140004322
mov eax, ebx
shr eax, 3
test al, 1
jne 0x140004319
movzx edx, byte [rsi]
lea r9, [rsi + 1]
mov r8d, 0x1505
test edx, edx
je 0x140003b70
nop word [rax + rax]
lea eax, [rdx - 0x41]
cmp eax, 0x1a
lea ecx, [rdx + 0x20]
lea r9, [r9 + 1]
cmovb edx, ecx
imul r8d, r8d, 0x21
add r8d, edx
movzx edx, byte [r9 - 1]
test edx, edx
jne 0x140003b50
test r8d, r8d
lea rcx, [rbp - 0x30]
mov r9d, 1
mov rdx, r13
cmovne r9d, r8d
mov r8, rsi
call fcn.14004afb0
mov ecx, dword [rbp - 0x30]
test cl, 1
je 0x140003bad
mov eax, ecx
shr eax, 3
test al, 1
jne 0x140003e6b
shr ecx, 5
test cl, 1
jne 0x140003e4e
mov rdx, rdi
lea rcx, [rsp + 0x60]
call fcn.1400151a0
xor edx, edx
lea rcx, [rsp + 0x60]
call fcn.140015480
mov rdx, rsi
lea rcx, [rsp + 0x40]
call fcn.1400151a0
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.140015480
xor edi, edi
mov dword [rsp + 0x28], 0x800
cmp qword [rsp + 0x58], 8
lea rax, [rbp + 0x440]
lea rdx, [rsp + 0x40]
mov dword [rbp + 0x440], edi
cmovae rdx, qword [rsp + 0x40]
lea rcx, [rsp + 0x60]
cmp qword [rsp + 0x78], 8
mov qword [rsp + 0x20], rax
cmovae rcx, qword [rsp + 0x60]
xor r9d, r9d
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileExW]
test eax, eax
jne 0x140003c36
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r14], eax
mov rax, qword [rbp - 0x58]
mov rdx, rsi
mov rcx, r13
mov r8d, dword [rax + r15]
call fcn.14004af30
cmp dword [r14], edi
jne 0x1400041d2
mov eax, ebx
shr eax, 4
test al, 1
jne 0x140003d8d
cmp qword [rsp + 0x58], 8
lea rcx, [rsp + 0x40]
mov qword [rsp + 0x30], rdi
mov edx, pe_nt_image_headers64
cmovae rcx, qword [rsp + 0x40]
xor r9d, r9d
xor r8d, r8d
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, r12
jne 0x140003ca9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r14], eax
jmp 0x140003cdb
lea rcx, [rbp - 0x50]
call qword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
lea r9, [rbp - 0x50]
xor r8d, r8d
xor edx, edx
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_SetFileTime]
test eax, eax
jne 0x140003cd2
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [r14], eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
cmp dword [r14], 0
jne 0x140004088
shr ebx, 5
test bl, 1
je 0x140003d28
cmp qword [rsp + 0x58], 8
lea rcx, [rsp + 0x40]
cmovae rcx, qword [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp qword [rsp + 0x58], 8
lea rcx, [rsp + 0x40]
cmovae rcx, qword [rsp + 0x40]
and eax, 0xfffffffe
mov edx, eax
call qword [sym.imp.KERNEL32.dll_SetFileAttributesW]
test eax, eax
je 0x140003e7a
movzx edx, byte [rsi]
lea r9, [rsi + 1]
mov r8d, 0x1505
test edx, edx
je 0x140003d60
nop dword [rax]
lea eax, [rdx - 0x41]
cmp eax, 0x1a
lea ecx, [rdx + 0x20]
lea r9, [r9 + 1]
cmovb edx, ecx
imul r8d, r8d, 0x21
add r8d, edx
movzx edx, byte [r9 - 1]
test edx, edx
jne 0x140003d40
test r8d, r8d
lea rcx, [rbp - 0x18]
mov r9d, 1
mov rdx, r13
cmovne r9d, r8d
mov r8, rsi
call fcn.14004afb0
mov r9, qword [rbp - 0x10]
mov rax, qword [rbp - 0x40]
cmp r9, rax
jne 0x140003fcd
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140003dcf
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140003dca
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043c7
mov rcx, r8
call fcn.14004d934
mov rdx, qword [rsp + 0x78]
xor ebx, ebx
mov word [rsp + 0x40], bx
mov qword [rsp + 0x58], 7
mov qword [rsp + 0x50], rbx
cmp rdx, 8
jb 0x140003e26
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140003e21
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043c7
mov rcx, r8
call fcn.14004d934
mov rcx, qword [rbp - 0x80]
add r15, 8
inc rcx
mov qword [rbp - 0x80], rcx
cmp rcx, qword [rbp + 0x458]
jae 0x14000433f
mov r8, qword [rbp + 0x450]
jmp 0x140003a1a
lea r8, str.The_target_path_already_exists_and_is_read_only.
mov dword [r14], r12d
mov edx, 0x400
lea rcx, [rbp]
call fcn.140003900
jmp 0x14000433d
mov r9, rsi
lea r8, str.The_target_path__s_already_exists_as_a_directory.
jmp 0x14000432c
call qword [sym.imp.KERNEL32.dll_GetLastError]
xor ebx, ebx
lea rcx, [rbp + 0x458]
mov r9d, 0x400
mov dword [r14], eax
mov qword [rsp + 0x30], rbx
mov r8d, eax
mov dword [rsp + 0x28], ebx
xor edx, edx
mov qword [rsp + 0x20], rcx
mov ecx, 0x1300
mov qword [rbp + 0x458], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
mov rdx, qword [rbp + 0x458]
lea rcx, [rbp - 0x78]
call fcn.140015300
cmp qword [rax + 0x18], 0x10
jb 0x140003ed1
mov rax, qword [rax]
mov r9, rax
lea r8, str.Clearing_the_readonly_flag_on_the_file_failed:__s
mov edx, 0x400
lea rcx, [rbp]
call fcn.140003900
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x140003f24
mov rcx, qword [rbp - 0x78]
inc rdx
cmp rdx, 0x1000
jb 0x140003f1f
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043d3
mov rcx, r8
call fcn.14004d934
mov rcx, qword [rbp + 0x458]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140003f73
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140003f6e
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043c1
mov rcx, r8
call fcn.14004d934
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], bx
cmp rdx, 8
jb 0x14000433f
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140004312
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043c1
jmp 0x14000430f
lea r8, str.The_copied_file_is__llu_bytes__but_the_source_file_was__llu_bytes.
mov dword [r14], r12d
mov edx, 0x400
mov qword [rsp + 0x20], rax
lea rcx, [rbp]
call fcn.140003900
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x14000402c
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140004027
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043c7
mov rcx, r8
call fcn.14004d934
mov rdx, qword [rsp + 0x78]
xor ebx, ebx
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], bx
cmp rdx, 8
jb 0x14000433f
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140004312
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043c7
jmp 0x14000430f
mov r8d, dword [r14]
lea rax, [rbp + 0x458]
xor ebx, ebx
mov r9d, 0x400
mov qword [rsp + 0x30], rbx
xor edx, edx
mov dword [rsp + 0x28], ebx
mov ecx, 0x1300
mov qword [rsp + 0x20], rax
mov qword [rbp + 0x458], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
mov rdx, qword [rbp + 0x458]
lea rcx, [rbp - 0x78]
call fcn.140015300
cmp qword [rax + 0x18], 0x10
jb 0x1400040d6
mov rax, qword [rax]
mov r9, rax
lea r8, str.Updating_the_timestamp_on_the_file_failed:__s
mov edx, 0x400
lea rcx, [rbp]
call fcn.140003900
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x140004129
mov rcx, qword [rbp - 0x78]
inc rdx
cmp rdx, 0x1000
jb 0x140004124
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043d9
mov rcx, r8
call fcn.14004d934
mov rcx, qword [rbp + 0x458]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x140004178
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140004173
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043cd
mov rcx, r8
call fcn.14004d934
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], bx
cmp rdx, 8
jb 0x14000433f
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140004312
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043cd
jmp 0x14000430f
mov r8d, dword [r14]
lea rax, [rbp + 0x458]
xor ebx, ebx
mov r9d, 0x400
mov qword [rsp + 0x30], rbx
xor edx, edx
mov dword [rsp + 0x28], ebx
mov ecx, 0x1300
mov qword [rsp + 0x20], rax
mov qword [rbp + 0x458], rbx
call qword [sym.imp.KERNEL32.dll_FormatMessageW]
mov rdx, qword [rbp + 0x458]
lea rcx, [rbp - 0x78]
call fcn.140015300
cmp qword [rax + 0x18], 0x10
jb 0x140004220
mov rax, qword [rax]
mov r9, rax
lea r8, str.Copying_the_file_failed:__s
mov edx, 0x400
lea rcx, [rbp]
call fcn.140003900
mov rdx, qword [rbp - 0x60]
cmp rdx, 0x10
jb 0x140004273
mov rcx, qword [rbp - 0x78]
inc rdx
cmp rdx, 0x1000
jb 0x14000426e
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043bb
mov rcx, r8
call fcn.14004d934
mov rcx, qword [rbp + 0x458]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rdx, qword [rsp + 0x58]
cmp rdx, 8
jb 0x1400042c2
mov rcx, qword [rsp + 0x40]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x1400042bd
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043df
mov rcx, r8
call fcn.14004d934
mov rdx, qword [rsp + 0x78]
mov qword [rsp + 0x50], rbx
mov qword [rsp + 0x58], 7
mov word [rsp + 0x40], bx
cmp rdx, 8
jb 0x14000433f
mov rcx, qword [rsp + 0x60]
lea rdx, [rdx*2 + 2]
cmp rdx, 0x1000
jb 0x140004312
mov r8, qword [rcx - 8]
add rdx, 0x27
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x1400043df
mov rcx, r8
call fcn.14004d934
jmp 0x14000433f
lea r8, str.The_source_path__s_is_a_directory__which_is_not_supported.
jmp 0x140004329
lea r8, str.The_source_path__s_does_not_exist.
mov r9, rdi
mov edx, 0x400
mov dword [r14], r12d
lea rcx, [rbp]
call fcn.140003900
xor ebx, ebx
cmp dword [r14], 0
je 0x14000439d
mov ecx, 0x2808
mov qword [r14 + 0x18], 0x2800
mov dword [r14 + 0x20], ebx
call fcn.14005a7bc
mov rcx, qword [rbp + 0x468]
mov qword [rax], 0x2800
lock add qword [rcx], 0x2800
add rax, 8
mov qword [r14 + 0x10], rax
mov byte [rax], 0
lea rax, [rbp]
mov qword [r14 + 0x28], rcx
inc r12
cmp byte [rax + r12], 0
jne 0x140004384
mov r8, r12
lea rdx, [rbp]
mov rcx, r14
call fcn.1400266b0
mov rbx, qword [rsp + 0x548]
mov rax, r14
add rsp, 0x500
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.140055668
int3
call fcn.140055668
int3
call fcn.140055668
int3
call fcn.140055668
int3
call fcn.140055668
int3
call fcn.140055668
int3
call fcn.140055668
int3