Function at 0x140025170
Capabilities:
Encode data using xor

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x78
mov rax, qword [0x1402840b0]
mov rsi, rdx
mov qword [rsp + 0x40], rcx
mov edx, 0x10
mov rcx, rsi
mov ebp, r8d
mov rdi, qword [rax]
mov qword [rsp + 0x68], rdi
xor edi, edi
lea rdi, [rsi + 0x158]
call sym.libvlccore.dll_input_item_GetMeta
mov rcx, rdi
mov rbx, rax
call sym.libvlccore.dll_vlc_mutex_lock
mov rcx, qword [rsi + 0x68]
test rcx, rcx
je 0x1400255e7
mov edx, 1
call sym.libvlccore.dll_vlc_meta_Get
mov rcx, qword [rsi + 0x68]
mov r12, rax
mov edx, 4
call sym.libvlccore.dll_vlc_meta_Get
test r12, r12
mov r13, rax
je 0x1400251f0
test rax, rax
jne 0x140025261
mov qword [rsp + 0x60], 0
mov rcx, rdi
call sym.libvlccore.dll_vlc_mutex_unlock
mov r12, qword [rsp + 0x60]
test r12, r12
je 0x14002522a
test rbx, rbx
je 0x14002522a
mov r8d, 0xd
lea rdx, [0x14017fb4e]
mov rcx, rbx
call qword [sym.imp.msvcrt.dll__strnicmp]
test eax, eax
jne 0x1400252a2
mov rcx, rbx
call fcn.14016b5d8
mov rcx, r12
call fcn.14016b5d8
mov r12, qword [0x1402840b0]
mov rsi, qword [rsp + 0x68]
xor rsi, qword [r12]
jne 0x140025643
add rsp, 0x78
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rcx, rax
call sub.msvcrt.dll_strlen
mov rcx, r12
mov r14, rax
call sub.msvcrt.dll_strlen
lea rcx, [rsp + 0x60]
lea rdx, str._s:_zu:_s:_zu
mov r9, rax
mov qword [rsp + 0x28], r14
mov qword [rsp + 0x20], r13
mov r8, r12
call fcn.140024d10
test eax, eax
jns 0x1400251f9
jmp 0x1400251f0
mov r15, qword [rsp + 0x40]
mov rcx, r15
add rcx, 0x30
mov qword [rsp + 0x58], rcx
call sym.libvlccore.dll_vlc_mutex_lock
test bpl, bpl
jne 0x140025357
mov rdx, qword [r15 + 0x20]
movsxd r8, dword [r15 + 0x18]
test rdx, rdx
mov qword [rsp + 0x48], rdx
je 0x1400255fe
movzx esi, byte [r12]
test sil, sil
movsx r13, sil
je 0x140025633
mov r10, r12
xor eax, eax
add rax, r13
add r10, 1
movsx r13, byte [r10]
mov r11, rax
shl r11, 0xa
add rax, r11
mov rbp, rax
shr rbp, 8
xor rax, rbp
test r13b, r13b
jne 0x1400252ee
xor edx, edx
div r8
movsxd r9, edx
shl r9, 3
mov r14, qword [rsp + 0x48]
mov r15, qword [r14 + r9]
test r15, r15
jne 0x140025339
jmp 0x140025373
mov r15, qword [r15 + 0x10]
test r15, r15
je 0x140025373
mov rdx, qword [r15]
mov rcx, r12
call sub.msvcrt.dll_strcmp
test eax, eax
jne 0x140025330
mov rcx, qword [rsp + 0x58]
call sym.libvlccore.dll_vlc_mutex_unlock
jmp 0x14002522a
mov rsi, qword [rsp + 0x40]
mov rcx, qword [rsi + 0x20]
test rcx, rcx
mov qword [rsp + 0x48], rcx
je 0x1400255fe
movzx esi, byte [r12]
mov rdi, qword [rsp + 0x40]
mov r13d, dword [rdi + 0x18]
movsx rbp, sil
test bpl, bpl
je 0x14002563b
mov r9, r12
xor eax, eax
nop
add rax, rbp
add r9, 1
movsx rbp, byte [r9]
mov r10, rax
shl r10, 0xa
add rax, r10
mov r11, rax
shr r11, 8
xor rax, r11
test bpl, bpl
jne 0x140025390
movsxd r15, r13d
xor edx, edx
div r15
movsxd rcx, edx
lea r14, [rcx*8]
mov ecx, 0x18
call sub.msvcrt.dll_malloc
mov rcx, r12
mov rsi, rax
call sub.msvcrt.dll__strdup
add r14, qword [rsp + 0x48]
mov qword [rsi + 8], rbx
mov qword [rsi], rax
mov rbx, qword [r14]
mov qword [rsi + 0x10], rbx
mov qword [r14], rsi
mov r8, qword [rsi + 0x10]
test r8, r8
je 0x1400255f7
mov edi, 1
mov r8, qword [r8 + 0x10]
add edi, 1
test r8, r8
jne 0x140025404
xor ebx, ebx
cmp edi, 3
jle 0x140025348
lea r14d, [r13 + r13*2 + 6]
xor esi, esi
mov ebp, r14d
shr ebp, 0x1f
add ebp, r14d
sar ebp, 1
test ebp, ebp
jle 0x14002544e
movsxd rcx, ebp
mov edx, 8
call sub.msvcrt.dll_calloc
mov r9d, 0
test rax, rax
mov rsi, rax
cmove ebp, r9d
test r13d, r13d
jle 0x140025533
mov rdi, qword [rsp + 0x48]
lea r13d, [r13 - 1]
mov qword [rsp + 0x38], rdi
lea r11, [rdi + r13*8 + 8]
mov rdi, qword [rsp + 0x38]
mov qword [rsp + 0x50], r11
mov r15, qword [rdi]
test r15, r15
je 0x14002551d
test rsi, rsi
mov rdi, qword [r15 + 8]
mov r13, qword [r15]
je 0x1400255c7
test r13, r13
je 0x1400255c0
movsx r14, byte [r13]
test r14b, r14b
je 0x1400255c0
mov r8, r13
xor eax, eax
nop dword [rax]
add rax, r14
add r8, 1
movsx r14, byte [r8]
mov rdx, rax
shl rdx, 0xa
add rax, rdx
mov rcx, rax
shr rcx, 8
xor rax, rcx
test r14b, r14b
jne 0x1400254b0
movsxd r9, ebp
xor edx, edx
div r9
movsxd r10, edx
lea rbx, [r10*8]
mov ecx, 0x18
add rbx, rsi
call sub.msvcrt.dll_malloc
mov rcx, r13
mov r14, rax
call sub.msvcrt.dll__strdup
mov r11, qword [rbx]
mov qword [rbx], r14
mov qword [r14], rax
mov qword [r14 + 8], rdi
mov qword [r14 + 0x10], r11
mov r15, qword [r15 + 0x10]
test r15, r15
jne 0x140025480
add qword [rsp + 0x38], 8
mov rdi, qword [rsp + 0x38]
cmp rdi, qword [rsp + 0x50]
jne 0x140025474
cmp qword [rsp + 0x48], 0
je 0x1400255a4
mov r13, qword [rsp + 0x40]
mov ecx, dword [r13 + 0x18]
test ecx, ecx
jle 0x14002559a
xor r15d, r15d
xor edi, edi
nop dword [rax]
mov rbx, qword [rsp + 0x48]
mov r13, qword [rbx + r15]
test r13, r13
je 0x14002558f
nop
mov rcx, qword [r13]
mov r14, qword [r13 + 0x10]
call fcn.14016b5d8
mov rcx, r13
mov r13, r14
call fcn.14016b5d8
test r14, r14
jne 0x140025560
mov r8, qword [rsp + 0x40]
mov rax, qword [r8 + 0x20]
mov ecx, dword [r8 + 0x18]
mov qword [rsp + 0x48], rax
add edi, 1
add r15, 8
cmp edi, ecx
jl 0x140025550
mov rcx, qword [rsp + 0x48]
call fcn.14016b5d8
mov r9, qword [rsp + 0x40]
xor ebx, ebx
mov dword [r9 + 0x18], ebp
mov qword [r9 + 0x20], rsi
jmp 0x140025348
xor ebx, ebx
jmp 0x1400254e7
mov edx, 8
mov ecx, 1
xor ebp, ebp
call sub.msvcrt.dll_calloc
test rax, rax
mov rsi, rax
setne bpl
jmp 0x140025490
mov rcx, rdi
xor r12d, r12d
call sym.libvlccore.dll_vlc_mutex_unlock
jmp 0x14002522a
xor ebx, ebx
jmp 0x140025348
mov edx, 8
mov ecx, 1
xor r13d, r13d
call sub.msvcrt.dll_calloc
mov r8, qword [rsp + 0x40]
test rax, rax
mov qword [rsp + 0x48], rax
setne r13b
mov qword [r8 + 0x20], rax
mov dword [r8 + 0x18], r13d
movzx esi, byte [r12]
jmp 0x14002537c
xor r9d, r9d
jmp 0x14002531e
xor r14d, r14d
jmp 0x1400253c7
call fcn.1400c4db0
nop
nop dword [rax]
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x868
mov rdi, qword [0x1402840b0]
mov rbx, rdx
mov rdx, qword [rdx]
mov rbp, rcx
mov rax, qword [rdi]
mov qword [rsp + 0x858], rax
xor eax, eax
call fcn.140024ea0
mov rcx, qword [rbx]
mov edx, 0x10
call sym.libvlccore.dll_input_item_GetMeta
test rax, rax
mov rsi, rax
je 0x1400257c5
mov r8d, 7
lea rdx, str.file:__
mov rcx, rax
mov r12, qword [sym.imp.msvcrt.dll__strnicmp]
call r12
test eax, eax
jne 0x140025730
mov rcx, qword [rbp + 0x28]
mov r9, qword [rbx]
lea rdx, [0x14017fb64]
mov r8d, 0x70
call sym.libvlccore.dll_var_SetChecked
mov rcx, qword [rbx]
mov edx, 1
call fcn.140031030
mov rcx, rsi
call fcn.14016b5d8
cmp dword [rbx + 0xc], 0xffffffff
je 0x140025708
mov rcx, qword [rbx]
mov edx, 1
call fcn.140030ee0
mov edx, dword [rbx + 0xc]
mov rcx, qword [rbx]
call fcn.140030e70
mov rax, qword [rsp + 0x858]
xor rax, qword [rdi]
jne 0x140025813
add rsp, 0x868
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov r8d, 0xd
lea rdx, [0x14017fb4e]
mov rcx, rsi
call r12
test eax, eax
je 0x1400256bc
mov rcx, qword [rbp + 0x28]
mov rdx, rsi
call sym.libvlccore.dll_vlc_stream_NewURL
test rax, rax
mov r14, rax
je 0x1400257c5
lea r15, [rsp + 0x30]
lea r13, [rsp + 0x50]
mov rcx, r15
call sym.libvlccore.dll_vlc_memstream_open
jmp 0x140025786
movsxd r8, eax
mov rdx, r13
mov rcx, r15
call sym.libvlccore.dll_vlc_memstream_write
cmp r12d, eax
jg 0x14002579e
mov r8d, 0x800
mov rdx, r13
mov rcx, r14
call sym.libvlccore.dll_vlc_stream_Read
test eax, eax
mov r12, rax
jg 0x140025773
mov rcx, r14
call sym.libvlccore.dll_vlc_stream_Delete
mov rcx, r15
call sym.libvlccore.dll_vlc_memstream_close
test eax, eax
jne 0x1400257c5
call sym.libvlccore.dll_vlc_killed
test al, al
je 0x1400257d4
mov rcx, qword [rsp + 0x38]
call fcn.14016b5d8
mov rcx, rsi
xor esi, esi
call fcn.14016b5d8
jmp 0x1400256e2
mov rcx, qword [rbp + 0x28]
mov r8, qword [rsp + 0x38]
mov rdx, qword [rbx]
mov r9, qword [rsp + 0x40]
mov qword [rsp + 0x20], 0
call fcn.140020a10
mov rcx, qword [rsp + 0x38]
call fcn.14016b5d8
mov rdx, qword [rbx]
mov r8d, 1
mov rcx, rbp
call fcn.140025170
jmp 0x1400256bc
call fcn.1400c4db0
nop
nop dword [rax]