Function at 0x140083640
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 [0x1402a6808]
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.14002d260
nop
mov r8, rdi
mov rdx, rbx
lea rcx, [rsp + 0x40]
call fcn.14002ff00
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.14002e0a0
nop
mov rax, qword [rsp + 0x28]
cmp qword [rsp + 0x20], rax
je 0x140083db7
call fcn.14000c980
lea rdx, [rax + 0x331b0]
cmp qword [rdx + 0x18], 8
jb 0x1400836f8
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 0x140083720
lea rcx, [rbp - 0x68]
call fcn.140006d60
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 0x140083763
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 0x140083d67
nop dword [rax]
nop word [rax + rax]
sub rax, rcx
sar rax, 5
cmp rax, r15
jbe 0x140083e9b
mov r14, r15
shl r14, 5
add rcx, r14
cmp qword [rcx + 0x18], 8
jb 0x1400837b4
mov rcx, qword [rcx]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x140083d50
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 0x1400837f7
movups xmm0, xmmword [rdi]
movups xmmword [rsp + 0x58], xmm0
mov qword [rsp + 0x70], 7
jmp 0x14008383a
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.140006990
mov qword [rsp + 0x58], rax
lea r8, [rsi*2 + 2]
mov rdx, rdi
mov rcx, rax
call fcn.14019dbf0
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 0x140083e95
add rcx, r14
cmp qword [rcx + 0x18], 8
jb 0x140083866
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 0x140083890
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.140006d60
nop
lea rbx, [rsp + 0x78]
cmp qword [rbp - 0x70], 8
cmovae rbx, qword [rsp + 0x78]
mov rdi, qword [rbp - 0x78]
test rdi, rdi
je 0x140083ca9
xor edx, edx
mov r8d, 0x100
lea rcx, [rbp + 0x20]
call fcn.14019e060
lea rcx, [0x1401e3cd0]
mov edx, 0x100
movzx eax, word [rcx]
cmp ax, dx
jae 0x140083942
movzx eax, al
mov byte [rbp + rax + 0x20], 1
add rcx, 2
lea rax, [0x1401e3cd2]
cmp rcx, rax
jne 0x1400838e2
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 0x140083933
movzx eax, ax
cmp byte [rbp + rax + 0x20], 0
jne 0x140083993
cmp r9, rbx
je 0x140083ca9
sub r9, 2
jmp 0x140083920
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, [0x1401e3cd0]
movzx edx, word [r9]
cmp word [rax], dx
je 0x140083993
add rax, 2
sub rcx, 1
jne 0x140083970
cmp r9, rbx
je 0x14008398a
sub r9, 2
jmp 0x140083960
mov r9, 0xffffffffffffffff
jmp 0x140083999
sub r9, rbx
sar r9, 1
cmp r9, 0xffffffffffffffff
je 0x140083ca9
xor r8d, r8d
lea rdx, [rbp - 0x28]
lea rcx, [rsp + 0x78]
call fcn.1400147c0
nop
lea r8, [rbp - 0x28]
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 8]
call fcn.140027aa0
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x140083a07
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083a02
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e65
call fcn.14017f5e4
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 0x140083a3b
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.140027aa0
mov rdx, qword [rbp + 0x10]
cmp rdx, 8
jb 0x140083a8e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083a89
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e6b
call fcn.14017f5e4
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 0x140083e83
add rcx, r14
cmp qword [rcx + 0x18], 8
jb 0x140083ac6
mov rcx, qword [rcx]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
je 0x140083bbd
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 0x140083b10
lea rcx, [rbp - 0x48]
call fcn.140006d60
nop
mov rdx, qword [r12 + 8]
cmp qword [r12 + 0x10], rdx
je 0x140083b60
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 0x140083b6d
lea r8, [rbp - 0x48]
mov rcx, r12
call fcn.140001d60
nop
mov rdx, qword [rbp - 0x30]
cmp rdx, 8
jb 0x140083bad
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x48]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083ba8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e71
call fcn.14017f5e4
mov qword [rbp - 0x38], rsi
mov qword [rbp - 0x30], 7
mov word [rbp - 0x48], si
mov rdx, qword [rbp - 0x10]
cmp rdx, 8
jb 0x140083bfd
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x28]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083bf8
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e77
call fcn.14017f5e4
mov qword [rbp - 0x18], rsi
mov qword [rbp - 0x10], 7
mov word [rbp - 0x28], si
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140083c4e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083c49
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e7d
call fcn.14017f5e4
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], si
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x140083d3d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083d38
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e5f
jmp 0x140083d38
mov rdx, qword [rbp - 0x70]
cmp rdx, 8
jb 0x140083cea
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x78]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083ce5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e89
call fcn.14017f5e4
mov qword [rbp - 0x78], rsi
mov qword [rbp - 0x70], 7
mov word [rsp + 0x78], si
mov rdx, qword [rsp + 0x70]
cmp rdx, 8
jb 0x140083d3d
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x58]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083d38
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e8f
call fcn.14017f5e4
mov word [rsp + 0x58], si
mov qword [rsp + 0x70], 7
mov qword [rsp + 0x68], rsi
inc r15
cmp r15, r13
jae 0x140083d67
mov rax, qword [rsp + 0x28]
mov rcx, qword [rsp + 0x20]
jmp 0x140083790
mov rdx, qword [rbp - 0x50]
cmp rdx, 8
jb 0x140083da7
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp - 0x68]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140083da2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083ea1
call fcn.14017f5e4
mov qword [rbp - 0x58], rsi
mov qword [rbp - 0x50], 7
mov word [rbp - 0x68], si
mov rbx, qword [rsp + 0x20]
test rbx, rbx
je 0x140083e29
mov rdi, qword [rsp + 0x28]
cmp rbx, rdi
je 0x140083de6
nop dword [rax + rax]
mov rcx, rbx
call fcn.1400068c0
add rbx, 0x20
cmp rbx, rdi
jne 0x140083dd0
mov rbx, qword [rsp + 0x20]
mov rdx, qword [rsp + 0x30]
sub rdx, rbx
and rdx, 0xffffffffffffffe0
mov rax, rbx
cmp rdx, 0x1000
jb 0x140083e13
add rdx, 0x27
mov rbx, qword [rbx - 8]
sub rax, rbx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140083e59
mov rcx, rbx
call fcn.14017f5e4
xorps xmm0, xmm0
movdqu xmmword [rsp + 0x20], xmm0
mov qword [rsp + 0x30], rsi
lea rcx, [rsp + 0x40]
call fcn.14002d4d0
mov rax, r12
mov rcx, qword [rbp + 0x120]
xor rcx, rsp
call fcn.14017f700
add rsp, 0x238
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret
call fcn.1401a10ac
nop
call fcn.1401a10ac
nop
call fcn.1401a10ac
int3
call fcn.1401a10ac
int3
call fcn.1401a10ac
nop
call fcn.1401a10ac
nop
call fcn.1401a10ac
nop
call fcn.14001cf70
nop
call fcn.1401a10ac
nop
call fcn.1401a10ac
nop
call fcn.14001cf70
nop
call fcn.14001cf70
nop
call fcn.1401a10ac
int3