Function at 0x140056500
Capabilities:
Link many functions at runtime

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rbp
mov qword [rsp + 0x20], rsi
push r13
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 0x140056560
movsx ecx, byte [rbp]
cmp ecx, 0x5c
je 0x140056557
call qword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_isalpha]
test eax, eax
je 0x14005654e
cmp byte [rbp + 1], 0x3a
jne 0x14005654e
cmp byte [rbp + 2], 0x5c
je 0x140056557
mov rbp, qword [rbx + 8]
mov r14b, 1
jmp 0x140056563
mov rbp, qword [rbx + 8]
xor r14b, r14b
jmp 0x140056563
mov r14b, 1
mov r13, 0xffffffffffffffff
mov dword [rsp + 0x28], 0
mov r9d, r13d
mov qword [rsp + 0x20], 0
mov r8, rbp
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
cmovb rcx, r13
call qword [sym.imp.api_ms_win_crt_heap_l1_1_0.dll_malloc]
mov rsi, rax
test rax, rax
je 0x140056897
mov qword [rsp + 0x50], rdi
mov r9d, r13d
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 0x14005661c
mov ecx, 0x110
call fcn.14000ec70
test al, al
je 0x140056814
mov r8, qword [rbx + 8]
lea rdx, str.PLUGIN_INIT:_could_not_load_plugin_DLL:__s
mov ecx, 0x110
call fcn.14000e820
jmp 0x140056814
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 0x1400566e7
lea ecx, [rax + 0x10]
call fcn.14000ec70
test al, al
je 0x140056814
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.14000e820
jmp 0x140056814
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 0x140056791
cmp qword [rbx + 0x28], 0
jne 0x140056791
cmp qword [rbx + 0x30], 0
jne 0x140056791
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000ec70
test al, al
je 0x140056814
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.14000e820
jmp 0x140056814
cmp qword [rbx + 0x38], 0
jne 0x1400567cb
cmp qword [rbx + 0x40], 0
jne 0x1400567cb
cmp qword [rbx + 0x48], 0
jne 0x1400567cb
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000ec70
test al, al
je 0x140056814
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.14000e820
jmp 0x140056814
mov rax, qword [rbx + 0x70]
test rax, rax
je 0x140056820
call qword [0x14008d1f0]
mov edi, eax
cmp eax, 3
jle 0x140056820
mov ecx, reloc.WS2_32.dll_recv
call fcn.14000ec70
test al, al
je 0x140056814
lfence
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.14000e820
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 0x140056831
call qword [0x14008d1f0]
jmp 0x140056836
mov eax, 2
mov dword [rbx + 0x14], eax
test r14b, r14b
je 0x140056861
mov ecx, 0x40
call fcn.14000ec70
test al, al
je 0x140056861
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.14000e820
mov byte [rbx], 1
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 0x140056864
mov rdi, qword [rsp + 0x50]
mov rbx, qword [rsp + 0x58]
mov rbp, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x68]
add rsp, 0x30
pop r15
pop r14
pop r13
ret
call fcn.14000ede0
int3