Function at 0x180001f34
Capabilities:
Copy file
Create directory
Delete file
Get common file path

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
lea rax, [r11 - 0x38]
xor ebx, ebx
mov rdi, rcx
mov qword [r11 - 0x30], rax
lea rax, [r11 - 0x38]
mov ebp, ebx
mov qword [r11 - 0x38], rax
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [0x180023a50]
movsxd r8, eax
xor edx, edx
lea r8, [r8 + r8 + 0x38]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
cmp rax, rbx
je 0x18000201f
movsx eax, byte [rdi]
mov word [rsi], ax
cmp ax, bx
je 0x180001fb3
mov rcx, rdi
mov rdx, rsi
inc rcx
add rdx, 2
movsx eax, byte [rcx]
mov word [rdx], ax
cmp ax, bx
jne 0x180001fa1
lea rdx, [0x180025760]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov r12d, 0x12
lea r8, [rsp + 0x30]
lea rdx, [0x1800257f8]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov dword [rsp + 0x20], ebx
call fcn.18001194c
lea r8, [rsp + 0x30]
lea rdx, [0x180025820]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x28], r12d
mov ebp, eax
mov dword [rsp + 0x20], ebx
call fcn.18001194c
mov rcx, qword [0x180023a50]
mov r8, rsi
xor edx, edx
add ebp, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [0x180023a50]
xor edx, edx
movsxd r8, eax
lea r8, [r8 + r8 + 0x36]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
cmp rax, rbx
je 0x1800020ae
movsx eax, byte [rdi]
mov word [rsi], ax
cmp ax, bx
je 0x180002067
mov rcx, rsi
inc rdi
add rcx, 2
movsx eax, byte [rdi]
mov word [rcx], ax
cmp ax, bx
jne 0x180002055
lea rdx, [0x1800257b0]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r8, [rsp + 0x30]
lea rdx, [0x180025860]
xor r9d, r9d
mov rcx, rsi
mov dword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], ebx
call fcn.18001194c
mov rcx, qword [0x180023a50]
mov r8, rsi
xor edx, edx
add ebp, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x180023a50]
xor edx, edx
mov r8d, 0x20c
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov r15d, 0x5c
mov rdi, rax
cmp rax, rbx
je 0x18000213c
lea edx, [r15 - 0x3b]
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp eax, ebx
jne 0x18000212a
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
lea r8, [rsp + 0x30]
lea rdx, [0x180025878]
mov r11d, eax
xor r9d, r9d
mov rcx, rdi
lea eax, [r11 + 1]
mov dword [rsp + 0x28], 0x11
mov dword [rsp + 0x20], ebx
mov word [rdi + rax*2], bx
mov word [rdi + r11*2], r15w
call fcn.18001194c
add ebp, eax
mov rcx, qword [0x180023a50]
mov r8, rdi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp ebp, ebx
je 0x1800022e6
mov r12, qword [rsp + 0x30]
mov rbp, r12
mov r12, qword [r12]
mov rdi, rbx
mov rax, qword [rbp + 8]
mov rcx, qword [rbp]
mov qword [rax], rcx
mov qword [rcx + 8], rax
mov eax, dword [rbp + 0x18]
sub eax, 0x10
je 0x180002186
sub eax, 1
je 0x18000217d
cmp eax, 1
jne 0x18000218d
lea rdi, [0x180025898]
jmp 0x18000218d
lea rdi, [0x1800258b8]
jmp 0x18000218d
lea rdi, [0x1800258f8]
mov eax, dword [rbp + 0x24]
mov esi, ebx
lea r14, [rbp + rax*2 + 0x28]
mov rcx, r14
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov r15d, eax
cmp rdi, rbx
je 0x1800021b3
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov esi, eax
mov rcx, qword [0x180023ae8]
call qword [sym.imp.KERNEL32.dll_lstrlenA]
mov rcx, qword [0x180023a50]
xor edx, edx
add eax, r15d
lea r8d, [rax + rsi + 3]
add r8, r8
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov rsi, rax
cmp rax, rbx
je 0x1800022ba
mov rcx, qword [0x180023ae8]
movsx eax, byte [rcx]
mov word [rsi], ax
cmp ax, bx
je 0x18000220d
mov rdx, rsi
inc rcx
add rdx, 2
movsx eax, byte [rcx]
mov word [rdx], ax
cmp ax, bx
jne 0x1800021fb
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp rdi, rbx
je 0x180002229
mov rdx, rdi
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, [0x18001e674]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
mov r15d, 0x5c
jmp 0x180002278
mov word [rdi], bx
call qword [sym.imp.KERNEL32.dll_lstrcatW]
xor edx, edx
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea rdx, [0x18001e674]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea r14, [rdi + 2]
mov word [rdi], r15w
mov edx, r15d
mov rcx, r14
call qword [sym.imp.SHLWAPI.dll_StrChrW]
mov rdx, r14
mov rcx, rsi
mov rdi, rax
cmp rax, rbx
jne 0x18000224c
call qword [sym.imp.KERNEL32.dll_lstrcatW]
lea rcx, [rbp + 0x28]
xor r8d, r8d
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_CopyFileW]
mov rcx, qword [0x180023a50]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [rbp + 0x28]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, qword [0x180023a50]
mov r8, rbp
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea r11, [rsp + 0x30]
cmp r12, r11
jne 0x180002149
jmp 0x1800022eb
mov ebx, 2
lea r11, [rsp + 0x40]
mov eax, ebx
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret