Function at 0x401b10
Capabilities:
Accept command line arguments
Connect to http server
Create http request
Delete file
Get common file path
Query or enumerate registry value
Send file using ftp

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rdi
push rsi
push rbx
sub rsp, 0x298
lea rbp, [rsp + 0x80]
lea rcx, str.GETTEXT_MUI1
call sub.msvcrt.dll__putenv
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
mov edx, 1
call qword [sym.imp.KERNEL32.dll_HeapSetInformation]
lea rcx, str.kernel32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
mov rbx, rax
je 0x401ba1
lea rdx, str.SetProcessDEPPolicy
mov rcx, rax
mov rsi, qword [sym.imp.KERNEL32.dll_GetProcAddress]
call rsi
test rax, rax
je 0x401b7e
mov ecx, 1
call rax
lea rdx, str.SetDllDirectoryA
mov rcx, rbx
call rsi
test rax, rax
je 0x401b98
lea rcx, [0x0040c2d9]
call rax
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_FreeLibrary]
call qword [sym.imp.KERNEL32.dll_GetCommandLineW]
lea rdx, [rbp - 0x18]
mov rcx, rax
call qword [sym.imp.SHELL32.dll_CommandLineToArgvW]
mov r12, rax
mov eax, 1
test r12, r12
je 0x401dd9
mov eax, dword [rbp - 0x18]
add eax, 3
cdqe
lea rax, [rax*8 + 0x16]
and rax, 0xfffffffffffffff0
call fcn.004037b0
lea rcx, str.__media_library
sub rsp, rax
lea rdi, [rsp + 0x57]
call fcn.00401520
shr rdi, 3
lea rcx, str.__no_ignore_config
mov qword [rdi*8], rax
lea r13, [rdi*8]
call fcn.00401520
cmp dword [rbp - 0x18], 1
mov qword [rdi*8 + 8], rax
jle 0x401e0c
mov r14d, 1
mov qword [rbp - 0x28], 0
mov r15d, 2
mov esi, 1
jmp 0x401c4e
mov ecx, dword [rbp - 0x18]
xor esi, esi
add r14d, 1
cmp ecx, r14d
jle 0x401cc2
movsxd rdi, r14d
lea rdx, str.__no_crashdump
shl rdi, 3
lea rbx, [r12 + rdi]
mov rcx, qword [rbx]
call sub.msvcrt.dll_wcscmp
test eax, eax
je 0x401c40
mov rcx, qword [rbx]
lea rdx, str.__language
mov r8d, 0xa
call sub.msvcrt.dll_wcsncmp
test eax, eax
jne 0x401df0
mov ecx, dword [rbp - 0x18]
lea edx, [rcx - 1]
cmp edx, r14d
jle 0x401c45
lea rbx, [r12 + rdi + 8]
lea rdx, [0x0040c35a]
mov r8d, 2
mov rcx, qword [rbx]
call sub.msvcrt.dll_wcsncmp
test eax, eax
jne 0x401f40
mov ecx, dword [rbp - 0x18]
add r14d, 1
cmp ecx, r14d
jg 0x401c4e
mov dword [rbp - 0x18], r15d
mov qword [r13 + r15*8], 0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
test esi, esi
jne 0x401e30
xor ecx, ecx
mov edx, 0x8000
call qword [sym.imp.msvcrt.dll__setmode]
cmp qword [rbp - 0x28], 0
je 0x401f76
mov rsi, qword [rbp - 0x28]
lea rdi, str.auto
mov ecx, 4
repe cmpsb byte [rsi], byte [rdi]
jne 0x401f00
mov rcx, qword [rbp - 0x28]
call sub.msvcrt.dll_free
mov ecx, dword [rbp - 0x18]
mov rdx, r13
call sub.libvlc.dll_libvlc_new
test rax, rax
mov r12, rax
je 0x401f55
lea r9, [0x0040c87d]
lea r8, [0x0040c881]
lea rdx, str.org.VideoLAN.VLC
mov rcx, rax
call sub.libvlc.dll_libvlc_set_app_id
lea r8, str.VLC_2.1.3
lea rdx, [0x0040c8a2]
mov rcx, r12
call sub.libvlc.dll_libvlc_set_user_agent
lea rdx, str.hotkeys_none
mov rcx, r12
call sub.libvlc.dll_libvlc_add_intf
lea rdx, str.globalhotkeys_none
mov rcx, r12
call sub.libvlc.dll_libvlc_add_intf
xor edx, edx
mov rcx, r12
call sub.libvlc.dll_libvlc_add_intf
xor r9d, r9d
xor r8d, r8d
mov edx, 0xffffffff
mov rcx, r12
call sub.libvlc.dll_libvlc_playlist_play
mov rcx, r12
call sub.libvlc.dll_libvlc_wait
mov rcx, r12
call sub.libvlc.dll_libvlc_release
mov r10d, dword [rbp - 0x18]
xor r15d, r15d
test r10d, r10d
jle 0x401dd7
nop word [rax + rax]
movsxd r11, r15d
add r15d, 1
mov rcx, qword [r13 + r11*8]
call sub.msvcrt.dll_free
cmp dword [rbp - 0x18], r15d
jg 0x401dc0
xor eax, eax
lea rsp, [rbp + 0x218]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rcx, qword [rbx]
lea edi, [r15 + 1]
call fcn.00401520
mov ecx, dword [rbp - 0x18]
mov qword [r13 + r15*8], rax
movsxd r15, edi
jmp 0x401c45
mov dword [rbp - 0x18], 2
mov qword [rdi*8 + 0x10], 0
mov rcx, r12
call qword [sym.imp.KERNEL32.dll_LocalFree]
mov qword [rbp - 0x28], 0
lea r8, [0x00410040]
xor r9d, r9d
xor ecx, ecx
mov edx, 0x801a
mov qword [rsp + 0x20], r8
xor r8d, r8d
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
test eax, eax
jne 0x401f25
lea r12, [0x00410040]
lea rcx, [0x00410040]
call sub.msvcrt.dll_wcslen
lea r9, str._vlccrashdump
lea rcx, [r12 + rax*2]
lea r8, [0x0040c39c]
mov edx, 0x104
mov r14, qword [sym.imp.msvcrt.dll__snwprintf]
call r14
mov qword [0x00410248], r12
lea rdx, str.r__ccsUTF_8
mov rcx, r12
call qword [sym.imp.msvcrt.dll__wfopen]
test rax, rax
je 0x401ee4
mov rcx, rax
call sub.msvcrt.dll_fclose
xor ecx, ecx
mov r9d, 4
lea r8, str.VLC_crash_reporting
lea rdx, str.Ooops:_VLC_media_player_just_crashed._nWould_you_like_to_send_a_bug_report_to_the_developers_team_
mov rsi, qword [sym.imp.USER32.dll_MessageBoxW]
call rsi
cmp eax, 6
je 0x401ff2
mov rcx, qword [0x00410248]
call qword [sym.imp.msvcrt.dll__wremove]
lea rcx, [0x00401ab0]
call qword [sym.imp.KERNEL32.dll_SetUnhandledExceptionFilter]
jmp 0x401ce0
mov r9, qword [rbp - 0x28]
lea r8, str.LANG_s
mov rcx, rbp
mov edx, 0xb
call fcn.00401ae0
mov rcx, rbp
call sub.msvcrt.dll__putenv
jmp 0x401d10
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.Cant_open_the_vlc_conf_PATH_n
lea rcx, [rax + 0x60]
call fcn.004014f0
jmp 0x401e57
mov rcx, qword [rbx]
add r14d, 1
call fcn.00401520
mov qword [rbp - 0x28], rax
jmp 0x401cb6
mov r9d, 0x10
lea r8, [0x0040c8d8]
lea rdx, str.VLC_media_player_could_not_start._nEither_the_command_line_options_were_invalid_or_no_plugins_were_found._n
xor ecx, ecx
call qword [sym.imp.USER32.dll_MessageBoxW]
jmp 0x401dae
lea r9, [rbp - 0x10]
xor r8d, r8d
lea rdx, str.SoftwareVideoLANVLC_
mov rcx, 0xffffffff80000001
mov qword [rsp + 0x20], r9
mov r9d, 0x20019
call qword [sym.imp.ADVAPI32.dll_RegOpenKeyExW]
test eax, eax
jne 0x401d10
lea r8, [rbp - 0x14]
xor r9d, r9d
mov dword [rbp - 0x14], 0x100
mov qword [rsp + 0x20], rbp
lea rdx, str.Lang
mov rcx, qword [rbp - 0x10]
mov qword [rsp + 0x28], r8
xor r8d, r8d
call qword [sym.imp.ADVAPI32.dll_RegQueryValueExW]
test eax, eax
jne 0x401d10
mov rcx, rbp
call fcn.00401520
test rax, rax
mov qword [rbp - 0x28], rax
je 0x401d10
jmp 0x401cf8
xor r9d, r9d
xor r8d, r8d
xor edx, edx
mov dword [rsp + 0x20], 0
lea rcx, str.VLC_Crash_Reporter
call qword [sym.imp.WININET.dll_InternetOpenW]
test rax, rax
mov rdi, rax
je 0x402156
xor r9d, r9d
mov qword [rsp + 0x38], 0
mov dword [rsp + 0x30], 0x8000000
mov dword [rsp + 0x28], 1
mov qword [rsp + 0x20], 0
mov r8d, 0x15
lea rdx, str.crash.videolan.org
mov rcx, rax
call qword [sym.imp.WININET.dll_InternetConnectW]
test rax, rax
mov rbx, rax
je 0x402116
lea rcx, [rbp - 0x10]
call qword [sym.imp.KERNEL32.dll_GetSystemTime]
movzx r10d, word [rbp - 4]
movzx r11d, word [rbp - 6]
lea r8, str._crashes_win32__04d_02d_02d_02d_02d_02d
movzx ecx, word [rbp - 0xa]
movzx edx, word [rbp - 0xe]
movzx eax, word [rbp - 8]
movzx r9d, word [rbp - 0x10]
mov dword [rsp + 0x40], r10d
mov dword [rsp + 0x38], r11d
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], edx
mov rcx, rbp
mov edx, 0x104
mov dword [rsp + 0x30], eax
call r14
mov r9d, 2
mov qword [rsp + 0x20], 0
mov r8, rbp
mov rdx, qword [0x00410248]
mov rcx, rbx
call qword [sym.imp.WININET.dll_FtpPutFileW]
xor r9d, r9d
test eax, eax
je 0x402102
lea r8, str.Report_sent
lea rdx, str.Report_sent_correctly._Thanks_a_lot_for_the_help.
xor ecx, ecx
call rsi
mov rcx, rbx
mov r12, qword [sym.imp.WININET.dll_InternetCloseHandle]
call r12
mov rcx, rdi
call r12
jmp 0x401ed7
lea r8, str.Report_sending_failed
lea rdx, str.There_was_an_error_while_transferring_the_data_to_the_FTP_server._nThanks_a_lot_for_the_help.
xor ecx, ecx
call rsi
jmp 0x4020ea
xor r9d, r9d
lea r8, str.Report_sending_failed
lea rdx, str.There_was_an_error_while_connecting_to_the_FTP_server._Thanks_a_lot_for_the_help.
xor ecx, ecx
call rsi
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov r15d, eax
call qword [sym.imp.msvcrt.dll___iob_func]
lea rdx, str.Cant_connect_to_FTP_server_0x_08lu_n
lea rcx, [rax + 0x60]
mov r8d, r15d
call fcn.004014f0
mov r12, qword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x4020f7
xor r9d, r9d
lea r8, str.Report_sending_failed
lea rdx, str.There_was_an_error_while_connecting_to_the_Internet._nThanks_a_lot_for_the_help_anyway.
xor ecx, ecx
call rsi
jmp 0x401ed7