Function at 0x100054bc4
Capabilities:
Copy file
Delete file
Get common file path
Get file attributes
Move file
Set registry value

Disassembly:
mov qword [rsp + 0x18], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x470
mov rax, qword [0x100086110]
xor rax, rsp
mov qword [rsp + 0x460], rax
xor ebx, ebx
mov r14, r9
mov r12d, r8d
mov rsi, rdx
mov rdi, rcx
cmp rdx, rbx
jne 0x100054c0b
cmp r9, rbx
jne 0x100054c0b
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, rdi
call fcn.100053454
cmp eax, ebx
jne 0x100054c29
sub rbx, rsi
neg rbx
sbb eax, eax
and eax, 0x80070002
jmp 0x1000550a9
mov r13d, 4
mov r15d, 0x208
lea ebp, [r13 - 2]
cmp rsi, rbx
je 0x100054dd6
cmp r12d, ebx
je 0x100054ce1
lea rax, [rsp + 0x30]
cmp rax, rbx
je 0x100054c5e
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea rax, [rsp + 0x38]
lea rdx, [0x100029d00]
mov r9d, ebp
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x38], rbx
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
mov r12d, eax
cmp eax, ebx
jne 0x100054cd0
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea rdx, [0x100029d68]
mov r9d, r13d
xor r8d, r8d
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x30], 1
call qword [sym.imp.ADVAPI32.dll_RegSetValueExW]
mov rcx, qword [rsp + 0x38]
mov r12d, eax
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp r12d, ebx
je 0x100054ce1
lea rdx, [0x100029da0]
mov r8d, r12d
mov ecx, ebp
call fcn.1000527f4
mov rcx, r15
call fcn.10007fa96
mov r12, rax
cmp rax, rbx
jne 0x100054cfb
mov eax, 0x8007000e
jmp 0x1000550a9
mov r13d, 0x104
mov rdx, rax
mov rcx, rsi
mov r8, r13
call fcn.100052a30
mov rcx, r12
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
cmp r14, rbx
je 0x100054d3b
lea r8, [0x100027698]
lea rcx, [rsp + 0x40]
mov r9, r12
mov rdx, r13
mov qword [rsp + 0x20], r14
call fcn.10003a080
jmp 0x100054d70
mov eax, dword [0x100088fdc]
lea r8, [0x100029de8]
lea rcx, [rsp + 0x40]
mov r9, r12
mov rdx, r13
mov dword [rsp + 0x20], eax
call fcn.10003a080
inc dword [0x100088fdc]
lea rcx, [rsp + 0x40]
call fcn.100053454
cmp eax, ebx
jne 0x100054d3b
mov rcx, r12
call fcn.10007faa2
lea rdx, [rsp + 0x40]
mov r8d, 1
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CopyFileW]
cmp eax, ebx
jne 0x100054e18
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x57
lea r9, [rsp + 0x40]
cmp eax, ebx
lea rdx, [0x100029e10]
mov r8, rdi
cmove eax, ecx
movzx ecx, ax
or ecx, 0x80070000
cmp eax, ebx
cmovle ecx, eax
mov dword [rsp + 0x20], ecx
xor ecx, ecx
call fcn.1000527f4
mov eax, 0x80004005
jmp 0x1000550a9
lea rax, [rsp + 0x40]
mov r13d, 0x104
lea rcx, [rsp + 0x40]
sub rdi, rax
mov rdx, r13
lea rax, [rdx + 0x7ffffefa]
cmp rax, rbx
je 0x100054e0d
movzx eax, word [rcx + rdi]
cmp ax, bx
je 0x100054e0d
mov word [rcx], ax
add rcx, rbp
sub rdx, 1
jne 0x100054dec
cmp rdx, rbx
jne 0x100054e15
sub rcx, rbp
mov word [rcx], bx
mov rcx, r15
call fcn.10007fa96
mov r15d, 0x80004005
mov r12, rax
cmp rax, rbx
je 0x100054faf
mov rdx, rax
mov ecx, r13d
mov edi, r15d
mov r15d, ebx
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
cmp eax, ebx
je 0x100054f98
mov rcx, r12
call fcn.100053480
mov rcx, r12
call qword [sym.imp.SHLWAPI.dll_PathAddBackslashW]
mov r11d, ebx
mov dword [0x100088fdc], ebx
cmp r14, rbx
je 0x100054edf
lea r8, [0x100027698]
lea rcx, [rsp + 0x250]
mov r9, r12
mov rdx, r13
mov qword [rsp + 0x20], r14
call fcn.10003a080
lea rdx, [rsp + 0x250]
cmp rsi, rbx
je 0x100054f22
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileW]
cmp eax, ebx
je 0x100054f98
mov rcx, rsi
call fcn.100053454
cmp eax, ebx
je 0x100054ecc
lea rdx, [0x100029e60]
mov r8, rsi
mov ecx, 1
call fcn.1000527f4
lea rcx, [rsp + 0x40]
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileW]
mov r15d, eax
jmp 0x100054f4d
lea r8, [0x100029de8]
lea rcx, [rsp + 0x250]
mov r9, r12
mov rdx, r13
mov dword [rsp + 0x20], r11d
call fcn.10003a080
inc dword [0x100088fdc]
lea rcx, [rsp + 0x250]
call fcn.100053454
cmp eax, ebx
je 0x100054e8a
mov r11d, dword [0x100088fdc]
jmp 0x100054edf
lea rcx, [rsp + 0x40]
call qword [sym.imp.KERNEL32.dll_MoveFileW]
cmp eax, ebx
je 0x100054f98
lea r8, [rsp + 0x40]
lea rdx, [0x100029ea8]
mov ecx, 4
call fcn.1000527f4
mov r15d, 1
lea rax, [rsp + 0x250]
cmp rax, rbx
jne 0x100054f61
mov edi, 0x80004003
jmp 0x100054f98
lea rcx, [rsp + 0x250]
call fcn.100055dec
mov edi, eax
cmp eax, 0xd2af9
jne 0x100054f98
or dword [0x100087148], ebp
lea r8, [rsp + 0x250]
lea rdx, [0x100029a20]
mov ecx, ebp
mov edi, 0xd2af8
call fcn.1000527f4
mov rcx, r12
call fcn.10007faa2
cmp r15d, ebx
jne 0x1000550a7
mov r15d, 0x80004005
lea rcx, [rsp + 0x40]
mov r8d, 5
mov rdx, rsi
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
cmp eax, ebx
je 0x10005506d
cmp rsi, rbx
je 0x100055003
or rcx, 0xffffffffffffffff
xor eax, eax
mov rdi, rsi
repne scasw ax, word [rdi]
not rcx
sub rcx, 1
je 0x100055003
cmp word [rsi + rcx*2 - 2], 0x5c
sete al
cmp eax, ebx
je 0x100055003
lea rdx, [0x100029ee8]
mov r8, rsi
mov ecx, ebp
call fcn.1000527f4
lea r8, [rsp + 0x40]
lea rdx, [0x100029f10]
mov ecx, ebp
call fcn.1000527f4
lea r8, [rsp + 0x40]
cmp dword [rsp + 0x4d0], ebx
je 0x10005503f
lea rcx, [0x100086f40]
mov r9, rsi
mov edx, 8
call fcn.100053d64
mov eax, 0xd2af9
jmp 0x1000550a9
or dword [0x100087148], ebp
lea rcx, [rsp + 0x40]
lea rax, [0x100029a10]
cmp rcx, rbx
lea rdx, [0x100029a20]
mov ecx, ebp
cmove r8, rax
call fcn.1000527f4
mov eax, 0xd2af8
jmp 0x1000550a9
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov ecx, 0x57
lea r8, [rsp + 0x40]
cmp eax, ebx
lea rdx, [0x100029f40]
cmove eax, ecx
mov ecx, ebp
movzx edi, ax
or edi, 0x80070000
cmp eax, ebx
cmovle edi, eax
cmp edi, ebx
cmovge edi, r15d
mov r9d, edi
call fcn.1000527f4
mov eax, edi
mov rcx, qword [rsp + 0x460]
xor rcx, rsp
call fcn.10007fa70
mov rbx, qword [rsp + 0x4c0]
add rsp, 0x470
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret