Function at 0x140047580
Capabilities:
Encrypt data using dpapi

Disassembly:
push rbp
push rbx
push r12
push r15
lea rbp, [rsp - 0xb08]
sub rsp, 0xc08
mov rax, qword [0x14022b800]
xor rax, rsp
mov qword [rbp + 0xae0], rax
mov r15d, edx
mov r12, rcx
call fcn.140061c90
mov rcx, rax
call fcn.140023c70
mov ebx, eax
cmp r15d, 1
jne 0x1400475cb
lea r8, str.remote_gaming
jmp 0x1400475e1
cmp r15d, 2
lea rax, str.remote_video
lea r8, str.unknown
cmove r8, rax
mov r9d, ebx
lea rdx, str.Remote_server_start__type:__s__ver__d
mov ecx, 6
call fcn.140083970
cmp ebx, 2
je 0x140047621
lea rdx, str.Remote_server_1.0_is_deprecated
mov ecx, 6
call fcn.1400838f0
lea rdx, str.Remote_server_not_started._Session_is_not_valid.
mov ecx, SHCreateMemStream
call fcn.140083930
jmp 0x140047d0a
mov qword [rsp + 0xc40], rsi
lea rdx, str.RemoteServerType
mov qword [rsp + 0xc00], rdi
lea rcx, str.SOFTWAREAMDDVR
mov qword [rsp + 0xbf8], r13
mov r8d, r15d
mov qword [rsp + 0xbf0], r14
mov dword [r12 + 0x20], r15d
call fcn.140007860
xor edx, edx
lea rcx, [rbp + 0xc0]
mov r8d, 0x114
call fcn.140152140
xor r13d, r13d
mov r14d, 2
mov eax, r14d
cmp r15d, 1
cmove eax, r13d
mov dword [rbp + 0xc0], eax
call fcn.140061c90
mov rsi, rax
lea edx, [r14 - 1]
mov ebx, r13d
mov rdi, qword [rax + 0x18]
test rdi, rdi
je 0x1400476e7
mov rbx, rdi
mov ecx, edx
lock xadd dword [rdi], ecx
inc ecx
cmp ecx, edx
jle 0x1400476d5
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
cmp dword [rdi + 4], ecx
je 0x1400476e4
mov rcx, qword [rdi + 0x10]
mov edx, 0xffffffff
call qword [sym.imp.KERNEL32.dll_WaitForSingleObject]
lea edx, [r14 - 1]
mov rax, qword gs:[0x30]
mov ecx, dword [rax + 0x48]
mov dword [rdi + 4], ecx
inc dword [rdi + 8]
cmp byte [rsi + 0xa7c], r13b
jne 0x14004772b
mov edi, dword [rsi + 0xa78]
test rbx, rbx
je 0x1400477e3
add dword [rbx + 8], 0xffffffff
mov ecx, dword [rbx + 8]
jne 0x14004770c
mov dword [rbx + 4], r13d
mov eax, 0xffffffff
lock xadd dword [rbx], eax
cmp eax, 1
je 0x1400477e3
test ecx, ecx
jne 0x1400477e3
jmp 0x1400477d6
lea r8, [rbp + 0xa8]
mov byte [rsi + 0xa7c], r13b
lea rdx, str.RemoteServerPort
mov dword [rsi + 0xa78], 0xa096
lea rcx, str.SOFTWAREAMDDVR
mov dword [rbp + 0xa8], r13d
call fcn.1400074d0
test al, al
jne 0x140047796
lea r8, [rbp + 0xa8]
lea rdx, str.RemoteServerPort
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400075b0
test al, al
jne 0x140047796
lea rdx, [rbp + 0xa8]
lea rcx, str.RemoteServerPort
call fcn.140007690
test al, al
je 0x1400477a9
mov eax, dword [rbp + 0xa8]
mov dword [rsi + 0xa78], eax
mov byte [rsi + 0xa7c], r13b
mov edi, dword [rsi + 0xa78]
test rbx, rbx
je 0x1400477e3
add dword [rbx + 8], 0xffffffff
mov ecx, dword [rbx + 8]
jne 0x1400477c1
mov dword [rbx + 4], r13d
mov eax, 0xffffffff
lock xadd dword [rbx], eax
cmp eax, 1
je 0x1400477e3
test ecx, ecx
jne 0x1400477e3
lea edx, [rcx + 1]
mov rcx, qword [rbx + 0x10]
xor r8d, r8d
call qword [sym.imp.KERNEL32.dll_ReleaseSemaphore]
cmp r15d, 1
mov dword [rbp + 0xc4], edi
mov r8d, 0x100
lea rcx, [rbp + 0x1e0]
sete byte [rbp + 0x1cd]
xor edx, edx
call fcn.140152140
xor edx, edx
lea rcx, [rbp + 0x2e0]
mov r8d, 0x800
call fcn.140152140
mov r9d, 0x800
lea r8, [rbp + 0x2e0]
lea rdx, str.RemoteSdkPass
call fcn.1400072d0
test al, al
je 0x140047967
lea rax, [rbp + 0x2e0]
mov qword [rbp + 0x98], 0x800
mov ecx, 0x10
mov qword [rbp + 0xa0], rax
call fcn.1401567b4
mov rsi, rax
lea r8, [rbp + 0x88]
xorps xmm0, xmm0
lea rdx, [rbp + 0x70]
xor r9d, r9d
lea rcx, [rbp + 0x98]
mov dword [rax], 0x1c9abff8
mov dword [rax + 4], 0xd53b41bb
mov dword [rax + 8], 0xa46d3483
mov dword [rax + 0xc], 0xcffecb11
mov qword [rbp + 0x90], rax
lea rax, [rbp + 0x78]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], r13d
mov qword [rsp + 0x20], r13
mov qword [rbp + 0x88], 0x10
movups xmmword [rbp + 0x78], xmm0
mov qword [rbp + 0x70], r13
call qword [sym.imp.CRYPT32.dll_CryptUnprotectData]
test eax, eax
je 0x140047958
mov ebx, dword [rbp + 0x78]
lea rcx, [rbx + 2]
call fcn.1401567b4
lea r8, [rbx + 2]
xor edx, edx
mov rcx, rax
mov rdi, rax
call fcn.140152140
mov r8d, dword [rbp + 0x78]
mov rcx, rdi
mov rdx, qword [rbp + 0x80]
call fcn.140151a90
mov rcx, qword [rbp + 0x80]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, qword [rbp + 0x70]
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov rcx, rsi
call fcn.140155e3c
mov r8, rdi
lea rcx, [rbp + 0x1e0]
mov edx, 0x80
call fcn.140155cf8
mov rcx, rdi
call fcn.140155e3c
lea r8, [rbp + 0x1e0]
lea rdx, [0x1401d4c8c]
lea rcx, [rbp + 0xcc]
call fcn.140009ff0
jmp 0x140047967
mov rcx, rsi
call fcn.140155e3c
xor ecx, ecx
call fcn.140155e3c
lea r8, [rbp + 0xac]
mov dword [rbp + 0xac], r13d
lea rdx, [0x1401d4c90]
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400074d0
mov rsi, qword [rsp + 0xc40]
test al, al
jne 0x1400479ec
lea r8, [rbp + 0xac]
lea rdx, [0x1401d4c90]
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400075b0
test al, al
jne 0x1400479ec
lea rdx, [rbp + 0xac]
lea rcx, [0x1401d4c90]
call fcn.140007690
test al, al
jne 0x1400479ec
mov r8d, 0x400
mov dword [rbp + 0xc8], 0x400
lea rdx, str.Optimal_datagram_size_not_found__setting_to__d
mov ecx, 6
call fcn.140083970
jmp 0x1400479f8
mov eax, dword [rbp + 0xac]
mov dword [rbp + 0xc8], eax
mov edi, 1
lea r8, [rbp + 0xb0]
lea rdx, str.RemoteSdkQos
mov dword [rbp + 0xb0], edi
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400074d0
test al, al
jne 0x140047a56
lea r8, [rbp + 0xb0]
lea rdx, str.RemoteSdkQos
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400075b0
test al, al
jne 0x140047a56
lea rdx, [rbp + 0xb0]
lea rcx, str.RemoteSdkQos
call fcn.140007690
test al, al
je 0x140047a6e
movzx eax, byte [rbp + 0x1cd]
cmp dword [rbp + 0xb0], r13d
cmove eax, r13d
mov byte [rbp + 0x1cd], al
lea r8, [rbp + 0xb4]
mov dword [rbp + 0xb4], r13d
lea rdx, str.EnableTraceHDR
mov byte [rbp + 0x1cc], r13b
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400074d0
test al, al
jne 0x140047acf
lea r8, [rbp + 0xb4]
lea rdx, str.EnableTraceHDR
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400075b0
test al, al
jne 0x140047acf
lea rdx, [rbp + 0xb4]
lea rcx, str.EnableTraceHDR
call fcn.140007690
test al, al
je 0x140047ae5
movzx eax, byte [rbp + 0x1cc]
cmp dword [rbp + 0xb4], edi
cmove eax, edi
mov byte [rbp + 0x1cc], al
lea r8, [rbp + 0xb8]
mov byte [rbp + 0x1ce], dil
lea rdx, str.RemoteSdkDisableAmdCapture
mov dword [rbp + 0xb8], r13d
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400074d0
test al, al
jne 0x140047b46
lea r8, [rbp + 0xb8]
lea rdx, str.RemoteSdkDisableAmdCapture
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400075b0
test al, al
jne 0x140047b46
lea rdx, [rbp + 0xb8]
lea rcx, str.RemoteSdkDisableAmdCapture
call fcn.140007690
test al, al
je 0x140047b5d
movzx eax, byte [rbp + 0x1ce]
cmp dword [rbp + 0xb8], edi
cmove eax, r13d
mov byte [rbp + 0x1ce], al
lea r8, [rbp + 0xbc]
mov dword [rbp + 0x1d0], r13d
lea rdx, str.RemoteTraceFlag
mov dword [rbp + 0xbc], r13d
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400074d0
mov r13, qword [rsp + 0xbf8]
test al, al
jne 0x140047bc6
lea r8, [rbp + 0xbc]
lea rdx, str.RemoteTraceFlag
lea rcx, str.SOFTWAREAMDDVR
call fcn.1400075b0
test al, al
jne 0x140047bc6
lea rdx, [rbp + 0xbc]
lea rcx, str.RemoteTraceFlag
call fcn.140007690
test al, al
je 0x140047bdd
mov eax, dword [rbp + 0xbc]
test eax, eax
mov ecx, dword [rbp + 0x1d0]
cmovne ecx, eax
mov dword [rbp + 0x1d0], ecx
lea rcx, [rsp + 0x50]
lea rax, [rbp + 0xc0]
nop dword [rax]
lea rcx, [rcx + 0x80]
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
lea rax, [rax + 0x80]
movups xmmword [rcx - 0x80], xmm0
movups xmm0, xmmword [rax - 0x60]
movups xmmword [rcx - 0x70], xmm1
movups xmm1, xmmword [rax - 0x50]
movups xmmword [rcx - 0x60], xmm0
movups xmm0, xmmword [rax - 0x40]
movups xmmword [rcx - 0x50], xmm1
movups xmm1, xmmword [rax - 0x30]
movups xmmword [rcx - 0x40], xmm0
movups xmm0, xmmword [rax - 0x20]
movups xmmword [rcx - 0x30], xmm1
movups xmm1, xmmword [rax - 0x10]
movups xmmword [rcx - 0x20], xmm0
movups xmmword [rcx - 0x10], xmm1
sub r14, rdi
jne 0x140047bf0
movups xmm0, xmmword [rax]
mov eax, dword [rax + 0x10]
movups xmmword [rcx], xmm0
mov dword [rcx + 0x10], eax
lea rcx, [rsp + 0x50]
call qword [sym.imp.amdlinkremoteserver.dll_LinkServerCreate]
call qword [sym.imp.amdlinkremoteserver.dll_LinkServerStatus]
mov r14, qword [rsp + 0xbf0]
cmp eax, edi
jne 0x140047c87
call fcn.1400616f0
xor r9d, r9d
xor r8d, r8d
mov edx, 0x8103
mov rcx, qword [rax + 0x50]
call qword [sym.imp.USER32.dll_PostMessageW]
jmp 0x140047c98
lea rdx, str.Failed_to_start_streaming_sdk_server
mov ecx, 6
call fcn.1400838f0
cmp dword [r12 + 0x10], 0
jne 0x140047cec
call fcn.1400616f0
mov rcx, rax
lea r8, [r12 + 0x10]
mov edx, 0xfa
call fcn.140058030
mov ebx, dword [r12 + 0x10]
test ebx, ebx
je 0x140047cdb
call fcn.1400616f0
mov r9, qword [r12]
mov rcx, rax
mov r8d, ebx
mov edx, 6
call fcn.1400572d0
jmp 0x140047cec
lea rdx, str.Failed_to_create_timer_event_for_remote_server_idle_check
mov ecx, 6
call fcn.1400838f0
mov r8d, edi
lea rdx, str.RemoteServerStatus
lea rcx, str.SOFTWAREAMDDVR
call fcn.140007860
mov rdi, qword [rsp + 0xc00]
mov rcx, qword [rbp + 0xae0]
xor rcx, rsp
call fcn.14014f2f0
add rsp, 0xc08
pop r15
pop r12
pop rbx
pop rbp
ret