Function at 0x140025090
Capabilities:
Encode data using xor

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x50
mov rdi, qword [0x140285110]
lea rbx, [rdx + 0x158]
mov rsi, rdx
mov r12, rcx
mov rcx, rbx
mov rax, qword [rdi]
mov qword [rsp + 0x48], rax
xor eax, eax
call sym.libvlccore.dll_vlc_mutex_lock
mov rcx, qword [rsi + 0x68]
test rcx, rcx
je 0x14002506f
mov edx, 1
call sym.libvlccore.dll_vlc_meta_Get
mov rcx, qword [rsi + 0x68]
mov rbp, rax
mov edx, 4
call sym.libvlccore.dll_vlc_meta_Get
test rbp, rbp
mov r13, rax
je 0x140024f0d
test rax, rax
jne 0x140025010
mov qword [rsp + 0x40], 0
mov rcx, rbx
call sym.libvlccore.dll_vlc_mutex_unlock
mov rbx, qword [rsp + 0x40]
test rbx, rbx
je 0x140025061
lea rbp, [r12 + 0x30]
mov rcx, rbp
call sym.libvlccore.dll_vlc_mutex_lock
mov r9, qword [r12 + 0x20]
mov r10d, dword [r12 + 0x18]
test r9, r9
je 0x140025051
movsx r11, byte [rbx]
test r11b, r11b
je 0x140025068
mov r8, rbx
xor eax, eax
nop
add rax, r11
add r8, 1
movsx r11, byte [r8]
mov rcx, rax
shl rcx, 0xa
add rax, rcx
mov rdx, rax
shr rdx, 8
xor rax, rdx
test r11b, r11b
jne 0x140024f60
movsxd r12, r10d
xor edx, edx
div r12
movsxd rax, edx
shl rax, 3
mov r13, qword [r9 + rax]
test r13, r13
jne 0x140024fae
jmp 0x140025051
mov r13, qword [r13 + 0x10]
test r13, r13
je 0x140025051
mov rdx, qword [r13]
mov rcx, rbx
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140024fa1
mov r8, qword [r13 + 8]
test r8, r8
je 0x140025051
mov edx, 0x10
mov rcx, rsi
mov dword [rsp + 0x3c], eax
call sym.libvlccore.dll_input_item_SetMeta
mov rcx, rbp
call sym.libvlccore.dll_vlc_mutex_unlock
mov rcx, rbx
call fcn.14016b6d8
mov eax, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x48]
xor rsi, qword [rdi]
jne 0x140025081
add rsp, 0x50
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
mov rcx, rax
call sub.msvcrt.dll_strlen
mov rcx, rbp
mov r14, rax
call sub.msvcrt.dll_strlen
lea rcx, [rsp + 0x40]
lea rdx, str._s:_zu:_s:_zu
mov r9, rax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
mov r8, rbp
call fcn.140024d10
test eax, eax
jns 0x140024f16
jmp 0x140024f0d
mov rcx, rbp
call sym.libvlccore.dll_vlc_mutex_unlock
mov rcx, rbx
call fcn.14016b6d8
mov eax, 0xffffffff
jmp 0x140024ff0
xor eax, eax
jmp 0x140024f93
mov rcx, rbx
call sym.libvlccore.dll_vlc_mutex_unlock
mov eax, 0xffffffff
jmp 0x140024ff0
call fcn.1400c4ec0
nop
nop word [rax + rax]
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x20
mov rdi, qword [rcx + 8]
mov rbp, rcx
mov rsi, rdx
mov rbx, r8
test rdi, rdi
je 0x140025144
mov r8d, dword [rcx]
test rsi, rsi
je 0x140025140
movsx r10, byte [rsi]
test r10b, r10b
je 0x140025140
mov r9, rsi
xor eax, eax
nop word [rax + rax]
add rax, r10
add r9, 1
movsx r10, byte [r9]
mov rcx, rax
shl rcx, 0xa
add rax, rcx
mov rdx, rax
shr rdx, 8
xor rax, rdx
test r10b, r10b
jne 0x1400250d0
movsxd r11, r8d
xor edx, edx
div r11
movsxd r12, edx
lea rbp, [r12*8]
mov ecx, 0x18
add rdi, rbp
call sub.msvcrt.dll_malloc
mov rcx, rsi
mov r12, rax
call sub.msvcrt.dll__strdup
mov qword [r12 + 8], rbx
mov rsi, qword [rdi]
mov qword [r12], rax
mov qword [r12 + 0x10], rsi
mov qword [rdi], r12
add rsp, 0x20
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
xor ebp, ebp
jmp 0x140025107
mov edx, 8
mov ecx, 1
call sub.msvcrt.dll_calloc
xor r8d, r8d
test rax, rax
mov qword [rbp + 8], rax
setne r8b
mov rdi, rax
mov dword [rbp], r8d
jmp 0x1400250b3