Function at 0x1400d8510
Capabilities:
Copy file
Move file

Disassembly:
test rcx, rcx
je 0x1400d89aa
mov r11, rsp
push rbx
push rbp
push r13
push r14
push r15
sub rsp, 0x7b0
mov rax, qword [0x14021d798]
xor rax, rsp
mov qword [rsp + 0x7a0], rax
mov rax, qword [rcx + 0x8e8]
xor ebp, ebp
mov qword [r11 + 0x10], rsi
xor r15d, r15d
mov qword [r11 + 0x18], rdi
mov r13d, r8d
mov qword [r11 + 0x20], r12
mov r14, rdx
mov r12, qword [rax + 0x90]
mov rbx, rcx
mov eax, dword [rcx]
mov qword [rsp + 0x40], rdx
cmp eax, 1
jne 0x1400d858f
mov edx, dword [rbx + 0xa0]
lea r8, str.Overwrite
add rcx, 0xa8
call fcn.1400d9960
mov rsi, rax
jmp 0x1400d85b4
cmp eax, 2
jne 0x1400d85b2
mov edx, dword [rbx + 0x4d8]
lea r8, str.Overwrite
add rcx, 0x4e0
call fcn.1400d9960
mov rsi, rax
jmp 0x1400d85b4
xor esi, esi
mov eax, dword [rbx]
cmp eax, 1
jne 0x1400d85d9
mov edx, dword [rbx + 0xa0]
lea rcx, [rbx + 0xa8]
lea r8, str.Destination
call fcn.1400d9960
mov rdi, rax
jmp 0x1400d85fe
cmp eax, 2
jne 0x1400d85fc
mov edx, dword [rbx + 0x4d8]
lea rcx, [rbx + 0x4e0]
lea r8, str.Destination
call fcn.1400d9960
mov rdi, rax
jmp 0x1400d85fe
xor edi, edi
test rsi, rsi
je 0x1400d8616
movsx ecx, byte [rsi]
call fcn.140185994
cmp eax, 0x54
mov eax, 1
cmove ebp, eax
test rdi, rdi
je 0x1400d8958
cmp byte [rdi], r15b
je 0x1400d8958
test r12, r12
je 0x1400d894a
mov rcx, rdi
call fcn.1400da7c0
cmp eax, 2
jne 0x1400d8652
mov rdx, qword [rbx + 0x8e0]
mov rcx, rdi
call fcn.1400e5980
mov rsi, rax
jmp 0x1400d86b0
add eax, 0xfffffffd
cmp eax, 1
ja 0x1400d894a
mov rdx, rbx
mov rcx, rdi
call fcn.1400da170
mov r14, rax
test rax, rax
je 0x1400d894a
mov rdi, 0xffffffffffffffff
nop dword [rax]
inc rdi
cmp byte [rax + rdi], r15b
jne 0x1400d8680
lea rcx, [rdi + 1]
call fcn.140184ca0
lea r9d, [rdi + 1]
mov dword [rsp + 0x20], r15d
mov r8, rax
mov edx, edi
mov rcx, r14
mov rsi, rax
call fcn.1400e5aa0
mov r14, qword [rsp + 0x40]
test rsi, rsi
je 0x1400d894a
mov rcx, rsi
call fcn.1400eabb0
cmp byte [rsi], 0x2f
jne 0x1400d8709
mov qword [rsp + 0x30], rsi
lea rax, [0x1401ba2d4]
mov qword [rsp + 0x28], r12
lea r8, [rsp + 0x70]
mov r9d, 0x30c
mov qword [rsp + 0x20], rax
lea rdx, [rsp + 0x40]
mov dword [rsp + 0x40], r15d
mov rcx, rbx
call fcn.1400e46d0
cmp dword [rsp + 0x40], r15d
mov edi, 1
cmove r15d, edi
jmp 0x1400d870e
mov edi, 1
mov rcx, rsi
call fcn.140180564
test r15d, r15d
je 0x1400d894a
lea r8, [rsp + 0x48]
mov rcx, rbx
lea rdx, [rsp + 0x70]
call fcn.1400e5590
test eax, eax
je 0x1400d8773
test ebp, ebp
je 0x1400d875d
lea rcx, [rsp + 0x70]
call fcn.1401879ac
test eax, eax
je 0x1400d8773
lea r9, [rsp + 0x70]
mov edx, 0x193
lea r8, str.Cannot_overwrite_file:__s
jmp 0x1400d896b
lea r9, [rsp + 0x70]
mov edx, 0x19c
lea r8, str.Destination_already_exists:__s
jmp 0x1400d896b
mov r9d, 0x104
lea r8, [rsp + 0x590]
mov rdx, r14
mov rcx, rbx
call fcn.1400e7680
mov r9d, 0x104
lea r8, [rsp + 0x380]
lea rdx, [rsp + 0x70]
mov rcx, rbx
call fcn.1400e7680
lea rdx, [rsp + 0x380]
lea rcx, [rsp + 0x590]
test r13d, r13d
je 0x1400d87ca
xor ebp, 1
mov r8d, ebp
call qword [sym.imp.KERNEL32.dll_CopyFileW]
jmp 0x1400d87d3
mov r8d, ebp
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x1400d8914
cmp dword [rbx], 1
jne 0x1400d890a
cmp dword [rbx + 4], 1
je 0x1400d8805
cmp dword [rbx + 8], 0
jne 0x1400d8805
mov rcx, rbx
mov dword [rbx + 0x9a8], 0xcc
mov dword [rbx + 8], edi
call fcn.1400d97a0
cmp dword [rbx], 1
jne 0x1400d890a
cmp dword [rbx + 4], 1
je 0x1400d890a
cmp dword [rbx + 8], 1
jne 0x1400d890a
movsxd rsi, dword [rbx + 0x4d8]
cmp esi, 0x40
jge 0x1400d890a
mov edi, reloc.WS2_32.dll_ntohs
mov ecx, edi
call fcn.140184ca0
mov r8, rax
test rax, rax
je 0x1400d886e
lea rdx, str.Content_Length
mov rcx, rax
sub rdx, rax
cmp rdi, 1
jbe 0x1400d886b
movzx eax, byte [rdx + rcx]
dec rdi
mov byte [rcx], al
inc rcx
cmp byte [rdx + rcx], 0
jne 0x1400d8853
mov byte [rcx], 0
lea r14, [rsi + 0x4e]
mov edi, 2
add r14, r14
mov ecx, edi
mov qword [rbx + r14*8], r8
call fcn.140184ca0
mov r8, rax
test rax, rax
je 0x1400d88be
cmp byte [0x1401e3ca4], 0
mov rcx, rax
je 0x1400d88bb
lea rdx, [0x1401e3ca4]
sub rdx, rax
cmp rdi, 1
jbe 0x1400d88bb
movzx eax, byte [rdx + rcx]
dec rdi
mov byte [rcx], al
inc rcx
cmp byte [rdx + rcx], 0
jne 0x1400d88a3
mov byte [rcx], 0
mov rcx, qword [rbx + r14*8]
add rsi, rsi
mov qword [rbx + rsi*8 + 0x4e8], r8
test rcx, rcx
je 0x1400d88ea
test r8, r8
je 0x1400d88ea
inc dword [rbx + 0x4d8]
mov rcx, rbx
call fcn.1400e3310
jmp 0x1400d8973
call fcn.140180564
mov rcx, qword [rbx + rsi*8 + 0x4e8]
xor edi, edi
mov qword [rbx + r14*8], rdi
call fcn.140180564
mov qword [rbx + rsi*8 + 0x4e8], rdi
mov rcx, rbx
call fcn.1400e3310
jmp 0x1400d8973
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, rbx
cmp eax, 0xb7
jne 0x1400d8937
lea r9, [rsp + 0x70]
mov edx, 0x19c
lea r8, str.Destination_already_exists:__s
jmp 0x1400d896e
lea r8, str.Operation_failed
mov edx, 0x190
call fcn.1400e35f0
jmp 0x1400d8973
lea r9, str.Illegal_destination
mov edx, 0x1f6
jmp 0x1400d8964
lea r9, str.Missing_destination
mov edx, 0x190
lea r8, [0x1401e16f8]
mov rcx, rbx
call fcn.1400e35f0
mov rdi, qword [rsp + 0x7f0]
mov rsi, qword [rsp + 0x7e8]
mov r12, qword [rsp + 0x7f8]
mov rcx, qword [rsp + 0x7a0]
xor rcx, rsp
call fcn.1401702b0
add rsp, 0x7b0
pop r15
pop r14
pop r13
pop rbp
pop rbx
ret