Function at 0x704541e0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, 0x70453e00
push edi
mov edi, 0xb
push esi
mov esi, 0x704548f0
push ebx
sub esp, 0x3c
mov ebx, dword [esp + 0x50]
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sub.libtsplayercore.dll_services_discovery_EventManager
mov ecx, 0xa
mov dword [esp + 4], ecx
mov dword [esp + 8], esi
mov esi, 0x70453dc0
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sub.libtsplayercore.dll_vlc_event_detach
mov edx, dword [ebx + 8]
mov dword [esp], edx
call sub.libtsplayercore.dll_services_discovery_EventManager
mov dword [esp + 8], ebp
mov ebp, 0x70453d80
mov dword [esp + 4], edi
mov edi, 0xd
mov dword [esp + 0xc], ebx
mov dword [esp], eax
call sub.libtsplayercore.dll_vlc_event_detach
mov eax, dword [ebx + 8]
mov dword [esp], eax
call sub.libtsplayercore.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.libtsplayercore.dll_vlc_event_detach
mov edx, dword [ebx + 8]
mov dword [esp], edx
call sub.libtsplayercore.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.libtsplayercore.dll_vlc_event_detach
mov eax, dword [ebx + 0xc]
mov dword [esp], eax
call sym.libtsplayer.dll_libvlc_media_list_release
mov esi, dword [ebx + 8]
mov dword [esp], esi
call sub.libtsplayercore.dll_vlc_sd_Stop
mov dword [esp], esi
call sub.libtsplayercore.dll_vlc_sd_Destroy
mov esi, dword [ebx + 0x18]
test esi, esi
je 0x70454526
mov edi, dword [ebx + 0x14]
test edi, edi
jle 0x70454526
xor edx, edx
xor ecx, ecx
mov esi, esi
lea edi, [edi]
mov eax, dword [esi + ecx*4]
test eax, eax
je 0x704542e8
mov esi, esi
lea edi, [edi]
mov eax, dword [eax + 8]
inc edx
test eax, eax
jne 0x704542e0
inc ecx
cmp ecx, edi
jne 0x704542d0
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 0x70454367
xor edx, edx
mov dword [esp + 0x14], ebx
mov ebx, edx
jmp 0x70454320
mov esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x18]
mov esi, dword [ecx + ebx*4]
test esi, esi
je 0x70454358
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.704593d0
mov esi, dword [esi + 8]
mov dword [ebp], eax
add ebp, 4
test esi, esi
jne 0x70454340
mov edx, dword [esp + 0x14]
inc ebx
cmp ebx, dword [edx + 0x14]
jl 0x70454320
mov ebx, edx
shl edi, 2
mov eax, dword [esp + 0x28]
mov dword [eax + edi], 0
mov ebp, dword [eax]
test ebp, ebp
je 0x704543d8
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 0x70454470
xor eax, eax
mov dword [esp], eax
call sym.libtsplayer.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 0x70454390
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 0x70454446
mov edi, dword [ebx + 0x14]
test edi, edi
jle 0x70454437
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 0x70454412
jmp 0x7045442b
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 0x70454410
inc ebp
cmp ebp, dword [ebx]
jl 0x70454400
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.libtsplayer.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 0x704544e3
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 0x70454490
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.704592c0
shl eax, 2
mov edi, dword [esp + 0x1c]
mov ebx, dword [edi + eax]
test ebx, ebx
je 0x704543a3
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 0x7045451e
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x70454500
jmp 0x704543a3
mov eax, dword [ebx + 4]
jmp 0x704543a5
mov eax, 4
nop
lea esi, [esi]
jmp 0x704542f4