Function at 0x140029eb0
Capabilities:
Move file

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x448
mov rbx, r8
mov rdi, rdx
mov r13, rcx
mov rax, qword [0x1402f4538]
xor rax, rsp
mov qword [rsp + 0x440], rax
lea rax, [rsp + 0x340]
mov qword [rsp + 0x328], rax
mov qword [rsp + 0x330], 0
mov qword [rsp + 0x338], 0x80
lea r8, [rsp + 0x328]
mov r9d, 0x104
mov rdx, rbx
call fcn.140029010
cmp dword [r13], 0
je 0x140029f65
mov rcx, qword [rsp + 0x328]
lea rax, [rsp + 0x340]
cmp rcx, rax
je 0x140029f3e
call qword [0x1402f0bf8]
mov rcx, qword [rsp + 0x440]
xor rcx, rsp
call fcn.140241350
mov rax, r13
add rsp, 0x448
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r14, [rsp + 0xa4]
lea rsi, [rsp + 0x80]
movabs r15, 0xcccccccccccccccd
xor ebp, ebp
mov qword [rsp + 0x48], rdi
mov qword [rsp + 0x50], rbx
jmp 0x140029fba
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rdi, qword [rsp + 0x48]
lea rsi, [rsp + 0x80]
mov ebp, dword [rsp + 0x44]
inc ebp
cmp ebp, 0xc8
je 0x14002a8bd
mov rcx, rsi
mov rdx, rdi
mov r8, rbx
mov r9b, 1
call fcn.14002dd70
mov eax, dword [0x1402f5d00]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a73a
mov rax, qword [rsp + 0x88]
mov rcx, qword [rax + 8]
mov eax, dword [rsp + 0x80]
cmp rcx, qword [0x1402f4228]
jne 0x14002a015
cmp eax, 0x78
je 0x14002a7ee
test eax, eax
je 0x14002a7dc
mov eax, dword [0x1402f5d04]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a770
mov rax, qword [rsp + 0x88]
mov rax, qword [rax + 8]
cmp rax, qword [0x1402f4238]
jne 0x14002a7dc
cmp dword [rsp + 0x80], 0xd
jne 0x14002a7dc
mov rcx, qword [rsp + 0x328]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x4000080
mov dword [rsp + 0x20], 3
mov edx, 0x80010000
mov r8d, 7
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x14002a6e0
mov r12, rax
mov rcx, rax
lea rdx, [rsp + 0x108]
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x14002a895
mov qword [rsp + 0x38], r12
mov dword [rsp + 0x44], ebp
xor ebp, ebp
nop
test rbp, rbp
je 0x14002a1b0
mov esi, 0x16
xor edi, edi
mov rcx, rbp
mov r12, qword [rsp + 0x38]
nop dword [rax + rax]
mov rax, rcx
mul r15
shr rdx, 3
lea eax, [rdx + rdx]
lea eax, [rax + rax*4]
mov r8d, ecx
sub r8d, eax
or r8b, 0x30
mov byte [rsp + rsi + 0x8e], r8b
dec rsi
inc rdi
cmp rcx, 9
mov rcx, rdx
ja 0x14002a0f0
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xd8], 0
mov qword [rsp + 0xe0], 0xf
mov byte [rsp + 0xc8], 0
test rdi, rdi
je 0x14002a270
cmp rdi, 0xf
jbe 0x14002a1e7
cmp rsi, 0x17
jge 0x14002a938
mov rbx, r14
mov r14, r13
mov r13, rdi
or r13, 0xf
cmp r13, 0x17
mov eax, 0x16
cmovb r13, rax
cmp r13, 0xfff
jb 0x14002a214
lea rcx, [r13 + 0x28]
call fcn.140241054
lea r12, [rax + 0x27]
and r12, 0xffffffffffffffe0
mov qword [r12 - 8], rax
jmp 0x14002a220
mov byte [rsp + 0xa4], 0x30
mov qword [rsp + 0xc8], 0
mov qword [rsp + 0xe0], 0xf
mov byte [rsp + 0xc8], 0
mov edi, 1
mov rdx, r14
mov r12, qword [rsp + 0x38]
jmp 0x14002a1f2
lea rdx, [rsp + 0xa5]
sub rdx, rdi
mov qword [rsp + 0xd8], rdi
lea rcx, [rsp + 0xc8]
mov r8, rdi
call fcn.140242bf0
mov byte [rsp + rdi + 0xc8], 0
jmp 0x14002a270
lea rcx, [r13 + 1]
call fcn.140241054
mov r12, rax
lea rax, [rsp + 0xa5]
lea rdx, [rax + rsi]
add rdx, 0xffffffffffffffea
mov qword [rsp + 0xd8], rdi
mov qword [rsp + 0xe0], r13
mov rcx, r12
mov r8, rdi
call fcn.140242bf0
mov byte [r12 + rdi], 0
mov qword [rsp + 0xc8], r12
mov r13, r14
mov r14, rbx
mov rbx, qword [rsp + 0x50]
mov r12, qword [rsp + 0x38]
nop dword [rax + rax]
movzx eax, byte [rbx + 0x20]
cmp eax, 1
je 0x14002a2a0
test eax, eax
lea rsi, [rsp + 0x90]
jne 0x14002a2d0
mov word [rsp + 0x78], 0x100
mov cl, 1
xor eax, eax
jmp 0x14002a332
lea rdx, str..tmp
mov qword [rsp + 0x58], rdx
mov word [rsp + 0x78], 0x103
mov al, 3
mov rcx, qword [rsp + 0x60]
lea rsi, [rsp + 0x90]
jmp 0x14002a310
cmp byte [rbx + 0x21], 1
mov rcx, qword [rbx]
cmovne rcx, rbx
movzx eax, al
mov edx, 2
cmovne eax, edx
mov rdx, qword [rbx + 8]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x60], rdx
lea rcx, str..tmp
mov qword [rsp + 0x68], rcx
mov byte [rsp + 0x78], al
mov byte [rsp + 0x79], 3
mov al, 2
lea rdx, [rsp + 0x58]
mov qword [rsp + 0x90], rdx
mov qword [rsp + 0x98], rcx
lea rcx, [rsp + 0xc8]
mov qword [rsp + 0xa0], rcx
mov cl, 4
mov byte [rsp + 0xb0], al
mov byte [rsp + 0xb1], cl
mov rcx, rsi
lea rdx, [rsp + 0xe8]
call fcn.140020610
mov rax, qword [rsp + 0xe0]
cmp rax, 0x10
jb 0x14002a397
mov rcx, qword [rsp + 0xc8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14002a392
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14002a932
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140241098
mov word [rsp + 0xb0], 0x104
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x90], rax
lea rcx, [rsp + 0x58]
mov rdx, r12
mov r8, rsi
xor r9d, r9d
call fcn.14002dd70
cmp dword [rsp + 0x58], 0
je 0x14002a4f0
mov eax, dword [0x1402f5d04]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a5f0
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
cmp rax, qword [0x1402f4238]
jne 0x14002a40d
cmp dword [rsp + 0x58], 0x11
je 0x14002a453
mov eax, dword [0x1402f5d04]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a626
mov rax, qword [rsp + 0x60]
mov rax, qword [rax + 8]
cmp rax, qword [0x1402f4238]
jne 0x14002a559
cmp dword [rsp + 0x58], 0xd
jne 0x14002a559
mov rcx, qword [rsp + 0x328]
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x80
mov dword [rsp + 0x20], 3
xor edx, edx
mov r8d, 7
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x14002a4fb
mov rdi, rax
mov rcx, rax
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
test eax, eax
je 0x14002a56b
mov eax, dword [rsp + 0x134]
mov r12d, 5
cmp eax, dword [rsp + 0xbc]
jne 0x14002a581
mov eax, dword [rsp + 0x138]
cmp eax, dword [rsp + 0xc0]
jne 0x14002a581
mov eax, dword [rsp + 0x124]
xor ecx, ecx
cmp eax, dword [rsp + 0xac]
sete cl
lea r12d, [rcx + rcx]
add r12d, 5
jmp 0x14002a581
mov r12d, 5
jmp 0x14002a58a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, r13
mov edx, eax
call fcn.1400715f0
mov eax, dword [0x1402f5d04]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a65c
mov rax, qword [r13 + 8]
mov rax, qword [rax + 8]
cmp rax, qword [0x1402f4238]
sete al
cmp dword [r13], 2
sete cl
and cl, al
movzx eax, cl
lea r12d, [rax*4 + 1]
jmp 0x14002a58a
movups xmm0, xmmword [rsp + 0x58]
movups xmmword [r13], xmm0
mov r12d, 1
jmp 0x14002a58a
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, r13
mov edx, eax
call fcn.1400715f0
mov r12d, 1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov rax, qword [rsp + 0x100]
cmp rax, 0x10
jb 0x14002a5d1
mov rcx, qword [rsp + 0xe8]
lea rdx, [rax + 1]
cmp rdx, 0x1000
jb 0x14002a5cc
mov r8, qword [rcx - 8]
add rcx, 0xfffffffffffffff8
sub rcx, r8
cmp rcx, 0x20
jae 0x14002a932
add rax, 0x28
mov rdx, rax
mov rcx, r8
call fcn.140241098
cmp r12d, 7
jne 0x14002a6a0
inc rbp
cmp rbp, 0xc8
jne 0x14002a0d0
jmp 0x140029f90
lea rcx, [0x1402f5d04]
call fcn.14024119c
cmp dword [0x1402f5d04], 0xffffffff
jne 0x14002a3f4
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d04]
call fcn.140241204
jmp 0x14002a3f4
lea rcx, [0x1402f5d04]
call fcn.14024119c
cmp dword [0x1402f5d04], 0xffffffff
jne 0x14002a432
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d04]
call fcn.140241204
jmp 0x14002a432
lea rcx, [0x1402f5d04]
call fcn.14024119c
cmp dword [0x1402f5d04], 0xffffffff
jne 0x14002a530
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d04]
call fcn.140241204
jmp 0x14002a530
cmp r12d, 5
je 0x140029f90
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test r12d, r12d
mov rdi, qword [rsp + 0x48]
lea rsi, [rsp + 0x80]
mov ebp, dword [rsp + 0x44]
je 0x140029fac
cmp r12d, 4
je 0x140029fac
jmp 0x14002a8b3
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, r13
mov edx, eax
call fcn.1400715f0
mov eax, dword [0x1402f5d04]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a7a6
mov rax, qword [r13 + 8]
mov rax, qword [rax + 8]
cmp rax, qword [0x1402f4238]
jne 0x140029f23
cmp dword [r13], 2
je 0x140029fac
jmp 0x140029f23
lea rcx, [0x1402f5d00]
call fcn.14024119c
cmp dword [0x1402f5d00], 0xffffffff
jne 0x140029ff0
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d00]
call fcn.140241204
jmp 0x140029ff0
lea rcx, [0x1402f5d04]
call fcn.14024119c
cmp dword [0x1402f5d04], 0xffffffff
jne 0x14002a042
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d04]
call fcn.140241204
jmp 0x14002a042
lea rcx, [0x1402f5d04]
call fcn.14024119c
cmp dword [0x1402f5d04], 0xffffffff
jne 0x14002a715
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d04]
call fcn.140241204
jmp 0x14002a715
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [r13], xmm0
jmp 0x140029f23
lea rsi, [rsp + 0x120]
mov qword [rsp + 0x108], rsi
mov qword [rsp + 0x110], 0
mov qword [rsp + 0x118], 0x104
lea r8, [rsp + 0x108]
mov rcx, r13
mov rdx, rdi
call fcn.140029d90
cmp dword [r13], 0
jne 0x14002a916
mov rdx, qword [rsp + 0x328]
mov rcx, qword [rsp + 0x108]
mov r8d, 1
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
je 0x14002a906
mov dword [r13], 0
mov eax, dword [0x1402f5d00]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a96c
lea rax, str._4__
mov qword [r13 + 8], rax
jmp 0x14002a916
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, r13
mov edx, eax
call fcn.1400715f0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_CloseHandle]
jmp 0x140029f23
cmp r12d, 2
jne 0x140029f23
mov dword [r13], 0
mov qword [r13 + 8], 0
mov eax, dword [0x1402f5d04]
mov ecx, dword [0x1402f6910]
mov rdx, qword gs:[0x58]
mov rcx, qword [rdx + rcx*8]
cmp eax, dword [rcx + 4]
jg 0x14002a93d
mov dword [r13], 0xd
lea rax, str.P4__
mov qword [r13 + 8], rax
jmp 0x140029f23
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, r13
mov edx, eax
call fcn.1400715f0
mov rcx, qword [rsp + 0x108]
cmp rcx, rsi
je 0x140029f23
call qword [0x1402f0bf8]
jmp 0x140029f23
call qword [0x1402f0b58]
call fcn.1400044b0
lea rcx, [0x1402f5d04]
call fcn.14024119c
cmp dword [0x1402f5d04], 0xffffffff
jne 0x14002a8ee
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d04]
call fcn.140241204
jmp 0x14002a8ee
lea rcx, [0x1402f5d00]
call fcn.14024119c
cmp dword [0x1402f5d00], 0xffffffff
jne 0x14002a885
lea rcx, [fcn.1400039b0]
call fcn.140241370
lea rcx, [0x1402f5d00]
call fcn.140241204
jmp 0x14002a885