Function at 0x1400252b0
Capabilities:
Check if file exists
Delete directory
Delete file
Move file

Disassembly:
mov qword [rsp + 0x18], 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 [0x1400c2138]
xor rax, rsp
mov qword [rbp + 0x430], rax
mov rsi, rdx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x70], rdx
xor ebx, ebx
mov dword [rsp + 0x24], ebx
mov rcx, rdx
cmp qword [rdx + 0x18], 8
jb 0x140025300
mov rcx, qword [rdx]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov rdi, 0xfffffffffffffffe
movabs rdx, 0x7fffffffffffffff
movabs r13, 0x7ffffffffffffffe
test eax, eax
jne 0x140025399
mov rdi, qword [rsp + 0x30]
add rdi, 8
cmp rdi, rsi
je 0x140025386
mov rax, rsi
mov qword [rsp + 0x38], rax
cmp qword [rsi + 0x18], 8
jb 0x14002534a
mov rax, qword [rsi]
mov qword [rsp + 0x38], rax
mov r12, qword [rsi + 0x10]
mov r15, qword [rdi + 0x18]
cmp r12, r15
ja 0x14002542f
mov r14, rdi
cmp r15, 8
jb 0x140025367
mov r14, qword [rdi]
mov qword [rdi + 0x10], r12
lea rbx, [r12 + r12]
mov r8, rbx
mov rdx, rax
mov rcx, r14
call fcn.140061930
xor eax, eax
mov word [rbx + r14], ax
xor ebx, ebx
mov rdi, qword [rsp + 0x30]
mov dword [rdi + 4], 2
mov rdi, 0xfffffffffffffffe
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x1400253a6
mov rcx, qword [rsi]
call qword [sym.imp.SHLWAPI.dll_PathIsDirectoryW]
test eax, eax
je 0x140025bd7
mov eax, 0x5c
mov word [rbp + 0x418], ax
mov qword [rbp + 0x420], rbx
mov dword [rbp + 0x428], ebx
mov r14, qword [rsi + 0x10]
mov rax, r13
sub rax, r14
cmp rax, 2
jb 0x140025e55
mov r12, rsi
cmp qword [rsi + 0x18], 8
jb 0x1400253ee
mov r12, qword [rsi]
mov qword [rbp - 0x68], rbx
mov qword [rbp - 0x58], rbx
mov qword [rbp - 0x50], rbx
lea r15, [r14 + 2]
mov ebx, 7
lea rdi, [rbp - 0x68]
lea eax, [rbx + 3]
cmp r15, rbx
jbe 0x1400255b6
mov rbx, r15
or rbx, 7
cmp rbx, r13
jbe 0x140025540
mov rbx, r13
lea rcx, [rax - 0xc]
jmp 0x14002556a
cmp r12, r13
ja 0x140025e5b
mov rbx, r12
or rbx, 7
cmp rbx, r13
jbe 0x140025450
mov rbx, r13
mov rcx, 0xfffffffffffffffe
jmp 0x140025491
mov rcx, r15
shr rcx, 1
mov rax, r13
sub rax, rcx
cmp r15, rax
jbe 0x14002546d
mov rbx, r13
mov rcx, 0xfffffffffffffffe
jmp 0x140025491
lea rax, [rcx + r15]
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
cmp rcx, rdx
ja 0x140025e79
add rcx, rcx
cmp rcx, 0x1000
jb 0x1400254bd
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140025e79
mov rcx, rax
call fcn.1400679f4
test rax, rax
je 0x140025e61
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
jmp 0x1400254da
test rcx, rcx
je 0x1400254d5
call fcn.1400679f4
mov r14, rax
test rax, rax
je 0x140025e07
jmp 0x1400254da
xor eax, eax
mov r14d, eax
mov qword [rdi + 0x10], r12
mov qword [rdi + 0x18], rbx
lea rbx, [r12 + r12]
mov r8, rbx
mov rdx, qword [rsp + 0x38]
mov rcx, r14
call fcn.140061930
xor eax, eax
mov word [rbx + r14], ax
cmp r15, 8
jb 0x140025538
mov rcx, qword [rdi]
lea rdx, [r15*2 + 2]
cmp rdx, 0x1000
jb 0x140025533
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140025e73
mov rcx, r8
call fcn.14005cb40
mov qword [rdi], r14
jmp 0x140025384
cmp rbx, rax
cmovb rbx, rax
lea rcx, [rbx + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x140025e97
add rcx, rcx
cmp rcx, 0x1000
jb 0x140025596
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140025e97
mov rcx, rax
call fcn.1400679f4
test rax, rax
je 0x140025e7f
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x1400255b2
test rcx, rcx
je 0x1400255ae
call fcn.1400679f4
mov rdi, rax
test rax, rax
je 0x140025e19
jmp 0x1400255b2
xor eax, eax
mov edi, eax
mov qword [rbp - 0x68], rdi
mov qword [rbp - 0x58], r15
mov qword [rbp - 0x50], rbx
lea rbx, [r14 + r14]
mov r8, rbx
mov rdx, r12
mov rcx, rdi
call fcn.140061930
mov dword [rbx + rdi], 0x2a005c
xor r12d, r12d
mov word [rdi + r15*2], r12w
mov r15d, 1
mov dword [rsp + 0x24], r15d
lea rdx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rdx, qword [rbp - 0x68]
lea rcx, [rbp - 0x40]
call fcn.1400243f0
mov ebx, eax
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x140025643
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002563e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140025e91
call fcn.14005cb40
test ebx, ebx
je 0x140025922
mov ecx, dword [rbp + 0x428]
mov edx, r12d
test ecx, ecx
je 0x140025685
mov eax, dword [rbp - 0x40]
shr eax, 4
and eax, 1
je 0x140025685
cmp word [rbp - 0x14], 0x2e
jne 0x140025685
movzx eax, word [rbp - 0x12]
test ax, ax
je 0x140025680
cmp ax, 0x2e
jne 0x140025685
cmp word [rbp - 0x10], 0
jne 0x140025685
mov edx, 1
test edx, edx
jne 0x1400258f5
call fcn.14000923c
mov rcx, rax
test rax, rax
je 0x140025ed9
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x48], rbx
or r15d, 2
mov dword [rsp + 0x24], r15d
cmp dword [rbp + 0x428], 0
je 0x1400256d2
lea rdx, [rbp - 0x14]
lea rcx, [rsp + 0x48]
call fcn.140017f04
mov rbx, qword [rsp + 0x48]
mov rdx, qword [rsi + 0x10]
mov qword [rsp + 0x38], rdx
mov rax, r13
sub rax, rdx
cmp rax, 1
jb 0x140025ed3
mov qword [rsp + 0x40], rsi
cmp qword [rsi + 0x18], 8
jb 0x1400256ff
mov rax, qword [rsi]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x78], r12
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], r12
lea r12, [rdx + 1]
mov edi, 7
lea r14, [rsp + 0x78]
cmp r12, rdi
jbe 0x1400257c3
mov rdi, r12
or rdi, 7
cmp rdi, r13
jbe 0x14002573b
mov rdi, r13
mov rcx, 0xfffffffffffffffe
jmp 0x14002576b
cmp rdi, 0xa
mov eax, 0xa
cmovb rdi, rax
lea rcx, [rdi + 1]
movabs rax, 0x7fffffffffffffff
cmp rcx, rax
ja 0x140025ec1
add rcx, rcx
cmp rcx, 0x1000
jb 0x14002579c
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x140025ec1
mov rcx, rax
call fcn.1400679f4
test rax, rax
je 0x140025e9d
lea r14, [rax + 0x27]
and r14, 0xffffffffffffffe0
mov qword [r14 - 8], rax
mov rdx, qword [rsp + 0x38]
jmp 0x1400257be
test rcx, rcx
je 0x1400257b9
call fcn.1400679f4
mov r14, rax
test rax, rax
je 0x140025eaf
mov rdx, qword [rsp + 0x38]
jmp 0x1400257be
xor eax, eax
mov r14d, eax
mov qword [rsp + 0x78], r14
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], rdi
lea rdi, [rdx + rdx]
mov r8, rdi
mov rdx, qword [rsp + 0x40]
mov rcx, r14
call fcn.140061930
mov eax, 0x5c
mov word [r14 + rdi], ax
xor eax, eax
mov word [r14 + r12*2], ax
or r15d, 4
mov dword [rsp + 0x24], r15d
mov r8, 0xffffffffffffffff
inc r8
cmp word [rbx + r8*2], 0
jne 0x140025800
mov rdx, rbx
lea rcx, [rsp + 0x78]
call fcn.14000993c
xor r12d, r12d
mov qword [rsp + 0x50], r12
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x68], r12
movups xmm0, xmmword [rax]
movups xmmword [rsp + 0x50], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rsp + 0x60], xmm1
mov qword [rax + 0x10], r12
mov qword [rax + 0x18], 7
mov word [rax], r12w
or r15d, 8
mov dword [rsp + 0x24], r15d
lea rdx, [rsp + 0x50]
mov rcx, qword [rsp + 0x30]
call fcn.1400252b0
test eax, eax
sete dil
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x1400258aa
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400258a5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140025ec7
call fcn.14005cb40
mov qword [rbp - 0x78], r12
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], r12w
and r15d, 0xfffffffd
mov dword [rsp + 0x24], r15d
lea rdx, [rbx - 0x18]
mov eax, 0xffffffff
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400258e1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
test dil, dil
jne 0x1400259c9
mov ecx, dword [rbp + 0x428]
mov r15d, dword [rsp + 0x24]
mov rax, qword [rbp + 0x420]
test rax, rax
je 0x140025922
test ecx, ecx
je 0x140025922
lea rdx, [rbp - 0x40]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindNextFileW]
mov ecx, eax
mov dword [rbp + 0x428], eax
test eax, eax
jne 0x140025651
mov ebx, r12d
mov dword [rsp + 0x24], ebx
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140025936
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
test eax, eax
jne 0x140025b57
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140025951
mov rcx, qword [rsi]
xor edx, edx
lea r8d, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov r14, qword [rsp + 0x30]
add r14, 8
cmp r14, rsi
je 0x1400259b6
mov r12, rsi
cmp qword [rsi + 0x18], 8
jb 0x140025978
mov r12, qword [rsi]
mov rbx, qword [rsi + 0x10]
mov r15, qword [r14 + 0x18]
cmp rbx, r15
ja 0x140025a44
mov rdi, r14
cmp r15, 8
jb 0x140025995
mov rdi, qword [r14]
mov qword [r14 + 0x10], rbx
add rbx, rbx
mov r8, rbx
mov rdx, r12
mov rcx, rdi
call fcn.140061930
xor r12d, r12d
mov word [rdi + rbx], r12w
mov ebx, dword [rsp + 0x24]
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 4], eax
jmp 0x140025b5c
mov dword [rbp + 0x428], r12d
mov rcx, qword [rbp + 0x420]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x1400259ee
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rbp + 0x420], r12
mov rdx, qword [rsi + 0x18]
cmp rdx, 8
jb 0x140025a2d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x140025a28
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140025ecd
mov rcx, r8
call fcn.14005cb40
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
xor eax, eax
jmp 0x140025cd3
cmp rbx, r13
ja 0x140025ee4
mov rcx, rbx
or rcx, 7
cmp rcx, r13
jbe 0x140025a62
mov rax, 0xfffffffffffffffe
jmp 0x140025aac
mov rdx, r15
shr rdx, 1
mov rax, r13
sub rax, rdx
cmp r15, rax
jbe 0x140025a7c
mov rax, 0xfffffffffffffffe
jmp 0x140025aac
lea rax, [r15 + rdx]
mov r13, rcx
cmp rcx, rax
cmovb r13, rax
lea rax, [r13 + 1]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x140025f02
add rax, rax
cmp rax, 0x1000
jb 0x140025ad5
lea rcx, [rax + 0x27]
cmp rcx, rax
jbe 0x140025f02
call fcn.1400679f4
test rax, rax
je 0x140025eea
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140025af3
test rax, rax
je 0x140025af0
mov rcx, rax
call fcn.1400679f4
mov rdi, rax
test rax, rax
je 0x140025e2b
jmp 0x140025af3
mov rdi, rax
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], r13
add rbx, rbx
mov r8, rbx
mov rdx, r12
mov rcx, rdi
call fcn.140061930
xor r12d, r12d
mov word [rdi + rbx], r12w
cmp r15, 8
jb 0x140025b4f
mov rcx, qword [r14]
lea rdx, [r15*2 + 2]
cmp rdx, 0x1000
jb 0x140025b4a
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140025efc
mov rcx, r8
call fcn.14005cb40
mov qword [r14], rdi
jmp 0x1400259b2
mov ebx, 1
mov dword [rbp + 0x428], r12d
mov rcx, qword [rbp + 0x420]
lea rax, [rcx - 1]
cmp rax, 0xfffffffffffffffd
ja 0x140025b81
call qword [sym.imp.KERNEL32.dll_FindClose]
mov qword [rbp + 0x420], r12
mov rdx, qword [rsi + 0x18]
cmp rdx, 8
jb 0x140025bc0
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x140025bbb
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140025f08
mov rcx, r8
call fcn.14005cb40
mov qword [rsi + 0x10], r12
mov qword [rsi + 0x18], 7
mov word [rsi], r12w
mov eax, ebx
jmp 0x140025cd3
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140025be4
mov rcx, qword [rsi]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov r12d, eax
test eax, eax
jne 0x140025c80
mov rcx, rsi
cmp qword [rsi + 0x18], 8
jb 0x140025c02
mov rcx, qword [rsi]
xor edx, edx
lea r8d, [rdx + 4]
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
mov r12d, eax
test eax, eax
jne 0x140025c80
mov r14, qword [rsp + 0x30]
add r14, 8
cmp r14, rsi
je 0x140025c72
mov rax, rsi
mov qword [rsp + 0x40], rax
cmp qword [rsi + 0x18], 8
jb 0x140025c3a
mov rax, qword [rsi]
mov qword [rsp + 0x40], rax
mov rbx, qword [rsi + 0x10]
mov r15, qword [r14 + 0x18]
cmp rbx, r15
ja 0x140025cfd
mov rdi, r14
cmp r15, 8
jb 0x140025c57
mov rdi, qword [r14]
mov qword [r14 + 0x10], rbx
add rbx, rbx
mov r8, rbx
mov rdx, rax
mov rcx, rdi
call fcn.140061930
xor eax, eax
mov word [rdi + rbx], ax
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov rcx, qword [rsp + 0x30]
mov dword [rcx + 4], eax
mov rdx, qword [rsi + 0x18]
cmp rdx, 8
jb 0x140025cbf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsi]
cmp rdx, 0x1000
jb 0x140025cba
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140025e4f
mov rcx, r8
call fcn.14005cb40
xor eax, eax
mov qword [rsi + 0x10], rax
mov qword [rsi + 0x18], 7
mov word [rsi], ax
mov eax, r12d
mov rcx, qword [rbp + 0x430]
xor rcx, rsp
call fcn.14005ccc0
mov rbx, qword [rsp + 0x590]
add rsp, 0x540
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
cmp rbx, r13
ja 0x140025f0e
mov rcx, rbx
or rcx, 7
cmp rcx, r13
ja 0x140025d55
mov rdx, r15
shr rdx, 1
mov rax, r13
sub rax, rdx
cmp r15, rax
ja 0x140025d55
lea rax, [r15 + rdx]
mov r13, rcx
cmp rcx, rax
cmovb r13, rax
lea rax, [r13 + 1]
movabs rcx, 0x7fffffffffffffff
cmp rax, rcx
ja 0x140025e01
lea rdi, [rax + rax]
cmp rdi, 0x1000
jb 0x140025d7e
lea rcx, [rdi + 0x27]
cmp rcx, rdi
jbe 0x140025e01
call fcn.1400679f4
test rax, rax
je 0x140025f14
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x140025d9d
test rdi, rdi
je 0x140025d99
mov rcx, rdi
call fcn.1400679f4
mov rdi, rax
test rax, rax
je 0x140025e3d
jmp 0x140025d9d
xor eax, eax
mov edi, eax
mov qword [r14 + 0x10], rbx
mov qword [r14 + 0x18], r13
add rbx, rbx
mov r8, rbx
mov rdx, qword [rsp + 0x40]
mov rcx, rdi
call fcn.140061930
xor eax, eax
mov word [rdi + rbx], ax
cmp r15, 8
jb 0x140025df9
mov rcx, qword [r14]
lea rdx, [r15*2 + 2]
cmp rdx, 0x1000
jb 0x140025df4
add rdx, 0x27
mov r8, qword [rcx - 8]
sub rcx, r8
lea rax, [rcx - 8]
cmp rax, 0x1f
ja 0x140025f26
mov rcx, r8
call fcn.14005cb40
mov qword [r14], rdi
jmp 0x140025c72
call fcn.140005fc4
int3
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x29]
call fcn.140062228
nop
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x21]
call fcn.140062228
int3
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x20]
call fcn.140062228
nop
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x20]
call fcn.140062228
nop
call fcn.140067514
nop
call fcn.140005da8
nop
call fcn.140005da8
int3
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x28]
call fcn.140062228
int3
call fcn.140067514
int3
call fcn.140005fc4
nop
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x20]
call fcn.140062228
int3
call fcn.140067514
int3
call fcn.140005fc4
nop
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x2a]
call fcn.140062228
int3
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x2b]
call fcn.140062228
int3
call fcn.140005fc4
int3
call fcn.140067514
nop
call fcn.140067514
nop
call fcn.140005da8
int3
mov ecx, 0x80004005
call fcn.14000d0c0
nop
call fcn.140005da8
int3
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x21]
call fcn.140062228
int3
call fcn.140067514
int3
call fcn.140005fc4
nop
call fcn.140067514
nop
call fcn.140005da8
int3
lea rdx, [0x1400beb80]
lea rcx, [rsp + 0x21]
call fcn.140062228
int3
call fcn.140067514
int3