Function at 0x14002e4e0
Capabilities:
Move file

Disassembly:
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x440]
sub rsp, 0x540
mov rax, qword [0x1402a0480]
xor rax, rsp
mov qword [rbp + 0x438], rax
mov r14, r8
mov qword [rbp - 0x40], rdx
mov r15, rdx
mov qword [rbp + 0x80], 0x80
mov r12, rcx
lea rax, [rbp + 0x88]
xor ebx, ebx
mov qword [rbp + 0x70], rax
mov rdx, r14
mov qword [rbp + 0x78], rbx
mov r9d, 0x104
lea r8, [rbp + 0x70]
lea rcx, [rsp + 0x58]
call fcn.1400302d0
cmp dword [rsp + 0x58], ebx
je 0x14002e565
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [r12], xmm0
jmp 0x14002ec0a
mov r13d, ebx
call fcn.140005800
mov rsi, rax
mov qword [rbp - 0x48], rax
nop dword [rax]
nop dword [rax + rax]
mov r9b, 1
lea rcx, [rsp + 0x58]
mov r8, r14
mov rdx, r15
call fcn.14002ec50
mov rax, qword [rsp + 0x60]
mov ebx, dword [rsp + 0x58]
mov rdi, qword [rax + 8]
cmp rdi, qword [rsi + 8]
jne 0x14002e5af
cmp ebx, 0x78
jne 0x14002e5af
mov al, 1
jmp 0x14002e5b1
xor al, al
test al, al
jne 0x14002eb70
test ebx, ebx
je 0x14002e556
call fcn.1400057f0
mov r15, rax
cmp rdi, qword [rax + 8]
jne 0x14002e556
cmp ebx, 0xd
jne 0x14002e556
mov rcx, qword [rbp + 0x70]
xor ebx, ebx
mov qword [rsp + 0x30], rbx
xor r9d, r9d
mov dword [rsp + 0x28], 0x4000080
mov edx, 0x80010000
mov dword [rsp + 0x20], 3
lea r8d, [rbx + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rdi, rax
cmp rax, 0xffffffffffffffff
jne 0x14002e63d
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp - 0x28]
call fcn.14003de40
mov rax, qword [rbp - 0x20]
mov rcx, qword [r15 + 8]
cmp qword [rax + 8], rcx
jne 0x14002e62f
cmp dword [rbp - 0x28], 2
je 0x14002e9f2
movups xmm0, xmmword [rbp - 0x28]
movups xmmword [r12], xmm0
jmp 0x14002ec0a
lea rdx, [rbp + 0x1c8]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x14002eb52
mov esi, ebx
mov ecx, esi
test esi, esi
jne 0x14002e66d
mov byte [rbp + 0x434], 0x30
lea r10, [rbp + 0x434]
jmp 0x14002e6af
lea r10, [rbp + 0x435]
movabs rbx, 0xcccccccccccccccd
nop
dec r10
mov rax, rbx
mul rcx
mov r8, rdx
shr r8, 3
movzx eax, r8b
shl al, 2
lea edx, [rax + r8]
add dl, dl
sub cl, dl
add cl, 0x30
mov byte [r10], cl
mov rcx, r8
test r8, r8
jne 0x14002e680
xor ebx, ebx
lea r9, [rsp + 0x40]
mov rdx, r10
lea r8, [rbp + 0x435]
lea rcx, [rbp + 0x50]
call fcn.1400220c0
movzx eax, byte [r14 + 0x20]
lea rdx, str..tmp
mov word [rbp - 0x50], 0x103
mov qword [rbp - 0x70], rdx
test al, al
je 0x14002e786
cmp al, 1
jne 0x14002e71d
movsd xmm1, qword [rbp - 0x50]
lea rax, [rsp + 0x68]
movups xmm2, xmmword [rbp - 0x70]
mov qword [rbp - 0x38], rax
movups xmm0, xmmword [rbp - 0x60]
movsd qword [rbp - 0x78], xmm1
movzx ecx, byte [rbp - 0x78]
movups xmmword [rsp + 0x68], xmm2
movups xmmword [rsp + 0x78], xmm0
cmp cl, 2
jb 0x14002e760
movups xmmword [rbp - 0x38], xmm2
jmp 0x14002e762
cmp byte [r14 + 0x21], 1
mov cl, 2
mov qword [rsp + 0x48], r14
jne 0x14002e739
movups xmm0, xmmword [r14]
movzx ecx, al
movups xmmword [rsp + 0x48], xmm0
jmp 0x14002e73e
movups xmm0, xmmword [rsp + 0x48]
mov rax, qword [rbp - 0x68]
mov qword [rbp - 0x80], rax
lea rax, [rsp + 0x68]
mov qword [rbp - 0x38], rax
movups xmmword [rsp + 0x68], xmm0
mov qword [rsp + 0x78], rdx
mov byte [rbp - 0x78], cl
mov byte [rbp - 0x77], 3
mov cl, 2
movups xmm0, xmmword [rbp - 0x38]
lea rax, [rbp + 0x50]
mov byte [rbp + 0x28], cl
mov qword [rbp + 0x18], rax
mov rax, qword [rbp + 0x198]
mov qword [rbp + 0x20], rax
movups xmmword [rbp + 8], xmm0
mov byte [rbp + 0x29], 4
jmp 0x14002e792
mov word [rbp - 0x78], 0x100
mov word [rbp + 0x28], 0x100
lea rdx, [rbp + 0x30]
lea rcx, [rbp + 8]
call fcn.14003ecc0
mov rdx, qword [rbp + 0x68]
cmp rdx, 0xf
jbe 0x14002e7da
mov rcx, qword [rbp + 0x50]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e7d5
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea0b
call fcn.140183f7c
lea rax, [rbp + 0x30]
mov word [rbp - 0x50], 0x104
xor r9d, r9d
mov qword [rbp - 0x70], rax
lea r8, [rbp - 0x70]
mov rdx, rdi
lea rcx, [rbp - 8]
call fcn.14002ec50
mov edx, dword [rbp - 8]
test edx, edx
je 0x14002e9aa
mov rax, qword [rbp]
mov rcx, qword [r15 + 8]
cmp qword [rax + 8], rcx
jne 0x14002eaca
lea eax, [rdx - 0xd]
test eax, 0xfffffffb
jne 0x14002eaca
mov rcx, qword [rbp + 0x70]
xor r9d, r9d
mov qword [rsp + 0x30], rbx
xor edx, edx
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
lea r8d, [r9 + 7]
call qword [sym.imp.KERNEL32.dll_CreateFileW]
mov rbx, rax
cmp rax, 0xffffffffffffffff
je 0x14002e945
lea rdx, [rbp + 0x190]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x14002ea12
mov eax, dword [rbp + 0x1bc]
cmp dword [rbp + 0x1f4], eax
jne 0x14002e8f9
mov eax, dword [rbp + 0x1c0]
cmp dword [rbp + 0x1f8], eax
jne 0x14002e8f9
mov eax, dword [rbp + 0x1ac]
cmp dword [rbp + 0x1e4], eax
jne 0x14002e8f9
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rbp + 0x48]
cmp rdx, 0xf
jbe 0x14002e8e1
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e8dc
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea5d
call fcn.140183f7c
inc esi
mov ebx, 0
cmp esi, 0xc8
jne 0x14002e657
jmp 0x14002e9e5
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rbp + 0x48]
cmp rdx, 0xf
jbe 0x14002e9e5
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e9e0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002ea5d
jmp 0x14002e9e0
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
lea rcx, [rbp - 0x18]
call fcn.14003de40
mov rax, qword [rbp - 0x10]
mov rcx, qword [r15 + 8]
cmp qword [rax + 8], rcx
jne 0x14002ea88
cmp dword [rbp - 0x18], 2
jne 0x14002ea88
mov rdx, qword [rbp + 0x48]
cmp rdx, 0xf
jbe 0x14002e9e5
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e9e0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002eac3
jmp 0x14002e9e0
mov rdx, qword [rbp + 0x48]
cmp rdx, 0xf
jbe 0x14002e9e5
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002e9e0
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x14002eb2f
call fcn.140183f7c
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rsi, qword [rbp - 0x48]
inc r13d
cmp r13d, 0xc8
je 0x14002eb36
mov r15, qword [rbp - 0x40]
jmp 0x14002e580
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, r12
call fcn.14003de40
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdx, qword [rbp + 0x48]
cmp rdx, 0xf
jbe 0x14002ea69
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002ea64
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002ea64
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140183f7c
xor ebx, ebx
mov qword [rbp + 0x48], 0xf
mov rcx, rdi
mov qword [rbp + 0x40], rbx
mov byte [rbp + 0x30], bl
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14002ec0a
movups xmm0, xmmword [rbp - 0x18]
mov rdx, qword [rbp + 0x48]
movups xmmword [r12], xmm0
cmp rdx, 0xf
jbe 0x14002ea69
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002ea64
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002ea64
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
movups xmm0, xmmword [rbp - 8]
mov rdx, qword [rbp + 0x48]
movups xmmword [r12], xmm0
cmp rdx, 0xf
jbe 0x14002eb11
mov rcx, qword [rbp + 0x30]
inc rdx
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002eb0c
mov rcx, qword [rcx - 8]
add rdx, 0x27
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x14002eb0c
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.140183f7c
mov rcx, rdi
mov qword [rbp + 0x40], rbx
mov qword [rbp + 0x48], 0xf
mov byte [rbp + 0x30], 0
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14002ec0a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
mov dword [rsp + 0x48], 0xd
mov qword [rsp + 0x50], r15
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [r12], xmm0
jmp 0x14002ec0a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, r12
call fcn.14003de40
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x14002ec0a
lea rax, [rbp + 0x218]
mov qword [rbp + 0x210], 0x104
xor ebx, ebx
mov qword [rbp + 0x200], rax
xor r9d, r9d
mov qword [rbp + 0x208], rbx
lea r8, [rbp + 0x200]
mov rdx, r15
lea rcx, [rsp + 0x48]
call fcn.14002da70
mov rcx, qword [rbp + 0x200]
cmp dword [rsp + 0x48], ebx
je 0x14002ebc2
movups xmm0, xmmword [rsp + 0x48]
movups xmmword [r12], xmm0
jmp 0x14002ebf8
mov rdx, qword [rbp + 0x70]
mov r8d, 1
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x14002ebe1
mov dword [r12], ebx
mov qword [r12 + 8], rsi
jmp 0x14002ebf1
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, eax
mov rcx, r12
call fcn.14003de40
mov rcx, qword [rbp + 0x200]
lea rax, [rbp + 0x218]
cmp rcx, rax
je 0x14002ec0a
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rcx, qword [rbp + 0x70]
lea rax, [rbp + 0x88]
cmp rcx, rax
je 0x14002ec20
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rax, r12
mov rcx, qword [rbp + 0x438]
xor rcx, rsp
call fcn.1401842c0
mov rbx, qword [rsp + 0x598]
add rsp, 0x540
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret