Function at 0x18022ab40
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r14
sub rsp, 0x30
mov rbx, rcx
xor ecx, ecx
call qword [sym.imp.MSVCR100.dll__time64]
xor r14d, r14d
lea rcx, [rsp + 0x60]
xorpd xmm2, xmm2
lea edx, [r14 + 4]
mov dword [rsp + 0x60], eax
mov ebp, r14d
call sym.VBoxRT.dll_RAND_add
call sym.VBoxRT.dll_ERR_clear_error
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rsi, qword [rbx + 0x148]
test rsi, rsi
jne 0x18022aba3
mov rax, qword [rbx + 0x158]
mov esi, r14d
mov rcx, qword [rax + 0x100]
test rcx, rcx
cmovne rsi, rcx
mov rax, qword [rbx + 0x88]
mov rcx, rbx
movsxd rdi, dword [rax + 0x290]
inc dword [rbx + 0x2c]
call sym.VBoxRT.dll_SSL_state
test eax, 0x3000
je 0x18022abd1
mov rcx, rbx
call sym.VBoxRT.dll_SSL_state
bt eax, 0xe
jae 0x18022abd9
mov rcx, rbx
call sym.VBoxRT.dll_SSL_clear
mov rax, qword [rbx + 0x88]
mov dword [rax + 0x290], edi
cmp qword [rbx + 0xf8], rbp
jne 0x18022ac17
xor r9d, r9d
mov edx, 0xf6
mov dword [rsp + 0x20], r14d
lea ecx, [r9 + 0x14]
lea r8d, [rdx - 0x43]
call sym.VBoxRT.dll_ERR_put_error
or eax, 0xffffffff
add rsp, 0x30
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov qword [rsp + 0x68], r12
mov qword [rsp + 0x70], r13
mov qword [rsp + 0x78], r15
mov r15d, 1
mov r13, rdi
mov r12d, dword [rbx + 0x48]
lea rdx, [0x180000000]
mov edi, 2
mov ecx, r12d
cmp r12d, 0x2100
jg 0x18022aca7
cmp ecx, 0x2100
je 0x18022ac70
sub ecx, 3
je 0x18022b447
sub ecx, 0x1ffd
je 0x18022b32a
cmp ecx, 3
jmp 0x18022b324
mov rcx, qword [rbx + 0x18]
xor r9d, r9d
xor r8d, r8d
lea edx, [r9 + 0xb]
mov dword [rbx + 0x28], edi
call sym.VBoxRT.dll_BIO_ctrl
test eax, eax
jle 0x18022b4e3
mov rax, qword [rbx + 0x80]
mov dword [rbx + 0x28], r15d
mov ecx, dword [rax + 0x3c0]
mov dword [rbx + 0x48], ecx
jmp 0x18022b3e5
cmp ecx, 0x3004
jg 0x18022b316
je 0x18022b310
sub ecx, 0x2110
cmp ecx, 0xf1
ja case.0x18022ace0.8481
movsxd rax, ecx
movzx eax, byte [rdx + rax + 0x22b580]
mov ecx, dword [rdx + rax*4 + 0x22b538]
add rcx, rdx
jmp rcx
mov rcx, rbx
mov dword [rbx + 0x44], r14d
call sym.VBoxRT.dll_dtls1_start_timer
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_send_hello_request
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rax, qword [rbx + 0x80]
mov rcx, rbx
mov dword [rax + 0x3c0], 0x2122
mov dword [rbx + 0x48], 0x2100
mov dword [rbx + 0x60], r14d
call sym.VBoxRT.dll_ssl3_init_finished_mac
jmp 0x18022b3e5
mov dword [rbx + 0x48], 3
jmp 0x18022b3e5
mov rcx, rbx
mov dword [rbx + 0x44], r14d
call sym.VBoxRT.dll_ssl3_get_client_hello
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_stop_timer
cmp edi, r15d
jne 0x18022ad79
xor r9d, r9d
xor r8d, r8d
mov rcx, rbx
lea edx, [r9 + 0x20]
call sym.VBoxRT.dll_SSL_ctrl
bt eax, 0xd
jae 0x18022ad79
mov dword [rbx + 0x48], 0x2113
jmp 0x18022ad80
mov dword [rbx + 0x48], 0x2130
mov dword [rbx + 0x60], r14d
test r13, r13
je 0x18022b3e5
mov rcx, qword [rbx + 0x80]
mov rax, qword [rcx + 8]
mov qword [rcx + 0x50], rax
cmp dword [rbx + 0x48], 0x2130
jne 0x18022b3e5
mov rax, qword [rbx + 0x88]
mov ecx, 2
mov dword [rax + 0x290], r14d
mov rax, qword [rbx + 0x88]
mov edi, ecx
mov word [rax + 0x244], cx
mov rax, qword [rbx + 0x88]
mov word [rax + 0x240], r15w
mov rax, qword [rbx + 0x88]
mov word [rax + 0x242], r15w
jmp 0x18022b4e6
mov rcx, rbx
call fcn.180229b50
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rax, qword [rbx + 0x80]
mov dword [rbx + 0x48], 0x2100
mov dword [rax + 0x3c0], 0x2110
cmp dword [rbx + 0x194], 0x100
je 0x18022b3e5
mov rcx, rbx
call sym.VBoxRT.dll_ssl3_init_finished_mac
jmp 0x18022b3e5
mov rcx, rbx
mov dword [rbx + 0x3c], edi
call sym.VBoxRT.dll_dtls1_start_timer
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_send_server_hello
mov edi, eax
test eax, eax
jle 0x18022b4e6
cmp dword [rbx + 0xa8], r14d
je 0x18022ae7c
cmp dword [rbx + 0x1dc], r14d
mov eax, 0x21d0
mov ecx, 0x21f0
cmovne eax, ecx
mov dword [rbx + 0x60], r14d
mov dword [rbx + 0x48], eax
jmp 0x18022b3e5
mov dword [rbx + 0x48], 0x2140
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rax, qword [rbx + 0x80]
mov rcx, qword [rax + 0x3b0]
test dword [rcx + 0x14], 0x800
jne 0x18022aedd
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_start_timer
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_send_server_certificate
mov edi, eax
test eax, eax
jle 0x18022b4e6
cmp dword [rbx + 0x1b8], r14d
mov eax, 0x2150
mov ecx, 0x2200
cmovne eax, ecx
mov dword [rbx + 0x60], r14d
mov dword [rbx + 0x48], eax
jmp 0x18022b3e5
mov ebp, r15d
mov dword [rbx + 0x48], 0x2150
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rcx, qword [rbx + 0x80]
mov rax, qword [rcx + 0x3b0]
mov edx, dword [rax + 0x14]
mov eax, dword [rbx + 0x184]
shr eax, 0x15
and eax, r15d
mov dword [rcx + 0x3e0], eax
mov r8, qword [rbx + 0x80]
cmp dword [r8 + 0x3e0], r14d
jne 0x18022af88
test dl, 0x1e
jne 0x18022af88
test r15b, dl
je 0x18022af75
mov rax, qword [rbx + 0xf8]
mov rcx, qword [rax + 0x40]
test rcx, rcx
je 0x18022af88
mov rax, qword [r8 + 0x3b0]
test byte [rax + 0x18], 2
je 0x18022af75
call sym.VBoxRT.dll_EVP_PKEY_size
mov rcx, qword [rbx + 0x80]
mov rdx, qword [rcx + 0x3b0]
shl eax, 3
mov ecx, 0x400
test byte [rdx + 0x18], 8
mov edx, 0x200
cmovne ecx, edx
cmp eax, ecx
jg 0x18022af88
mov ebp, r15d
mov dword [rbx + 0x48], 0x2160
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_start_timer
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_send_server_key_exchange
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov dword [rbx + 0x48], 0x2160
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov ecx, dword [rbx + 0x138]
test r15b, cl
je 0x18022b025
mov rax, qword [rbx + 0x128]
cmp qword [rax + 0x98], r14
je 0x18022afd2
test cl, 4
jne 0x18022b025
mov r8, qword [rbx + 0x80]
mov rax, qword [r8 + 0x3b0]
mov edx, dword [rax + 0x14]
bt edx, 0xb
jae 0x18022afee
test cl, 2
je 0x18022b025
bt edx, 0xd
jb 0x18022b025
mov rcx, rbx
mov dword [r8 + 0x408], r15d
call sym.VBoxRT.dll_dtls1_start_timer
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_send_certificate_request
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov dword [rbx + 0x48], 0x2170
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rax, qword [rbx + 0x80]
mov ebp, r15d
mov dword [rax + 0x408], r14d
mov dword [rbx + 0x48], 0x2170
jmp 0x18022b3e5
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_start_timer
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_send_server_done
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rax, qword [rbx + 0x80]
mov dword [rax + 0x3c0], 0x2180
mov dword [rbx + 0x48], 0x2100
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rcx, rbx
call sym.VBoxRT.dll_ssl3_check_client_hello
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rcx, rbx
cmp eax, 2
jne 0x18022b0a8
call sym.VBoxRT.dll_dtls1_stop_timer
mov dword [rbx + 0x48], 0x2112
jmp 0x18022b3e5
call sym.VBoxRT.dll_ssl3_get_client_certificate
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov dword [rbx + 0x60], r14d
mov dword [rbx + 0x48], 0x2190
jmp 0x18022b3e5
mov rcx, rbx
call sym.VBoxRT.dll_ssl3_get_client_key_exchange
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rdx, qword [rbx + 0x80]
mov rax, qword [rbx + 8]
mov dword [rbx + 0x48], 0x21a0
mov dword [rbx + 0x60], r14d
mov r9, qword [rax + 0xc8]
lea r8, [rdx + 0x220]
add rdx, 0x1b8
mov rcx, rbx
call qword [r9 + 0x38]
mov rdx, qword [rbx + 0x80]
mov rax, qword [rbx + 8]
mov r9, qword [rax + 0xc8]
lea r8, [rdx + 0x230]
mov rcx, rbx
add rdx, 0x1d8
call qword [r9 + 0x38]
jmp 0x18022b3e5
mov rax, qword [rbx + 0x88]
mov rcx, rbx
mov dword [rax + 0x348], r15d
call sym.VBoxRT.dll_ssl3_get_cert_verify
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov dword [rbx + 0x48], 0x21c0
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rax, qword [rbx + 0x88]
mov edx, 0x21c0
mov rcx, rbx
lea r8d, [rdx + 1]
mov dword [rax + 0x348], r15d
call sym.VBoxRT.dll_ssl3_get_finished
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_stop_timer
cmp dword [rbx + 0xa8], r14d
je 0x18022b1b1
mov dword [rbx + 0x48], 3
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
cmp dword [rbx + 0x1dc], r14d
mov eax, 0x21d0
mov ecx, 0x21f0
cmovne eax, ecx
mov dword [rbx + 0x60], r14d
mov dword [rbx + 0x48], eax
jmp 0x18022b3e5
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_send_newsession_ticket
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov dword [rbx + 0x48], 0x21d0
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rcx, rbx
call sym.VBoxRT.dll_ssl3_send_cert_status
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov dword [rbx + 0x48], 0x2150
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov rax, qword [rbx + 0x80]
mov rcx, qword [rbx + 0x128]
mov rax, qword [rax + 0x3b0]
mov qword [rcx + 0xb8], rax
mov rax, qword [rbx + 8]
mov rcx, rbx
mov rdx, qword [rax + 0xc8]
call qword [rdx + reloc.WS2_32.dll_recv]
test eax, eax
je 0x18022b4e3
mov edx, 0x21d0
mov rcx, rbx
lea r8d, [rdx + 1]
call sym.VBoxRT.dll_dtls1_send_change_cipher_spec
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rax, qword [rbx + 8]
mov dword [rbx + 0x48], 0x21e0
mov dword [rbx + 0x60], r14d
mov r8, qword [rax + 0xc8]
mov edx, 0x22
mov rcx, rbx
call qword [r8 + 0x20]
test eax, eax
je 0x18022b4e3
mov edx, 2
mov rcx, rbx
call sym.VBoxRT.dll_dtls1_reset_seq_numbers
jmp 0x18022b3e5
mov rax, qword [rbx + 8]
mov edx, 0x21e0
mov rcx, rbx
mov r9, qword [rax + 0xc8]
lea r8d, [rdx + 1]
mov eax, dword [r9 + 0x58]
mov r9, qword [r9 + 0x50]
mov dword [rsp + 0x20], eax
call sym.VBoxRT.dll_dtls1_send_finished
mov edi, eax
test eax, eax
jle 0x18022b4e6
mov rax, qword [rbx + 0x80]
mov dword [rbx + 0x48], 0x2100
cmp dword [rbx + 0xa8], r14d
je 0x18022b2fd
mov dword [rax + 0x3c0], 0x21c0
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov dword [rax + 0x3c0], 3
mov dword [rbx + 0x60], r14d
jmp 0x18022b3e5
mov dword [rbx + 0x3c], r15d
jmp 0x18022b32a
cmp ecx, 0x4000
je 0x18022b32a
cmp ecx, 0x6000
jne case.0x18022ace0.8481
mov dword [rbx + 0x38], r15d
test rsi, rsi
je 0x18022b340
mov r8d, r15d
mov edx, reloc.WS2_32.dll_recv
mov rcx, rbx
call rsi
mov eax, dword [rbx]
and eax, 0xff00
cmp eax, 0xfe00
jne 0x18022b4ff
mov dword [rbx + 4], 0x2000
cmp qword [rbx + 0x50], r14
jne 0x18022b389
call sym.VBoxRT.dll_BUF_MEM_new
mov rdi, rax
test rax, rax
je 0x18022b4e3
mov edx, 0x4000
mov rcx, rax
call sym.VBoxRT.dll_BUF_MEM_grow
test eax, eax
je 0x18022b4e3
mov qword [rbx + 0x50], rdi
mov rcx, rbx
call sym.VBoxRT.dll_ssl3_setup_buffers
test eax, eax
je 0x18022b4e3
cmp dword [rbx + 0x48], 0x3004
mov dword [rbx + 0x60], r14d
je 0x18022b3d4
mov edx, r15d
mov rcx, rbx
call sym.VBoxRT.dll_ssl_init_wbio_buffer
test eax, eax
je 0x18022b4e3
mov rcx, rbx
call sym.VBoxRT.dll_ssl3_init_finished_mac
mov rax, qword [rbx + 0x158]
mov dword [rbx + 0x48], 0x2110
inc dword [rax + 0x6c]
jmp 0x18022b3e5
mov rax, qword [rbx + 0x158]
inc dword [rax + 0x70]
mov dword [rbx + 0x48], 0x2120
mov rax, qword [rbx + 0x80]
cmp dword [rax + 0x3c4], r14d
jne 0x18022b43f
test ebp, ebp
jne 0x18022b43f
cmp dword [rbx + 0x160], r14d
je 0x18022b41e
mov rcx, qword [rbx + 0x18]
lea edx, [rbp + 0xb]
xor r9d, r9d
xor r8d, r8d
call sym.VBoxRT.dll_BIO_ctrl
mov edi, eax
test eax, eax
jle 0x18022b4e6
test rsi, rsi
je 0x18022b43f
mov edi, dword [rbx + 0x48]
cmp edi, r12d
je 0x18022b43f
mov r8d, r15d
mov edx, 0x2001
mov rcx, rbx
mov dword [rbx + 0x48], r12d
call rsi
mov dword [rbx + 0x48], edi
mov ebp, r14d
jmp 0x18022ac2f
mov rcx, rbx
call sym.VBoxRT.dll_ssl3_cleanup_key_block
mov rcx, rbx
call sym.VBoxRT.dll_ssl_free_wbio_buffer
cmp dword [rbx + 0x3c], 2
mov dword [rbx + 0x60], r14d
jne 0x18022b497
mov edx, edi
mov rcx, rbx
mov dword [rbx + 0x3c], r14d
call sym.VBoxRT.dll_ssl_update_cache
mov r11, qword [rbx + 0x158]
lea rax, [sym.VBoxRT.dll_dtls1_accept]
inc dword [r11 + 0x74]
mov qword [rbx + 0x30], rax
test rsi, rsi
je 0x18022b497
mov r8d, r15d
mov edx, 0x20
mov rcx, rbx
call rsi
mov rax, qword [rbx + 0x88]
mov edi, r15d
mov word [rax + 0x244], r14w
mov rax, qword [rbx + 0x88]
mov word [rax + 0x240], r14w
mov rax, qword [rbx + 0x88]
mov word [rax + 0x242], r14w
jmp 0x18022b4e6
xor r9d, r9d
mov edx, 0xf6
mov dword [rsp + 0x20], r14d
lea ecx, [r9 + 0x14]
lea r8d, [rdx + 9]
call sym.VBoxRT.dll_ERR_put_error
or edi, 0xffffffff
dec dword [rbx + 0x2c]
test rsi, rsi
je 0x18022b4fb
mov r8d, edi
mov edx, 0x2002
mov rcx, rbx
call rsi
mov eax, edi
jmp 0x18022b51c
xor r9d, r9d
mov edx, 0xf6
mov dword [rsp + 0x20], r14d
lea ecx, [r9 + 0x14]
lea r8d, [r9 + 0x44]
call sym.VBoxRT.dll_ERR_put_error
or eax, 0xffffffff
mov r13, qword [rsp + 0x70]
mov r12, qword [rsp + 0x68]
mov r15, qword [rsp + 0x78]
add rsp, 0x30
pop r14
pop rdi
pop rsi
pop rbp
pop rbx
ret