Function at 0x6a30d450
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, 0x6a30cff0
push edi
mov edi, 0xb
push esi
mov esi, 0x6a30db60
push ebx
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sub.libvlccore.dll_services_discovery_EventManager
mov ecx, 0xa
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov esi, 0x6a30cfc0
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sub.libvlccore.dll_vlc_event_detach
mov edx, dword [ebx + 8]
mov dword [esp], edx
call sub.libvlccore.dll_services_discovery_EventManager
mov dword [esp + 8], ebp
mov ebp, 0x6a30cf90
mov dword [esp + 4], edi
mov edi, 0xd
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sub.libvlccore.dll_vlc_event_detach
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sub.libvlccore.dll_services_discovery_EventManager
mov ecx, 0xc
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sub.libvlccore.dll_vlc_event_detach
mov edx, dword [ebx + 8]
mov dword [esp], edx
call sub.libvlccore.dll_services_discovery_EventManager
mov dword [esp + 0xc], ebx
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.libvlccore.dll_vlc_event_detach
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call sym.libvlc.dll_libvlc_media_list_release
mov esi, dword [ebx + 8]
mov dword [esp], esi
call sub.libvlccore.dll_vlc_sd_Stop
mov dword [esp], esi
call sub.libvlccore.dll_vlc_sd_Destroy
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x6a30d796
mov edi, dword [ebx + 0x14]
test edi, edi
jle 0x6a30d796
xor edx, edx
xor ecx, ecx
mov esi, esi
lea edi, [edi]
mov eax, dword [esi + ecx*4]
test eax, eax
je 0x6a30d558
mov esi, esi
lea edi, [edi]
mov eax, dword [eax + 8]
inc edx
test eax, eax
jne 0x6a30d550
inc ecx
cmp ecx, edi
jne 0x6a30d540
lea eax, [edx*4 + 4]
mov dword [esp], eax
xor edi, edi
call sub.msvcrt.dll_malloc
mov ebp, dword [ebx + 0x14]
test ebp, ebp
mov dword [esp + 0x28], eax
jle 0x6a30d5d7
xor edx, edx
mov dword [esp + 0x14], ebx
mov ebx, edx
jmp 0x6a30d590
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x18]
mov esi, dword [ecx + ebx*4]
test esi, esi
je 0x6a30d5c8
mov eax, dword [esp + 0x28]
lea ebp, [eax + edi*4]
lea esi, [esi]
lea edi, [edi]
mov edx, dword [esi]
inc edi
mov dword [esp], edx
call fcn.6a30ecc0
mov esi, dword [esi + 8]
mov dword [ebp], eax
add ebp, 4
test esi, esi
jne 0x6a30d5b0
mov edx, dword [esp + 0x14]
inc ebx
cmp ebx, dword [edx + 0x14]
jl 0x6a30d590
mov ebx, edx
shl edi, 2
mov eax, dword [esp + 0x28]
mov dword [eax + edi], 0
mov ebp, dword [eax]
test ebp, ebp
je 0x6a30d648
mov edi, dword [esp + 0x28]
add eax, 4
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], ebp
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], edi
nop
mov ebp, dword [esp + 0x24]
mov ebx, dword [ebp + 0x18]
test ebx, ebx
mov dword [esp + 0x1c], ebx
jne 0x6a30d6e0
xor eax, eax
mov dword [esp], eax
call sym.libvlc.dll_libvlc_media_list_release
mov edx, dword [esp + 0x20]
mov ecx, dword [edx]
mov dword [esp], ecx
call sub.msvcrt.dll_free
mov ebx, dword [esp + 0x14]
mov esi, dword [ebx]
mov dword [esp + 0x20], ebx
add ebx, 4
mov dword [esp + 0x14], ebx
test esi, esi
mov dword [esp + 0x18], esi
jne 0x6a30d600
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x28]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov eax, dword [ebx + 0x18]
lea edx, [ebx + 0x14]
test eax, eax
je 0x6a30d6b6
mov edi, dword [ebx + 0x14]
test edi, edi
jle 0x6a30d6a7
mov dword [esp + 0x14], ebx
xor ebp, ebp
mov ebx, edx
lea esi, [esi]
mov ecx, dword [ebx + 4]
mov esi, dword [ecx + ebp*4]
test esi, esi
jne 0x6a30d682
jmp 0x6a30d69b
mov esi, edi
mov edi, dword [esi + 8]
mov edx, dword [esi]
mov dword [esp], edx
call sub.msvcrt.dll_free
mov dword [esp], esi
call sub.msvcrt.dll_free
test edi, edi
jne 0x6a30d680
inc ebp
cmp ebp, dword [ebx]
jl 0x6a30d670
mov ebx, dword [esp + 0x14]
mov eax, dword [ebx + 0x18]
mov dword [esp], eax
call sub.msvcrt.dll_free
mov dword [ebx + 0x18], 0
mov ebp, dword [ebx]
mov dword [ebx + 0x14], 0
mov dword [esp], ebp
call sym.libvlc.dll_libvlc_event_manager_release
mov dword [esp + 0x50], ebx
add esp, 0x3c
pop ebx
pop esi
pop edi
pop ebp
jmp sub.msvcrt.dll_free
mov eax, dword [esp + 0x24]
mov esi, dword [esp + 0x18]
mov ecx, dword [eax + 0x14]
xor eax, eax
mov dword [esp + 0x2c], ecx
movzx ecx, byte [esi]
test cl, cl
je 0x6a30d753
mov ebp, dword [esp + 0x18]
xor esi, esi
xor edi, edi
movsx ecx, cl
mov ebx, ecx
sar ebx, 0x1f
add ecx, esi
adc ebx, edi
mov eax, ecx
mov edx, ebx
inc ebp
shld edx, eax, 0xa
shl eax, 0xa
add eax, ecx
adc edx, ebx
mov ecx, eax
mov ebx, edx
shrd ecx, ebx, 8
mov esi, ecx
movzx ecx, byte [ebp]
shr ebx, 8
xor esi, eax
mov edi, ebx
xor edi, edx
test cl, cl
jne 0x6a30d700
mov eax, dword [esp + 0x2c]
mov dword [esp], esi
mov dword [esp + 4], edi
cdq
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.6a30ebb0
shl eax, 2
mov edi, dword [esp + 0x1c]
mov ebx, dword [edi + eax]
test ebx, ebx
je 0x6a30d613
mov esi, dword [esp + 0x18]
lea esi, [esi]
lea edi, [edi]
mov ebp, dword [ebx]
mov dword [esp], esi
mov dword [esp + 4], ebp
call sub.msvcrt.dll_strcmp
test eax, eax
je 0x6a30d78e
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x6a30d770
jmp 0x6a30d613
mov eax, dword [ebx + 4]
jmp 0x6a30d615
mov eax, 4
nop
lea esi, [esi]
jmp 0x6a30d564