Function at 0x1400845d0
Capabilities:
Check if file exists
Copy file
Create directory

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x138]
sub rsp, 0x238
mov qword [rsp + 0x48], 0xfffffffffffffffe
mov rax, qword [0x1402a98a8]
xor rax, rsp
mov qword [rbp + 0x120], rax
mov rdi, r9
mov rbx, r8
mov r12, rdx
mov qword [rsp + 0x50], rdx
xor esi, esi
mov dword [rsp + 0x38], esi
mov rax, qword [rcx]
mov rdx, qword [rax + 0x18]
lea rcx, [rsp + 0x40]
call fcn.14002d200
nop
mov r8, rdi
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.140030020
mov qword [r12], rsi
mov qword [r12 + 8], rsi
mov qword [r12 + 0x10], rsi
mov dword [rsp + 0x38], 1
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x40]
call fcn.14002e0d0
nop
mov rax, qword [rsp + 0x28]
cmp qword [rsp + 0x20], rax
je 0x140084d47
call fcn.14000c990
lea rdx, [rax + 0x331b8]
cmp qword [rdx + 0x18], 8
jb 0x140084688
mov rdx, qword [rdx]
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x50], rsi
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], si
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x1400846b0
lea rcx, [rbp - 0x68]
call fcn.140006d70
nop
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1400846f3
lea rcx, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rcx, qword [rbp - 0x68]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rax, qword [rsp + 0x28]
mov r13, rax
mov rcx, qword [rsp + 0x20]
sub r13, rcx
sar r13, 5
mov r15, rsi
test r13, r13
je 0x140084cf7
nop dword [rax]
nop word [rax + rax]
sub rax, rcx
sar rax, 5
cmp rax, r15
jbe 0x140084e2b
mov r14, r15
shl r14, 5
add rcx, r14
cmp qword [rcx + 0x18], 8
jb 0x140084744
mov rcx, qword [rcx]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140084ce0
mov qword [rsp + 0x68], rsi
mov qword [rsp + 0x70], rsi
mov rsi, qword [rbp - 0x58]
lea rdi, [rbp - 0x68]
cmp qword [rbp - 0x50], 8
cmovae rdi, qword [rbp - 0x68]
cmp rsi, 8
jae 0x140084787
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x70], 7
jmp 0x1400847ca
mov rbx, rsi
or rbx, 7
movabs rax, 0x7ffffffffffffffe
cmp rbx, rax
cmova rbx, rax
lea rdx, [rbx + 1]
lea rcx, [rsp + 0x58]
call fcn.1400069a0
mov qword [rsp + 0x58], rax
lea r8, [rsi*2 + 2]
mov rdx, rdi
mov rcx, rax
call fcn.14019f8d0
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x68], rsi
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
sub rax, rcx
sar rax, 5
cmp rax, r15
jbe 0x140084e25
add rcx, r14
cmp qword [rcx + 0x18], 8
jb 0x1400847f6
mov rcx, qword [rcx]
call qword [sym.imp.SHLWAPI.dll_PathFindFileNameW]
xor esi, esi
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], rsi
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], si
mov r8, 0xffffffffffffffff
nop
inc r8
cmp word [rax + r8*2], si
jne 0x140084820
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140006d70
nop
lea rbx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rbx, qword [rsp + 0x78]
mov rdi, qword [rbp - 0x78]
test rdi, rdi
je 0x140084c39
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0x20]
call fcn.14019fd40
lea rcx, [0x1401e5cd0]
mov edx, 0x100
movzx eax, word [rcx]
cmp ax, dx
jae 0x1400848d2
movzx eax, al
mov byte [rbp + rax + 0x20], 1
add rcx, 2
lea rax, [0x1401e5cd2]
cmp rcx, rax
jne 0x140084872
lea rcx, [rdi - 1]
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea r9, [rbx + rax*2]
nop dword [rax + rax]
movzx eax, word [r9]
cmp ax, dx
jae 0x1400848c3
movzx eax, ax
cmp byte [rbp + rax + 0x20], 0
jne 0x140084923
cmp r9, rbx
je 0x140084c39
sub r9, 2
jmp 0x1400848b0
lea rcx, [rdi - 1]
mov rax, 0xffffffffffffffff
cmp rcx, rax
cmovb rax, rcx
lea r9, [rbx + rax*2]
nop dword [rax + rax]
mov ecx, 1
lea rax, [0x1401e5cd0]
movzx edx, word [r9]
cmp word [rax], dx
je 0x140084923
add rax, 2
sub rcx, 1
jne 0x140084900
cmp r9, rbx
je 0x14008491a
sub r9, 2
jmp 0x1400848f0
mov r9, 0xffffffffffffffff
jmp 0x140084929
sub r9, rbx
sar r9, 1
cmp r9, 0xffffffffffffffff
je 0x140084c39
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x78]
call fcn.1400147d0
nop
lea r8, [rbp - 0x28]
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 8]
call fcn.140027b00
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x140084997
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084992
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084df5
call fcn.1401812c4
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1400849cb
lea rcx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rcx, qword [rsp + 0x58]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 8]
call fcn.140027b00
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x140084a1e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084a19
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084dfb
call fcn.1401812c4
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
sub rax, rcx
sar rax, 5
cmp rax, r15
jbe 0x140084e13
add rcx, r14
cmp qword [rcx + 0x18], 8
jb 0x140084a56
mov rcx, qword [rcx]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x140084b4d
lea rdx, [rsp + 0x58]
cmp qword [rsp + 0x70], 8
cmovae rdx, qword [rsp + 0x58]
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], si
mov r8, 0xffffffffffffffff
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x140084aa0
lea rcx, [rbp - 0x48]
call fcn.140006d70
nop
mov rdx, qword [r12 + 8]
cmp qword [r12 + 0x10], rdx
je 0x140084af0
mov qword [rdx + 0x10], rsi
mov qword [rdx + 0x18], rsi
movups xmm0, xmmword [rbp - 0x48]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rbp - 0x38]
movups xmmword [rdx + 0x10], xmm1
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], si
add qword [r12 + 8], 0x20
jmp 0x140084afd
lea r8, [rbp - 0x48]
mov rcx, r12
call fcn.140001d70
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140084b3d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084b38
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084e01
call fcn.1401812c4
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], si
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140084b8d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084b88
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084e07
call fcn.1401812c4
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], si
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140084bde
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084bd9
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084e0d
call fcn.1401812c4
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], si
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x140084ccd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084cc8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084def
jmp 0x140084cc8
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140084c7a
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084c75
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084e19
call fcn.1401812c4
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], si
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x140084ccd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084cc8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084e1f
call fcn.1401812c4
mov word [rsp + 0x58], si
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], rsi
inc r15
cmp r15, r13
jae 0x140084cf7
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
jmp 0x140084720
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x140084d37
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140084d32
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084e31
call fcn.1401812c4
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], si
mov rbx, qword [rsp + 0x20]
test rbx, rbx
je 0x140084db9
mov rdi, qword [rsp + 0x28]
cmp rbx, rdi
je 0x140084d76
nop dword [rax + rax]
mov rcx, rbx
call fcn.1400068d0
add rbx, 0x20
cmp rbx, rdi
jne 0x140084d60
mov rbx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x140084da3
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140084de9
mov rcx, rbx
call fcn.1401812c4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], rsi
lea rcx, [rsp + 0x40]
call fcn.14002d530
mov rax, r12
mov rcx, qword [rbp + 0x120]
xor rcx, rsp
call fcn.1401813e0
add rsp, 0x238
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401a2d8c
nop
call fcn.1401a2d8c
nop
call fcn.1401a2d8c
int3
call fcn.1401a2d8c
int3
call fcn.1401a2d8c
nop
call fcn.1401a2d8c
nop
call fcn.1401a2d8c
nop
call fcn.14001cfb0
nop
call fcn.1401a2d8c
nop
call fcn.1401a2d8c
nop
call fcn.14001cfb0
nop
call fcn.14001cfb0
nop
call fcn.1401a2d8c
int3