Function at 0x1400548e0
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
push rsi
push r14
push r15
sub rsp, 0x30
mov rbp, qword [rdx]
mov rbx, rcx
mov qword [rcx + 8], rbp
mov dword [rcx + 0x10], 0x7fff
test rbp, rbp
je 0x14005493a
movsx ecx, byte [rbp]
cmp ecx, 0x5c
je 0x140054931
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
test eax, eax
je 0x140054928
cmp byte [rbp + 1], 0x3a
jne 0x140054928
cmp byte [rbp + 2], 0x5c
je 0x140054931
mov rbp, qword [rbx + 8]
mov r14b, 1
jmp 0x14005493d
mov rbp, qword [rbx + 8]
xor r14b, r14b
jmp 0x14005493d
mov r14b, 1
mov dword [rsp + 0x28], 0
mov r9d, 0xffffffff
mov r8, rbp
mov qword [rsp + 0x20], 0
xor edx, edx
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
movsxd r15, eax
mov rcx, r15
add rcx, rcx
add rcx, 8
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
je 0x140054c5d
mov qword [rsp + 0x50], rdi
mov r9d, 0xffffffff
lea rdi, [rax + 8]
mov dword [rsp + 0x28], r15d
mov r8, rbp
mov qword [rsp + 0x20], rdi
xor edx, edx
mov qword [rax], 0
mov ecx, 0xfde9
call qword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
mov qword [rbx + 0x18], rax
test rax, rax
jne 0x1400549f1
mov ecx, 0x110
call fcn.14000e3d0
test al, al
je 0x140054bdf
mov r8, qword [rbx + 8]
lea rdx, str.PLUGIN_INIT:_could_not_load_plugin_DLL:__s
mov ecx, 0x110
call fcn.14000e000
jmp 0x140054bdf
lea rdx, str.openvpn_plugin_open_v1
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x20], rax
lea rdx, str.openvpn_plugin_open_v2
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x28], rax
lea rdx, str.openvpn_plugin_open_v3
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x30], rax
lea rdx, str.openvpn_plugin_func_v1
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x38], rax
lea rdx, str.openvpn_plugin_func_v2
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x40], rax
lea rdx, str.openvpn_plugin_func_v3
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x48], rax
lea rdx, str.openvpn_plugin_close_v1
mov rcx, qword [rbx + 0x18]
mov rdi, qword [rbx + 8]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x50], rax
test rax, rax
jne 0x140054abc
lea ecx, [rax + 0x10]
call fcn.14000e3d0
test al, al
je 0x140054bdf
mov r9, rdi
lea r8, str.openvpn_plugin_close_v1
lea rdx, str.PLUGIN:_could_not_find_required_symbol__s_in_plugin_DLL__s
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000e000
jmp 0x140054bdf
mov rcx, qword [rbx + 0x18]
lea rdx, str.openvpn_plugin_abort_v1
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x58], rax
lea rdx, str.openvpn_plugin_client_constructor_v1
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x60], rax
lea rdx, str.openvpn_plugin_client_destructor_v1
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x68], rax
lea rdx, str.openvpn_plugin_min_version_required_v1
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x70], rax
lea rdx, str.openvpn_plugin_select_initialization_point_v1
mov rcx, qword [rbx + 0x18]
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [rbx + 0x78], rax
cmp qword [rbx + 0x20], 0
jne 0x140054b63
cmp qword [rbx + 0x28], 0
jne 0x140054b63
cmp qword [rbx + 0x30], 0
jne 0x140054b63
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000e3d0
test al, al
je 0x140054bdf
mov r8, qword [rbx + 8]
lea rdx, str.PLUGIN:_symbol_openvpn_plugin_open_vX_is_undefined_in_plugin:__s
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000e000
jmp 0x140054bdf
cmp qword [rbx + 0x38], 0
jne 0x140054b9d
cmp qword [rbx + 0x40], 0
jne 0x140054b9d
cmp qword [rbx + 0x48], 0
jne 0x140054b9d
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000e3d0
test al, al
je 0x140054bdf
mov r8, qword [rbx + 8]
lea rdx, str.PLUGIN:_symbol_openvpn_plugin_func_vX_is_undefined_in_plugin:__s
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000e000
jmp 0x140054bdf
mov rax, qword [rbx + 0x70]
test rax, rax
je 0x140054beb
call rax
mov edi, eax
cmp eax, 3
jle 0x140054beb
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000e3d0
test al, al
je 0x140054bdf
mov rcx, qword [rbx + 8]
lea rdx, str.PLUGIN_INIT:_plugin_needs_interface_version__d__but_this_version_of_OpenVPN_only_supports_version__d:__s
mov r9d, 3
mov qword [rsp + 0x20], rcx
mov r8d, edi
lea ecx, [r9 + 0xd]
call fcn.14000e000
mov ecx, 1
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__exit]
int3
mov rax, qword [rbx + 0x78]
test rax, rax
je 0x140054bf8
call rax
jmp 0x140054bfd
mov eax, 2
mov dword [rbx + 0x14], eax
test r14b, r14b
je 0x140054c28
mov ecx, 0x40
call fcn.14000e3d0
test al, al
je 0x140054c28
mov r8, qword [rbx + 8]
lea rdx, str.WARNING:_plugin__s_specified_by_a_relative_pathname____using_an_absolute_pathname_would_be_more_secure
mov ecx, 0x40
call fcn.14000e000
mov byte [rbx], 1
nop dword [rax + rax]
mov rbx, qword [rsi]
mov rcx, rsi
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_free]
mov rsi, rbx
test rbx, rbx
jne 0x140054c30
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
add rsp, 0x30
pop r15
pop r14
pop rsi
ret
call fcn.14000e540
int3