Function at 0x140029910
Capabilities:
Encode data using xor

Disassembly:
push rbx
push rbp
push rsi
push r12
push r13
push r14
push r15
sub rsp, 0x70
xor r15d, r15d
lea rax, [0x1400a90d0]
lea r14, str.E:mbedtls_3.2.1mbedtls_3.2.1library_ssl_tls12_server.c
mov dword [rsp + 0xc0], r15d
mov r9d, 0x39b
mov dword [rsp + 0xb8], r15d
mov r8, r14
mov qword [rsp + 0x20], rax
lea edx, [r15 + 2]
mov rbx, rcx
call fcn.140024d00
lea ebp, [r15 + 0xd]
mov qword [rsp + 0x68], rdi
lea r13d, [r15 + 5]
lea rsi, str.replayed_record__discarding
lea r12d, [r15 + 1]
cmp dword [rbx + 0xc], r15d
jne 0x14002998e
mov rdx, r13
mov rcx, rbx
call fcn.1400187c0
mov edi, eax
test eax, eax
jne 0x140029ae9
mov rax, qword [rbx]
mov rcx, rbp
mov rdi, qword [rbx + 0xc0]
mov r9d, 0x3b3
mov r8, r14
mov edx, 4
cmp byte [rax + 9], r12b
lea rax, str.record_header
cmovne rcx, r13
mov qword [rsp + 0x30], rcx
mov rcx, rbx
mov qword [rsp + 0x28], rdi
mov qword [rsp + 0x20], rax
call fcn.140024ed0
movzx eax, byte [rdi]
mov r9d, 0x3bf
mov dword [rsp + 0x28], eax
mov r8, r14
lea rax, str.client_hello__message_type:__d
mov edx, 3
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140024d00
cmp byte [rdi], 0x16
mov r8, r14
jne 0x14002adf7
mov rax, qword [rbx + 0xc8]
mov r9d, 0x3c8
mov edx, 3
movzx ecx, byte [rax]
movzx eax, byte [rax + 1]
shl ecx, 8
or ecx, eax
lea rax, str.client_hello__message_len.:__d
mov dword [rsp + 0x28], ecx
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140024d00
movzx eax, byte [rdi + 2]
mov r9d, 0x3cb
movzx ecx, byte [rdi + 1]
mov r8, r14
mov dword [rsp + 0x30], eax
mov edx, 3
mov dword [rsp + 0x28], ecx
lea rax, str.client_hello__protocol_version:___d:_d_
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov rax, qword [rbx]
cmp byte [rax + 9], r12b
jne 0x140029b19
cmp dword [rbx + 0xc], r15d
jne 0x140029b19
mov rcx, qword [rbx + 0xb8]
cmp byte [rcx], r15b
jne 0x140029b40
cmp byte [rcx + 1], r15b
jne 0x140029b40
mov eax, dword [rcx + 2]
mov dword [rbx + 0x18a], eax
movzx eax, word [rcx + 6]
mov rcx, rbx
mov word [rbx + 0x18e], ax
call fcn.14001a880
mov rcx, rbx
test eax, eax
je 0x140029b14
mov r9d, 0x3e3
mov qword [rsp + 0x20], rsi
mov r8, r14
mov edx, r12d
call fcn.140024d00
mov qword [rbx + 0x108], r15
mov qword [rbx + 0xf8], r15
jmp 0x140029973
mov r9d, 0x3ac
lea rax, str.mbedtls_ssl_fetch_input
mov dword [rsp + 0x28], edi
mov r8, r14
mov edx, r12d
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.140024e10
mov eax, edi
jmp 0x14002ae19
call fcn.14001a910
mov rax, qword [rbx + 0xc8]
movzx esi, byte [rax]
movzx eax, byte [rax + 1]
shl rsi, 8
or rsi, rax
cmp dword [rbx + 0xc], r15d
je 0x140029b6a
mov rsi, qword [rbx + 0x120]
jmp 0x140029bdf
lea rax, str.bad_client_hello_message
mov r9d, 0x3d9
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, r12d
mov rcx, rbx
call fcn.140024d00
mov eax, 0xffff9a00
jmp 0x14002ae19
mov rcx, rbx
cmp rsi, 0x4000
jbe 0x140029b9d
lea rax, str.bad_client_hello_message
mov r9d, 0x3fc
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, r12d
call fcn.140024d00
mov eax, 0xffff9a00
jmp 0x14002ae19
mov rax, qword [rbx]
cmp byte [rax + 9], r12b
cmovne rbp, r13
lea rdx, [rsi + rbp]
call fcn.1400187c0
mov edi, eax
test eax, eax
je 0x140029bc2
mov r9d, 0x403
jmp 0x140029aef
mov rax, qword [rbx]
cmp byte [rax + 9], r12b
jne 0x140029bd8
lea rax, [rsi + 0xd]
mov qword [rbx + 0x108], rax
jmp 0x140029bdf
mov qword [rbx + 0xf8], r15
mov rbp, qword [rbx + 0xd8]
lea rax, str.record_contents
mov qword [rsp + 0x30], rsi
mov r13d, 4
mov qword [rsp + 0x28], rbp
mov edx, r13d
mov r9d, 0x412
mov qword [rsp + 0x20], rax
mov r8, r14
mov rcx, rbx
call fcn.140024ed0
mov rax, qword [rbx + 0x70]
mov r8, rsi
mov rdx, rbp
mov rcx, rbx
call qword [rax + 0x20]
mov rax, qword [rbx]
mov r15d, recv
mov ecx, r15d
mov r8, r14
cmp byte [rax + 9], r12b
cmovne ecx, r13d
cmp rsi, rcx
mov rcx, rbx
jae 0x140029c69
lea rax, str.bad_client_hello_message
mov r9d, 0x420
mov edx, r12d
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov eax, 0xffff8d00
jmp 0x14002ae19
movzx eax, byte [rbp]
mov r9d, 0x424
mov dword [rsp + 0x28], eax
mov edx, 3
lea rax, str.client_hello_v3__handshake_type:__d
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov r8, r14
mov rcx, rbx
cmp byte [rbp], r12b
je 0x140029ca4
mov r9d, 0x428
jmp 0x14002ae00
movzx eax, byte [rbp + 2]
mov r9d, 0x42e
movzx edi, byte [rbp + 1]
mov edx, 3
shl rdi, 8
or rdi, rax
movzx eax, byte [rbp + 3]
shl rdi, 8
or rdi, rax
lea rax, str.client_hello_v3__handshake_len.:__u
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call fcn.140024d00
movzx eax, byte [rbp + 1]
test al, al
je 0x140029d14
mov dword [rsp + 0x28], eax
mov r9d, 0x435
lea rax, str.bad_client_hello_message:__u___0
mov r8, r14
mov edx, r12d
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.140024d00
mov eax, 0xffff8d00
jmp 0x14002ae19
mov rax, qword [rbx]
movzx ecx, byte [rax + 9]
mov rax, r15
cmp cl, r12b
cmovne rax, r13
add rax, rdi
cmp rsi, rax
je 0x140029d6b
cmp cl, r12b
mov dword [rsp + 0x38], edi
lea rax, str.bad_client_hello_message:__u____u___u
mov r9d, 0x43f
cmovne r15d, r13d
mov r8, r14
mov dword [rsp + 0x30], r15d
mov edx, r12d
mov dword [rsp + 0x28], esi
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov eax, 0xffff8d00
jmp 0x14002ae19
cmp cl, r12b
jne 0x140029eba
mov rax, qword [rbx + 0xd8]
movzx ecx, byte [rax + 4]
movzx edx, byte [rax + 5]
shl ecx, 8
or ecx, edx
cmp dword [rbx + 0xc], r12d
jne 0x140029dd8
mov rdx, qword [rbx + 0x70]
mov eax, dword [rdx + 0x400]
cmp ecx, eax
je 0x140029dce
mov dword [rsp + 0x30], eax
mov r9d, 0x456
mov dword [rsp + 0x28], ecx
lea rax, str.bad_client_hello_message_seq:__u__expected__u_
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov r8, r14
mov edx, r12d
call fcn.140024d00
mov eax, 0xffff8d00
jmp 0x14002ae19
inc eax
mov dword [rdx + 0x400], eax
jmp 0x140029dee
mov rax, qword [rbx + 0x70]
mov dword [rax + 0x3fc], ecx
inc ecx
mov rax, qword [rbx + 0x70]
mov dword [rax + 0x400], ecx
mov rcx, qword [rbx + 0xd8]
mov r9d, 0x470
mov r8, r14
movzx eax, byte [rcx + 7]
movzx edi, byte [rcx + 6]
movzx r13d, byte [rcx + 9]
movzx edx, byte [rcx + 1]
shl rdx, 8
shl rdi, 8
or rdi, rax
shl r13, 8
movzx eax, byte [rcx + 8]
shl rdi, 8
or rdi, rax
movzx eax, byte [rcx + 0xa]
or r13, rax
movzx eax, byte [rcx + 0xb]
shl r13, 8
or r13, rax
movzx eax, byte [rcx + 2]
or rdx, rax
movzx eax, byte [rcx + 3]
shl rdx, 8
mov rcx, rbx
or rdx, rax
lea rax, str.fragment_offset_u_fragment_length_u_length_u
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x30], r13d
mov qword [rsp + 0xb0], rdx
mov edx, 4
mov dword [rsp + 0x28], edi
mov qword [rsp + 0x20], rax
call fcn.140024d00
test rdi, rdi
jne 0x140029e8a
cmp qword [rsp + 0xb0], r13
je 0x140029eb4
lea rax, str.ClientHello_fragmentation_not_supported
mov r9d, 0x473
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, r12d
mov rcx, rbx
call fcn.140024d00
mov eax, 0xffff8f80
jmp 0x14002ae19
mov r13d, 4
mov rax, qword [rbx]
mov r8, r14
mov rcx, rbx
cmp byte [rax + 9], r12b
cmovne r15, r13
add rbp, r15
sub rsi, r15
cmp rsi, 0x26
jae 0x140029efb
lea rax, str.bad_client_hello_message
mov r9d, 0x494
mov edx, r12d
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov eax, 0xffff8d00
jmp 0x14002ae19
mov qword [rsp + 0x30], 2
lea rax, str.client_hello__version
mov qword [rsp + 0x28], rbp
mov r9d, 0x49b
mov edx, 3
mov qword [rsp + 0x20], rax
call fcn.140024ed0
mov rax, qword [rbx]
mov rcx, rbp
movzx edx, byte [rax + 9]
call fcn.14001e030
movzx edx, ax
mov r8, r14
mov rax, qword [rbx + 0x68]
mov rcx, rbx
mov dword [rbx + 0x14], edx
mov dword [rax + 4], edx
cmp dword [rbx + 0x14], 0x303
je 0x140029f81
lea rax, str.server_only_supports_TLS_1.2
mov r9d, 0x4a2
mov edx, r12d
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov r8b, 0x46
mov dl, 2
mov rcx, rbx
call fcn.14001cbb0
mov eax, 0xffff9180
jmp 0x14002ae19
mov qword [rsp + 0x30], 0x20
lea rax, str.client_hello__random_bytes
lea rdi, [rbp + 2]
mov r9d, 0x4ab
mov qword [rsp + 0x28], rdi
mov edx, 3
mov qword [rsp + 0x20], rax
call fcn.140024ed0
mov rax, qword [rbx + 0x70]
movups xmm0, xmmword [rdi]
movups xmmword [rax + 0x5d8], xmm0
movups xmm1, xmmword [rdi + 0x10]
movups xmmword [rax + 0x5e8], xmm1
movzx r15d, byte [rbp + 0x22]
cmp r15, 0x20
ja 0x14002ade6
lea rax, [r15 + 0x24]
cmp rax, rsi
ja 0x14002ade6
mov qword [rsp + 0x30], r15
lea rax, str.client_hello__session_id
lea rdi, [rbp + 0x23]
mov r9d, 0x4bd
mov qword [rsp + 0x28], rdi
mov r8, r14
mov edx, 3
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.140024ed0
mov rax, qword [rbx + 0x68]
xorps xmm0, xmm0
mov rdx, rdi
mov qword [rax + 0x18], r15
mov rax, qword [rbx + 0x68]
movups xmmword [rax + 0x20], xmm0
movups xmmword [rax + 0x30], xmm0
mov r8, qword [rbx + 0x68]
lea rcx, [r8 + 0x20]
mov r8, qword [r8 + 0x18]
call fcn.14006bf10
mov rax, qword [rbx]
lea rcx, [r15 + 0x23]
cmp byte [rax + 9], r12b
jne 0x14002a1a8
movzx edi, byte [rcx + rbp]
lea rdx, [rcx + rbp]
mov r8, r14
lea r15, [rdi + rcx]
mov rcx, rbx
lea rax, [r15 + 3]
cmp rax, rsi
jbe 0x14002a09c
mov r9d, 0x4d0
lea rax, str.bad_client_hello_message
mov edx, r12d
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov rcx, rbx
mov dl, 2
mov r8b, 0x32
call fcn.14001cbb0
mov eax, 0xffff8d00
jmp 0x14002ae19
lea r13, [rdx + 1]
mov qword [rsp + 0x30], rdi
lea rax, str.client_hello__cookie
mov qword [rsp + 0x28], r13
mov r9d, 0x4d7
mov qword [rsp + 0x20], rax
mov edx, 3
call fcn.140024ed0
mov rcx, qword [rbx]
mov r10, qword [rcx + 0x90]
test r10, r10
je 0x14002a159
cmp dword [rbx + 0xc], 0
jne 0x14002a159
mov rax, qword [rbx + 0x1b0]
mov r8, rdi
mov r9, qword [rbx + 0x1a8]
mov rdx, r13
mov rcx, qword [rcx + 0x98]
mov qword [rsp + 0x20], rax
call r10
mov r8, r14
mov edx, 2
mov rcx, rbx
test eax, eax
je 0x14002a135
lea rax, str.cookie_verification_failed
mov r9d, 0x4e4
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov rax, qword [rbx + 0x70]
mov byte [rax + 0x3f8], r12b
jmp 0x14002a1a4
lea rax, str.cookie_verification_passed
mov r9d, 0x4e9
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov rax, qword [rbx + 0x70]
mov byte [rax + 0x3f8], 0
jmp 0x14002a1a4
mov r8, r14
mov rcx, rbx
test rdi, rdi
je 0x14002a188
lea rax, str.bad_client_hello_message
mov r9d, 0x4f4
mov edx, r12d
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov eax, 0xffff8d00
jmp 0x14002ae19
lea rax, str.cookie_verification_skipped
mov r9d, 0x4f8
mov edx, 2
mov qword [rsp + 0x20], rax
call fcn.140024d00
lea rcx, [r15 + 1]
movzx eax, byte [rcx + rbp]
movzx edx, byte [rcx + rbp + 1]
shl rax, 8
or rdx, rax
mov qword [rsp + 0x50], rdx
cmp rdx, 2
jb 0x14002add5
lea rdi, [rdx + rcx]
lea rax, [rdi + 3]
cmp rax, rsi
ja 0x14002add5
test r12b, dl
jne 0x14002add5
mov qword [rsp + 0x30], rdx
lea r15, [rcx + 2]
add r15, rbp
lea rax, str.client_hello__ciphersuitelist
mov qword [rsp + 0x28], r15
mov r9d, 0x512
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov qword [rsp + 0x40], r15
mov rcx, rbx
call fcn.140024ed0
movzx ecx, byte [rdi + rbp + 2]
lea rdx, [rdi + rbp]
lea rax, [rcx - 1]
cmp rax, 0xf
ja 0x14002adc4
add rdi, 3
add rdi, rcx
cmp rdi, rsi
ja 0x14002adc4
lea rax, [rdx + 3]
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rax
mov r9d, 0x526
lea rax, str.client_hello__compression
mov r8, r14
mov edx, 3
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.140024ed0
mov rax, qword [rbx + 0x68]
xor ecx, ecx
mov dword [rax + 0x14], ecx
mov rax, qword [rbx]
cmp byte [rax + 9], r12b
jne 0x14002a289
mov rax, qword [rbx + 0x68]
mov dword [rax + 0x14], ecx
cmp rsi, rdi
jbe 0x14002a2e1
lea rax, [rdi + 2]
cmp rsi, rax
jae 0x14002a2a8
mov r9d, 0x536
mov r8, r14
mov rcx, rbx
jmp 0x14002a071
movzx eax, byte [rdi + rbp]
lea rcx, [rdi + rbp]
movzx ebp, byte [rdi + rbp + 1]
shl rax, 8
or rbp, rax
mov qword [rsp + 0xc8], rbp
lea rax, [rbp + 2]
add rax, rdi
cmp rsi, rax
je 0x14002a2f5
mov r9d, 0x541
mov r8, r14
mov rcx, rbx
jmp 0x14002a071
mov qword [rsp + 0xc8], rcx
lea rcx, [rdi + rbp]
mov rbp, qword [rsp + 0xc8]
lea r13, [rcx + 2]
mov qword [rsp + 0x30], rbp
lea rax, str.client_hello_extensions
mov qword [rsp + 0x28], r13
mov r9d, 0x54b
mov qword [rsp + 0x20], rax
mov r8, r14
mov edx, 3
mov rcx, rbx
call fcn.140024ed0
test rbp, rbp
je 0x14002aa2c
lea r11, [0x1400a9498]
lea r10, [0x1400a94c0]
lea r9, str.unknown_extension_found:__u__ignoring_
lea r8, [0x1400a9470]
cmp rbp, 4
jb 0x14002aa1b
movzx esi, byte [r13 + 2]
movzx ebp, byte [r13 + 3]
mov edi, esi
movzx ecx, byte [r13]
movzx eax, byte [r13 + 1]
shl edi, 8
or edi, ebp
shl ecx, 8
or ecx, eax
lea edx, [rdi + 4]
mov qword [rsp + 0x58], rdx
cmp rdx, qword [rsp + 0xc8]
ja 0x14002aa0a
cmp ecx, 0x10
ja 0x14002a672
je 0x14002a62d
mov eax, ecx
test ecx, ecx
je 0x14002a5e8
sub eax, r12d
je 0x14002a5ab
sub eax, 9
je 0x14002a4b5
sub eax, r12d
je 0x14002a412
cmp eax, 2
jne 0x14002a696
lea rax, str.found_signature_algorithms_extension
mov r9d, 0x57a
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
mov r8d, edi
lea rdx, [r13 + 4]
add r8, 4
mov rcx, rbx
add r8, r13
call fcn.140012cc0
test eax, eax
jne 0x14002ae19
mov ecx, r12d
mov dword [rsp + 0xb8], ecx
jmp 0x14002a874
lea rax, [0x1400a9448]
mov r9d, 0x58f
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
mov rax, qword [rbx + 0x70]
mov ecx, edi
or byte [rax + 1], r12b
test edi, edi
je 0x14002a8ad
movzx edx, byte [r13 + 4]
lea rax, [rdx + 1]
cmp rax, rcx
jne 0x14002a8ad
lea rcx, [r13 + 5]
test rdx, rdx
je 0x14002a86d
movzx r8d, byte [rcx]
cmp r8b, 2
jb 0x14002a47c
inc rcx
sub rdx, r12
jne 0x14002a465
jmp 0x14002a86d
mov rax, qword [rbx + 0x70]
mov r9d, 0x118
mov edx, 4
mov byte [rax + 0x168], r8b
mov r8, r14
movzx eax, byte [rcx]
mov rcx, rbx
mov dword [rsp + 0x28], eax
lea rax, str.point_format_selected:__d
mov qword [rsp + 0x20], rax
call fcn.140024d00
jmp 0x14002a86d
lea rax, str.found_supported_elliptic_curves_extension
mov r9d, 0x587
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
mov ecx, edi
cmp rcx, 2
jb 0x14002a912
movzx eax, byte [r13 + 4]
movzx edi, byte [r13 + 5]
shl rax, 8
or rdi, rax
lea rax, [rdi + 2]
cmp rax, rcx
jne 0x14002a90a
test r12b, dil
jne 0x14002a90a
mov rax, qword [rbx + 0x70]
cmp qword [rax + 0x330], 0
jne 0x14002a8d1
mov eax, reloc.WS2_32.dll_ntohl
mov rsi, rdi
shr rsi, 1
inc rsi
cmp rsi, 0xe
lea edx, [rax - 6]
cmova rsi, rax
mov rcx, rsi
call fcn.1400727c8
mov r9, rax
test rax, rax
je 0x14002a8b8
mov rax, qword [rbx + 0x70]
lea r8, [r13 + 6]
mov qword [rax + 0x330], r9
test rdi, rdi
je 0x14002a86d
cmp rsi, r12
jbe 0x14002a86d
movzx eax, byte [r8]
lea rcx, [0x140091d20]
movzx edx, byte [r8 + 1]
shl ax, 8
or dx, ax
cmp word [rcx + 4], dx
je 0x14002a592
add rcx, 0x10
cmp dword [rcx], 0
jne 0x14002a581
jmp 0x14002a59c
mov qword [r9], rcx
add r9, 8
dec rsi
add r8, 2
sub rdi, 2
jne 0x14002a561
jmp 0x14002a86d
mov qword [rsp + 0x20], r8
mov r9d, 0x5a5
mov r8, r14
mov edx, 3
mov rcx, rbx
call fcn.140024d00
cmp edi, r12d
jne 0x14002a94b
movzx ecx, byte [r13 + 4]
cmp cl, 5
jae 0x14002a94b
mov rax, qword [rbx + 0x68]
mov byte [rax], cl
jmp 0x14002a86d
lea rax, str.found_ServerName_extension
mov r9d, 0x565
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
mov r8d, edi
lea rdx, [r13 + 4]
add r8, 4
mov rcx, rbx
add r8, r13
call fcn.1400168b0
test eax, eax
jne 0x14002ae19
jmp 0x14002a86d
lea rax, str.found_alpn_extension
mov r9d, 0x5d7
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
mov r8d, edi
lea rdx, [r13 + 4]
add r8, 4
mov rcx, rbx
add r8, r13
call fcn.140016b80
test eax, eax
jne 0x14002ae19
jmp 0x14002a86d
mov eax, ecx
sub eax, 0x16
je 0x14002a836
sub eax, r12d
je 0x14002a7f2
sub eax, 0xc
je 0x14002a7b0
cmp eax, 0xfede
je 0x14002a6ba
mov dword [rsp + 0x28], ecx
mov r8, r14
mov qword [rsp + 0x20], r9
mov edx, 3
mov r9d, 0x5ec
mov rcx, rbx
call fcn.140024d00
jmp 0x14002a86d
lea rax, str.found_renegotiation_extension
mov r9d, 0x56e
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
cmp dword [rbx + 0xc], 0
mov esi, r12d
mov dword [rsp + 0xc0], r12d
mov ecx, edi
je 0x14002a789
mov rdx, qword [rbx + 0x1c0]
lea rax, [rdx + 1]
cmp rcx, rax
jne 0x14002a982
movzx eax, byte [r13 + 4]
cmp rax, rdx
jne 0x14002a982
cmp qword [rbx + 0x1c0], 0
lea r8, [r13 + 5]
lea r9, [rbx + 0x1d4]
mov byte [rsp + 0xb0], 0
jbe 0x14002a76d
mov rdx, r9
sub r8, r9
nop dword [rax + rax]
movzx eax, byte [r8 + rdx]
movzx ecx, byte [rdx]
inc rdx
xor cl, al
movzx eax, byte [rsp + 0xb0]
or cl, al
mov rax, rdx
sub rax, r9
mov byte [rsp + 0xb0], cl
cmp rax, qword [rbx + 0x1c0]
jb 0x14002a740
movzx eax, byte [rsp + 0xb0]
test al, al
jne 0x14002a982
mov ecx, dword [rsp + 0xb8]
jmp 0x14002a87b
cmp rcx, rsi
jne 0x14002a991
cmp byte [r13 + 4], 0
jne 0x14002a991
mov ecx, dword [rsp + 0xb8]
mov dword [rbx + 0x1b8], r12d
jmp 0x14002a87b
lea rax, [0x1400a94e8]
mov r9d, 0x5cd
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
mov r8, rsi
lea rdx, [r13 + 4]
shl r8, 8
mov rcx, rbx
or r8, rbp
call fcn.1400291a0
test eax, eax
jne 0x14002ae19
jmp 0x14002a86d
mov r9d, 0x5c3
mov qword [rsp + 0x20], r10
mov r8, r14
mov edx, 3
mov rcx, rbx
call fcn.140024d00
test edi, edi
jne 0x14002a9c8
mov rax, qword [rbx]
mov esi, dword [rsp + 0xc0]
mov ecx, dword [rsp + 0xb8]
cmp byte [rax + 0xe], r12b
jne 0x14002a87b
mov rax, qword [rbx + 0x70]
mov byte [rax + 0xc], r12b
jmp 0x14002a87b
mov r9d, 0x5b9
mov qword [rsp + 0x20], r11
mov r8, r14
mov edx, 3
mov rcx, rbx
call fcn.140024d00
test edi, edi
jne 0x14002a9d0
mov rax, qword [rbx]
cmp byte [rax + 0xd], r12b
jne 0x14002a86d
mov rax, qword [rbx + 0x68]
mov dword [rax + 0x94], r12d
mov ecx, dword [rsp + 0xb8]
mov esi, dword [rsp + 0xc0]
mov rbp, qword [rsp + 0xc8]
sub rbp, qword [rsp + 0x58]
add r13, qword [rsp + 0x58]
mov qword [rsp + 0xc8], rbp
test rbp, rbp
jne 0x14002a32e
test ecx, ecx
je 0x14002aa2c
xor edx, edx
jmp 0x14002aa44
mov r9d, 0x102
jmp 0x14002a9d6
mov r8b, 0x50
mov dl, 2
mov rcx, rbx
mov edi, 0xffff8100
call fcn.14001cbb0
mov eax, edi
jmp 0x14002ae19
lea rax, str.bad_client_hello_message
mov r9d, 0xd1
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, r12d
mov rcx, rbx
call fcn.140024d00
mov r8b, 0x2f
mov dl, 2
mov rcx, rbx
mov edi, 0xffff9a00
call fcn.14001cbb0
mov eax, edi
jmp 0x14002ae19
mov r9d, 0xc8
jmp 0x14002a918
mov r9d, 0xbf
lea rax, str.bad_client_hello_message
mov r8, r14
mov edx, r12d
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.140024d00
mov r8b, 0x32
mov dl, 2
mov rcx, rbx
mov edi, 0xffff8d00
call fcn.14001cbb0
mov eax, edi
jmp 0x14002ae19
lea rax, str.bad_client_hello_message
mov r9d, 0x14b
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, r12d
mov rcx, rbx
call fcn.140024d00
mov r8b, 0x2f
mov dl, 2
mov rcx, rbx
call fcn.14001cbb0
mov eax, 0xffff9a00
jmp 0x14002ae19
mov r9d, 0x75
lea rax, str.non_matching_renegotiation_info
jmp 0x14002a99e
mov r9d, 0x80
lea rax, str.non_zero_length_renegotiation_info
mov rcx, rbx
mov qword [rsp + 0x20], rax
mov edx, r12d
mov r8, r14
call fcn.140024d00
mov r8b, 0x28
mov dl, 2
mov rcx, rbx
call fcn.14001cbb0
mov eax, 0xffff9200
jmp 0x14002ae19
mov r9d, 0x1c1
jmp 0x14002a9d6
mov r9d, 0x1a8
lea rax, str.bad_client_hello_message
mov r8, r14
mov edx, r12d
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdi, rbx
call fcn.140024d00
mov rcx, rbx
mov dl, 2
mov r8b, 0x32
call fcn.14001cbb0
mov eax, 0xffff8d00
jmp 0x14002ae19
mov r9d, 0x55c
mov r8, r14
mov rcx, rbx
jmp 0x14002a071
mov r9d, 0x552
mov r8, r14
mov rcx, rbx
jmp 0x14002a071
mov rax, qword [rbx + 0x70]
xor edx, edx
mov esi, dword [rsp + 0xc0]
mov dword [rax + 0x40], 0x2010203
mov word [rax + 0x44], dx
mov rax, rdx
mov rcx, r15
mov rdx, qword [rsp + 0x50]
nop
cmp byte [rcx], 0
jne 0x14002aa5d
cmp byte [r15 + rax + 1], 0xff
je 0x14002aa6c
add rcx, 2
add rax, 2
cmp rax, rdx
jb 0x14002aa50
jmp 0x14002aaad
lea rax, str.received_TLS_EMPTY_RENEGOTIATION_INFO
mov r9d, 0x619
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 3
mov rcx, rbx
call fcn.140024d00
cmp dword [rbx + 0xc], r12d
jne 0x14002aaa6
lea rax, str.received_RENEGOTIATION_SCSV_during_renegotiation
mov r9d, 0x61e
jmp 0x14002a99e
mov dword [rbx + 0x1b8], r12d
mov ecx, dword [rbx + 0x1b8]
cmp ecx, r12d
je 0x14002aad3
mov rax, qword [rbx]
cmp byte [rax + 0xb], 2
jne 0x14002aad3
mov r9d, 0x62f
lea rax, str.legacy_renegotiation__breaking_off_handshake
jmp 0x14002a99e
cmp dword [rbx + 0xc], r12d
jne 0x14002ab2d
cmp ecx, r12d
jne 0x14002aaf4
test esi, esi
jne 0x14002ab12
mov r9d, 0x637
lea rax, str.renegotiation_info_extension_missing__secure_
jmp 0x14002a99e
test ecx, ecx
jne 0x14002ab2d
mov rax, qword [rbx]
cmp byte [rax + 0xb], cl
jne 0x14002ab16
mov r9d, 0x63e
lea rax, str.legacy_renegotiation_not_allowed
jmp 0x14002a99e
test ecx, ecx
jne 0x14002ab2d
cmp esi, r12d
jne 0x14002ab2d
mov r9d, 0x645
lea rax, str.renegotiation_info_extension_present__legacy_
jmp 0x14002a99e
mov rax, qword [rbx]
mov rdx, qword [rax + 0x178]
test rdx, rdx
je 0x14002ab59
mov rcx, rbx
call rdx
mov edi, eax
test eax, eax
je 0x14002ab59
lea rax, str.f_cert_cb
mov r9d, 0x656
jmp 0x140029af6
mov rax, qword [rbx + 0x70]
xor edx, edx
mov r15d, edx
mov qword [rsp + 0x48], rdx
mov qword [rax + 0xa40], rdx
mov rax, qword [rbx + 0x70]
mov qword [rax + 0xa48], rdx
mov rax, qword [rbx]
mov r13, qword [rax + 0x18]
cmp byte [rax + 0x13], r12b
jne 0x14002ac16
mov rax, qword [rsp + 0x40]
mov esi, edx
mov rcx, qword [rsp + 0x50]
nop word [rax + rax]
mov rbp, rdx
mov edx, dword [r13]
test edx, edx
je 0x14002abfc
nop dword [rax + rax]
movzx ecx, byte [rax + 1]
movzx eax, byte [rax]
shl eax, 8
or ecx, eax
cmp ecx, edx
jne 0x14002abe6
lea r8, [rsp + 0x48]
mov rcx, rbx
mov r15d, r12d
call fcn.140029710
test eax, eax
jne 0x14002ae19
mov rdi, qword [rsp + 0x48]
test rdi, rdi
jne 0x14002acb2
mov edx, dword [r13 + rbp*4 + 4]
inc rbp
mov rax, qword [rsp + 0x40]
test edx, edx
jne 0x14002abb0
mov rcx, qword [rsp + 0x50]
add rax, 2
add rsi, 2
mov qword [rsp + 0x40], rax
cmp rsi, rcx
jae 0x14002ad9b
xor edx, edx
jmp 0x14002aba0
mov rbp, rdx
cmp dword [r13], edx
je 0x14002adb2
mov r12, r13
nop word [rax + rax]
mov rcx, qword [rsp + 0x40]
mov rsi, rdx
mov r14, rcx
nop dword [rax + rax]
movzx eax, byte [r14]
movzx ecx, byte [rsi + rcx + 1]
mov edx, dword [r12]
shl eax, 8
or ecx, eax
cmp ecx, edx
jne 0x14002ac7b
lea r8, [rsp + 0x48]
mov rcx, rbx
mov r15d, 1
call fcn.140029710
test eax, eax
jne 0x14002ae19
mov rdi, qword [rsp + 0x48]
test rdi, rdi
jne 0x14002aca5
mov rcx, qword [rsp + 0x40]
add r14, 2
add rsi, 2
cmp rsi, qword [rsp + 0x50]
jb 0x14002ac40
add r12, 4
inc rbp
cmp dword [r12], 0
je 0x14002ad8e
xor edx, edx
jmp 0x14002ac30
lea r14, str.E:mbedtls_3.2.1mbedtls_3.2.1library_ssl_tls12_server.c
mov r12d, 1
mov rax, qword [rdi + 8]
mov r9d, 0x69c
mov qword [rsp + 0x28], rax
mov r8, r14
lea rax, str.selected_ciphersuite:__s
mov edx, 2
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov eax, dword [r13 + rbp*4]
mov rcx, qword [rbx + 0x68]
mov dword [rcx + 0x10], eax
mov rax, qword [rbx + 0x70]
mov qword [rax + 0x18], rdi
mov rax, qword [rbx]
inc dword [rbx + 8]
cmp byte [rax + 9], 1
jne 0x14002ad05
mov rcx, rbx
call fcn.140019800
movzx ecx, byte [rdi + 0x12]
sub ecx, 2
je 0x14002ad2f
sub ecx, 1
je 0x14002ad2f
cmp ecx, 1
je 0x14002ad29
mov r10d, 0x6b6
lea r11, str.no_hash_algorithm_for_signature_algorithm__u___should_not_happen
xor edx, edx
jmp 0x14002ad49
mov r12d, 3
mov edx, r12d
lea r11, str.client_hello_v3__signature_algorithm_ext:__u
mov rcx, rbx
mov r10d, 0x6b1
call fcn.140016600
mov edx, eax
mov dword [rsp + 0x28], edx
mov r9d, r10d
mov edx, 3
mov qword [rsp + 0x20], r11
mov r8, r14
mov rcx, rbx
call fcn.140024d00
lea rax, str.__parse_client_hello
mov r9d, 0x6ba
mov r8, r14
mov qword [rsp + 0x20], rax
mov edx, 2
mov rcx, rbx
call fcn.140024d00
xor eax, eax
jmp 0x14002ae19
lea r14, str.E:mbedtls_3.2.1mbedtls_3.2.1library_ssl_tls12_server.c
mov r12d, 1
test r15d, r15d
je 0x14002adb2
lea rax, str.got_ciphersuites_in_common__but_none_of_them_usable
mov r9d, 0x68e
jmp 0x14002a99e
lea rax, str.got_no_ciphersuites_in_common
mov r9d, 0x695
jmp 0x14002a99e
mov r9d, 0x51f
mov r8, r14
mov rcx, rbx
jmp 0x14002a071
mov r9d, 0x50b
mov r8, r14
mov rcx, rbx
jmp 0x14002a071
mov r9d, 0x4b7
mov r8, r14
mov rcx, rbx
jmp 0x14002a071
mov r9d, 0x3c3
mov rcx, rbx
lea rax, str.bad_client_hello_message
mov edx, r12d
mov qword [rsp + 0x20], rax
call fcn.140024d00
mov eax, 0xffff8900
mov rdi, qword [rsp + 0x68]
add rsp, 0x70
pop r15
pop r14
pop r13
pop r12
pop rsi
pop rbp
pop rbx
ret