Function at 0x14002a610
Capabilities:
Check if file exists
Copy file
Delete directory
Delete file
Get common file path
Move file
Query or enumerate registry value

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rdi
push rbp
lea rbp, [rsp - 0x380]
sub rsp, 0x480
mov rax, qword [0x140121ef0]
xor rax, rsp
mov qword [rbp + 0x370], rax
movzx ebx, dx
lea rcx, [rsp + 0x52]
xor edi, edi
xor edx, edx
mov r8d, 0x208
mov word [rsp + 0x50], di
call sub.MSVCR110.dll_memset
lea rcx, [rbp + 0x162]
xor edx, edx
mov r8d, 0x208
mov word [rbp + 0x160], di
call sub.MSVCR110.dll_memset
lea rax, [rsp + 0x38]
lea rdx, str.SoftwareSIEMENSAUTSWGlobal
mov r9d, 0x20019
xor r8d, r8d
mov rcx, 0xffffffff80000002
mov qword [rsp + 0x20], rax
mov qword [rsp + 0x38], rdi
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
je 0x14002a6b2
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
lea eax, [rdi + 1]
jmp 0x14002a96e
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rdx, str.SharedPath
xor r8d, r8d
mov qword [rsp + 0x20], rdi
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x14002a6f1
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 2
jmp 0x14002a96e
cmp dword [rsp + 0x30], 0xeb
jbe 0x14002a710
mov ecx, reloc.WS2_32.dll_WSAGetLastError
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 2
jmp 0x14002a96e
mov rcx, qword [rsp + 0x38]
lea rax, [rsp + 0x30]
lea r9, [rsp + 0x40]
mov qword [rsp + 0x28], rax
lea rax, [rsp + 0x50]
lea rdx, str.SharedPath
xor r8d, r8d
mov qword [rsp + 0x20], rax
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
je 0x14002a754
mov ecx, eax
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, 3
jmp 0x14002a96e
mov rcx, qword [rsp + 0x38]
call qword [sym.imp.ADVAPI32.dll_RegCloseKey]
lea rdx, [0x1400ddd78]
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x14002a77f
mov eax, 4
jmp 0x14002a96e
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14002a798
mov eax, 5
jmp 0x14002a96e
cmp bx, 0x50
jne 0x14002a7be
lea rdx, str.ProjectsProject.alm
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x14002a80a
mov eax, 6
jmp 0x14002a96e
cmp bx, 0x44
jne 0x14002a7e4
lea rdx, str.AlmSrv_almdb.mdb
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x14002a80a
mov eax, 7
jmp 0x14002a96e
cmp bx, 0x52
jne 0x14002a80a
lea rdx, str.PlugInsSCPRestore
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x14002a80a
mov eax, 8
jmp 0x14002a96e
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x14002a823
mov eax, 0xff
jmp 0x14002a96e
lea rax, [rbp + 0x160]
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8023
xor ecx, ecx
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jns 0x14002a850
mov eax, 0xa
jmp 0x14002a96e
lea rcx, [rbp + 0x160]
mov edx, 0x104
call qword [sym.imp.MSVCR110.dll_wcsnlen]
cmp rax, 0xc1
jbe 0x14002a874
mov eax, reloc.OLEAUT32.dll_SafeArrayGetElemsize
jmp 0x14002a96e
lea rdx, str.SiemensAutomationAutomation_License_Manager_
lea rcx, [rbp + 0x160]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
cmp bx, 0x50
jne 0x14002a8b0
lea rdx, str.projectsproject.alm
lea rcx, [rbp + 0x160]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x14002a920
mov eax, listen
jmp 0x14002a96e
cmp bx, 0x44
jne 0x14002a8d8
lea rdx, str.logging_almdb.mdb
lea rcx, [rbp + 0x160]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x14002a920
mov eax, reloc.WS2_32.dll_inet_ntoa
jmp 0x14002a96e
cmp bx, 0x52
jne 0x14002a920
lea rdx, str.restore
lea rcx, [rbp + 0x160]
call qword [sym.imp.SHLWAPI.dll_PathAppendW]
test eax, eax
jne 0x14002a8fd
mov eax, reloc.WS2_32.dll_listen
jmp 0x14002a96e
lea rdx, [rbp + 0x160]
lea rcx, [rsp + 0x50]
mov r8d, listen
call qword [sym.imp.KERNEL32.dll_MoveFileExW]
test eax, eax
jne 0x14002a96c
mov eax, SafeArrayGetDim
jmp 0x14002a96e
lea rdx, [rbp + 0x160]
lea rcx, [rsp + 0x50]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_CopyFileW]
test eax, eax
jne 0x14002a940
mov eax, send
jmp 0x14002a96e
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
test eax, eax
jne 0x14002a956
mov eax, reloc.WS2_32.dll_recv
jmp 0x14002a96e
lea rcx, [rsp + 0x50]
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
lea rcx, [rsp + 0x50]
call qword [sym.imp.KERNEL32.dll_RemoveDirectoryW]
xor eax, eax
mov rcx, qword [rbp + 0x370]
xor rcx, rsp
call fcn.1400bb310
lea r11, [rsp + 0x480]
mov rbx, qword [r11 + 0x10]
mov rdi, qword [r11 + 0x18]
mov rsp, r11
pop rbp
ret