Function at 0x18016cd10
Capabilities:
Encode data using xor

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xd8]
sub rsp, 0x1d8
mov qword [rsp + 0x68], 0xfffffffffffffffe
mov rax, qword [0x18036d060]
xor rax, rsp
mov qword [rbp + 0xc0], rax
mov edi, r9d
mov dword [rbp - 0x28], r9d
mov r12, r8
mov qword [rsp + 0x50], r8
mov r15, rdx
mov qword [rsp + 0x60], rdx
mov r13, rcx
mov qword [rbp - 0x18], rcx
mov r14, qword [rbp + 0x140]
mov qword [rsp + 0x58], r14
mov rbx, qword [rbp + 0x148]
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x70], xmm0
mov qword [rbp - 0x60], rax
movzx r9d, byte [rbx + 0x162]
lea r8, str.readTlsRecord
mov rdx, rbx
lea rcx, [rbp - 0x70]
call fcn.180105ba0
nop
xor esi, esi
mov qword [r15 + 0x6f0], rsi
mov dword [r15 + 0x6f8], esi
mov byte [r15 + 0x6fc], sil
lea rcx, [r15 + 0x730]
call fcn.1800bc850
lea rcx, [r15 + 0x700]
call fcn.1800bc850
lea rcx, [r15 + 0x760]
call fcn.1800bc850
mov dword [rbp - 0x7c], esi
lea rsi, [r13 + 0xd0]
mov rcx, rsi
call fcn.1800bc850
lea rax, [rbp - 0x7c]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov r9d, edi
mov r8, rsi
mov edx, 5
mov rcx, r12
call fcn.1801c4c10
movzx edi, al
test al, al
je 0x18016e0f2
mov rcx, rsi
call fcn.1800be430
cmp eax, 5
jne 0x18016e0f2
mov rcx, rsi
call fcn.1800bdfb0
mov rdi, rax
movzx eax, byte [rax]
mov r10d, 0x20
test al, al
jns 0x18016d412
cmp byte [rdi + 2], 1
jne 0x18016d412
mov rax, qword [rbx]
lea rdx, str.Received_SSL_2.0_ClientHello.
mov rcx, rbx
call qword [rax + 0x30]
cmp byte [rdi + 2], 1
jne 0x18016cea1
mov rax, qword [rbx]
lea rdx, str.Cannot_accept_SSL_2.0_connections.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r12
mov r8d, 0x47
mov rdx, r14
mov rcx, r15
call fcn.180170140
mov dword [r14 + 0x44], 0x7d
jmp 0x18016e16b
movzx ecx, byte [rdi]
mov r14d, ecx
and r14d, 0x7f
shl r14d, 8
movzx eax, byte [rdi + 1]
or r14d, eax
cmp byte [rbx + 0x162], 0
je 0x18016ced4
mov r8d, r14d
lea rdx, str.recLen
mov rcx, rbx
call fcn.180106220
movzx ecx, byte [rdi]
mov r12d, 2
test cl, cl
js 0x18016cf27
movzx eax, byte [rdi + 3]
mov byte [rsp + 0x7c], al
movzx eax, byte [rdi + 4]
mov byte [rsp + 0x7d], al
movzx eax, byte [rdi + 2]
mov dword [rbp - 0x20], eax
lea edi, [r14 - 2]
cmp byte [rbx + 0x162], 0
je 0x18016cf74
mov rax, qword [rbx]
lea rdx, str.3_byte_record_header...
mov rcx, rbx
call qword [rax + 0x30]
mov r8d, dword [rbp - 0x20]
lea rdx, str.paddingLen
mov rcx, rbx
call fcn.180106220
jmp 0x18016cf62
movzx eax, byte [rdi + 2]
mov byte [rsp + 0x7c], al
movzx eax, byte [rdi + 3]
mov byte [rsp + 0x7d], al
movzx eax, byte [rdi + 4]
mov byte [rsp + 0x7e], al
lea edi, [r14 - 3]
mov r12d, 3
cmp byte [rbx + 0x162], 0
je 0x18016cf74
mov rax, qword [rbx]
lea rdx, str.2_byte_record_header...
mov rcx, rbx
call qword [rax + 0x30]
mov r8d, edi
lea rdx, str.nToRead
mov rcx, rbx
call fcn.180106220
mov rcx, rsi
call fcn.1800bc850
mov r8d, r12d
lea rdx, [rsp + 0x7c]
mov rcx, rsi
call fcn.1800baf90
lea rax, [rbp - 0x7c]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov r12, qword [rsp + 0x58]
mov qword [rsp + 0x20], r12
mov r9d, dword [rbp - 0x28]
mov r8, rsi
mov edx, edi
mov rdi, qword [rsp + 0x50]
mov rcx, rdi
call fcn.1801c4c10
mov byte [rsp + 0x70], al
test al, al
je 0x18016d3c4
mov rcx, rsi
call fcn.1800be430
cmp eax, r14d
jne 0x18016d3c4
mov rcx, rsi
call fcn.1800bdfb0
mov r14, rax
mov byte [r15 + 0x790], 1
lea rcx, [r15 + 0x440]
mov rdx, rsi
call fcn.1800baf20
cmp byte [rbx + 0x162], 0
je 0x18016d02e
mov rcx, rsi
call fcn.1800be430
mov edi, eax
mov rcx, rsi
call fcn.1800bdfb0
mov r8, rax
mov r9d, edi
lea rdx, str.fullRecord
mov rcx, rbx
call fcn.180105f90
mov rdi, qword [rsp + 0x50]
mov dword [r15 + 0x6f0], 0x16
movzx eax, byte [r14 + 1]
mov dword [r15 + 0x6f4], eax
movzx eax, byte [r14 + 2]
mov dword [r15 + 0x6f8], eax
call fcn.180164050
mov rsi, rax
test rax, rax
je 0x18016e16b
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp], xmm0
mov qword [rbp + 0x10], rax
lea rcx, [rbp]
call fcn.1800ba180
nop
mov qword [rbp + 0x10], rsi
mov eax, dword [r15 + 0x6f4]
mov dword [rsi + 0x48], eax
mov eax, dword [r15 + 0x6f8]
mov dword [rsi + 0x4c], eax
movzx r8d, byte [r14 + 3]
shl r8d, 8
movzx eax, byte [r14 + 4]
or r8d, eax
mov dword [rbp - 0x20], r8d
movzx r9d, byte [r14 + 5]
shl r9d, 8
movzx eax, byte [r14 + 6]
or r9d, eax
mov dword [rsp + 0x78], r9d
movzx r10d, byte [r14 + 7]
shl r10d, 8
movzx eax, byte [r14 + 8]
or r10d, eax
mov dword [rbp - 0x28], r10d
cmp byte [rbx + 0x162], 0
je 0x18016d11d
lea rdx, str.cipherListLen
mov rcx, rbx
call fcn.180106220
mov r8d, dword [rsp + 0x78]
lea rdx, str.sessionIdLen
mov rcx, rbx
call fcn.180106220
mov r8d, dword [rbp - 0x28]
lea rdx, str.challengeLen
mov rcx, rbx
call fcn.180106220
mov r8d, dword [rbp - 0x20]
mov r9d, dword [rsp + 0x78]
mov r10d, dword [rbp - 0x28]
lea eax, [r8 - 3]
cmp eax, 0xbd
ja 0x18016d38c
mov eax, 0xaaaaaaab
mul r8d
shr edx, 1
lea ecx, [rdx + rdx*2]
cmp r8d, ecx
jne 0x18016d38c
cmp r9d, 0x20
jbe 0x18016d180
mov rax, qword [rbx]
lea rdx, str.Invalid_session_ID_length
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8d, 0xa
mov rdx, r12
mov rcx, r15
call fcn.180170140
nop
lea rcx, [rbp]
call fcn.1800ba230
jmp 0x18016e16b
lea eax, [r10 - 8]
cmp eax, 0x18
ja 0x18016d354
add r14, 9
mov dword [rbp - 0x74], 0
test edx, edx
je 0x18016d294
mov r13d, dword [rbp - 0x74]
mov r15d, edx
nop word [rax + rax]
lea edx, [r13*2]
add edx, r13d
lea eax, [rdx + 2]
movzx edi, byte [rax + r14]
lea eax, [rdx + 1]
movzx r12d, byte [rax + r14]
movzx ecx, byte [rdx + r14]
shl ecx, 8
or r12d, ecx
cmp byte [rbx + 0x162], 0
je 0x18016d203
mov r8d, edi
lea rdx, str.cipherKind
mov rcx, rbx
call fcn.180106220
mov r8d, r12d
lea rdx, str.key_len
mov rcx, rbx
call fcn.180106220
mov word [rsp + 0x74], 0x400
mov word [rsp + 0x70], 0x500
mov word [rbp - 0x80], 0xa00
mov word [rbp - 0x78], 0x2f00
mov word [rbp - 0x74], 0x3500
test r12d, r12d
jne 0x18016d276
cmp dil, 4
jne 0x18016d235
lea rdx, [rsp + 0x74]
jmp 0x18016d264
cmp dil, 5
jne 0x18016d242
lea rdx, [rsp + 0x70]
jmp 0x18016d264
cmp dil, 0xa
jne 0x18016d24e
lea rdx, [rbp - 0x80]
jmp 0x18016d264
cmp dil, 0x2f
jne 0x18016d25a
lea rdx, [rbp - 0x78]
jmp 0x18016d264
cmp dil, 0x35
jne 0x18016d276
lea rdx, [rbp - 0x74]
mov r8d, 2
lea rcx, [rsi + 0xb0]
call fcn.1800baf90
inc r13d
cmp r13d, r15d
jb 0x18016d1b0
mov r15, qword [rsp + 0x60]
mov r13, qword [rbp - 0x18]
mov r8d, dword [rbp - 0x20]
mov r9d, dword [rsp + 0x78]
mov eax, r8d
add r14, rax
lea rcx, [rsi + 0x80]
mov r8d, r9d
mov rdx, r14
call fcn.1800baf90
mov edx, dword [rsp + 0x78]
add rdx, r14
lea rcx, [rsi + 0x50]
mov r8d, dword [rbp - 0x28]
call fcn.1800baf90
lea rcx, [rsi + 0xe0]
xor edx, edx
call fcn.1800bb260
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
movups xmmword [rbp - 0x48], xmm0
movups xmmword [rbp - 0x38], xmm0
lea rcx, [rbp - 0x58]
call fcn.1800ba7a0
nop
lea r12, [r15 + 0x700]
lea rcx, [r15 + 0x178]
mov qword [rsp + 0x48], rbx
mov qword [rsp + 0x40], r12
movzx eax, byte [r15 + 0xb1]
mov byte [rsp + 0x38], al
movzx eax, byte [r15 + 0xe3]
mov byte [rsp + 0x30], al
mov qword [rsp + 0x28], rcx
lea rax, [rbp - 0x58]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov rdx, r15
mov rcx, rsi
call fcn.18015d270
nop
lea rcx, [rbp - 0x58]
call fcn.1800ba970
nop
lea rcx, [rbp]
call fcn.1800ba230
mov r14, qword [rsp + 0x58]
jmp 0x18016d5c6
mov rax, qword [rbx]
lea rdx, str.Invalid_challenge_length
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8d, 0xa
mov rdx, r12
mov rcx, r15
call fcn.180170140
nop
lea rcx, [rbp]
call fcn.1800ba230
jmp 0x18016e16b
mov rax, qword [rbx]
lea rdx, str.Invalid_cipher_list_length
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, rdi
mov r8d, 0xa
mov rdx, r12
mov rcx, r15
call fcn.180170140
nop
lea rcx, [rbp]
call fcn.1800ba230
jmp 0x18016e16b
mov rax, qword [rbx]
lea rdx, str.Failed_to_read_TLS_record__1_
mov rcx, rbx
call qword [rax + 0x28]
movzx r8d, byte [rsp + 0x70]
lea rdx, [0x1802654a8]
mov rcx, rbx
call fcn.180106220
mov r8d, r14d
lea rdx, str.recLen
mov rcx, rbx
call fcn.180106220
mov rcx, rsi
call fcn.1800be430
mov r8d, eax
lea rdx, str.dbSize
jmp 0x18016e162
mov edx, eax
mov dword [r15 + 0x6f0], eax
movzx r9d, byte [rdi + 1]
mov dword [r15 + 0x6f4], r9d
movzx r8d, byte [rdi + 2]
lea r11, [r15 + 0x6f8]
mov dword [r11], r8d
movzx ecx, byte [rdi + 3]
and ecx, 0x7f
movzx eax, byte [rdi + 4]
shl ecx, 8
or ecx, eax
mov dword [rsp + 0x78], ecx
cmp byte [rbx + 0x162], 0
je 0x18016d568
cmp r9b, 3
jne 0x18016d4ad
test r8b, r8b
jne 0x18016d46b
lea rdi, str.SSL_3.0
jmp 0x18016d4dd
cmp r8b, 1
jne 0x18016d47a
lea rdi, str.TLS_1.0
jmp 0x18016d4dd
cmp r8b, 2
jne 0x18016d489
lea rdi, str.TLS_1.1
jmp 0x18016d4dd
cmp r8b, 3
jne 0x18016d498
lea rdi, str.TLS_1.2
jmp 0x18016d4dd
cmp r9b, 3
jne 0x18016d4ad
cmp r8b, 4
jne 0x18016d4ad
lea rdi, str.TLS_1.3
jmp 0x18016d4dd
mov qword [rsp + 0x20], r11
lea r9, [r15 + 0x6f4]
lea r8, str.v_d._d
mov edx, r10d
lea rcx, [rbp]
call fcn.180103970
lea rdi, [rbp]
mov edx, dword [r15 + 0x6f0]
mov r10d, 0x20
cmp edx, 0x14
jne 0x18016d4eb
lea rax, str.ChangeCipherSpec
jmp 0x18016d534
cmp edx, 0x15
jne 0x18016d4f9
lea rax, str.Alert
jmp 0x18016d534
cmp edx, 0x16
jne 0x18016d507
lea rax, str.Handshake
jmp 0x18016d534
cmp edx, 0x17
je 0x18016d568
lea r9, [r15 + 0x6f0]
lea r8, str.ct_d
mov edx, r10d
lea rcx, [rbp - 0x58]
call fcn.180103890
lea rax, [rbp - 0x58]
cmp dword [r15 + 0x6f0], 0x17
je 0x18016d568
lea rcx, [rsp + 0x78]
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rax
mov r9, rdi
lea r8, str._s___s__sz_d
mov edx, pe_nt_image_headers64
lea rcx, [rbp + 0x40]
call fcn.180103a60
mov rax, qword [rbx]
lea rdx, [rbp + 0x40]
mov rcx, rbx
call qword [rax + 0x30]
lea rcx, [r15 + 0x700]
call fcn.1800bc850
lea rax, [rbp - 0x7c]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov r9d, dword [rbp - 0x28]
lea r8, [r15 + 0x700]
mov edx, dword [rsp + 0x78]
mov rcx, r12
call fcn.1801c4c10
movzx edi, al
test al, al
je 0x18016e091
lea r12, [r15 + 0x700]
lea rcx, [r15 + 0x700]
call fcn.1800be430
cmp eax, dword [rsp + 0x78]
jne 0x18016e091
cmp dword [r15 + 0x6f0], 0x14
jne 0x18016d5e2
cmp dword [r15 + 0x5c], 3
jne 0x18016d5e2
cmp dword [r15 + 0x60], 4
je 0x18016e081
cmp byte [r13 + 0x104], 0
je 0x18016ddf8
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
movups xmmword [rbp - 0x48], xmm0
movups xmmword [rbp - 0x38], xmm0
lea rcx, [rbp - 0x58]
call fcn.1800ba7a0
nop
cmp dword [r15 + 0x5c], 3
jne 0x18016d61c
cmp dword [r15 + 0x60], 4
jne 0x18016d61c
mov dil, 1
jmp 0x18016d61f
xor dil, dil
mov byte [rsp + 0x70], dil
mov eax, dword [r13 + 0x120]
cmp eax, 6
jne 0x18016d8df
mov rcx, r12
call fcn.1800be430
mov dword [rbp - 0x28], eax
lea rcx, [r13 + 0x770]
call fcn.1800bc850
movzx eax, dil
xor eax, 1
lea eax, [rax*8 + 0x10]
cmp dword [rbp - 0x28], eax
jae 0x18016d6ab
mov rax, qword [rbx]
lea rdx, str.GCM_fragment_not_large_enough.
mov rcx, rbx
call qword [rax + 0x28]
mov r8d, dword [rbp - 0x28]
lea rdx, str.tlsMsgLen
mov rcx, rbx
call fcn.180106220
mov rdx, r14
mov r8d, setsockopt
mov r9, qword [rsp + 0x50]
mov qword [rsp + 0x20], rbx
mov rcx, r15
call fcn.180170140
nop
lea rcx, [rbp - 0x58]
call fcn.1800ba970
jmp 0x18016e16b
mov rcx, r12
call fcn.1800be430
test dil, dil
je 0x18016d6bc
mov edi, eax
jmp 0x18016d6d8
lea edi, [rax - 0x18]
lea rdx, [r13 + 0x178]
mov r8d, 8
lea rcx, [r13 + 0x770]
call fcn.1800baf90
movzx eax, byte [r15 + 0x6f0]
mov byte [rbp - 0x20], al
movzx eax, byte [r15 + 0x6f4]
mov byte [rbp - 0x1f], al
movzx eax, byte [r15 + 0x6f8]
mov byte [rbp - 0x1e], al
mov eax, edi
shr eax, 8
mov byte [rbp - 0x1d], al
mov byte [rbp - 0x1c], dil
mov r8d, 5
lea rdx, [rbp - 0x20]
lea rcx, [r13 + 0x770]
call fcn.1800baf90
cmp byte [rbx + 0x163], 0
je 0x18016d73a
lea r8, [r13 + 0x770]
lea rdx, str.aesGcmAad
mov rcx, rbx
call fcn.180106080
cmp dword [r15 + 0x5c], 3
jne 0x18016d7eb
cmp dword [r15 + 0x60], 4
jne 0x18016d7eb
mov dword [rbp - 0x18], 0
mov rax, qword [r13 + 0x178]
mov qword [rbp - 0x14], rax
lea rcx, [r13 + 0x148]
call fcn.1800be430
cmp eax, 0xc
je 0x18016d792
mov rax, qword [rbx]
lea rdx, str.m_fixedIv_for_TLS_1.3_GCM_should_be_12_bytes
mov rcx, rbx
call qword [rax + 0x28]
nop
lea rcx, [rbp - 0x58]
call fcn.1800ba970
jmp 0x18016e16b
lea rcx, [r13 + 0x148]
call fcn.1800bdfb0
mov r8, rax
xor edx, edx
lea rax, [rbp - 0x18]
sub r8, rax
nop word [rax + rax]
lea rcx, [rbp - 0x18]
add rcx, rdx
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rdx
cmp rdx, 0xc
jl 0x18016d7b0
cmp byte [rbx + 0x163], 0
je 0x18016d831
mov r9d, reloc.WS2_32.dll_inet_ntoa
lea r8, [rbp - 0x18]
lea rdx, str.aesGcmNonce
mov rcx, rbx
call fcn.180105f90
jmp 0x18016d831
lea rcx, [r13 + 0x148]
call fcn.1800be430
cmp eax, 4
je 0x18016d811
mov rax, qword [rbx]
lea rdx, str.GCM_fixed_IV_not_equal_to_4.
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x18016d681
lea rcx, [r13 + 0x148]
call fcn.1800bdfb0
mov ecx, dword [rax]
mov dword [rbp - 0x18], ecx
mov rcx, r12
call fcn.1800bdfb0
mov rcx, qword [rax]
mov qword [rbp - 0x14], rcx
lea rsi, [r13 + 0x6f0]
mov r8d, reloc.WS2_32.dll_inet_ntoa
lea rdx, [rbp - 0x18]
mov rcx, rsi
call fcn.18018c8e0
mov rcx, r12
call fcn.1800bdfb0
mov rdi, rax
mov eax, dword [rbp - 0x28]
add rdi, rax
lea rcx, [r13 + 0x7a0]
call fcn.1800bc850
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rdi - 0x10]
lea rcx, [r13 + 0x7a0]
call fcn.1800baf90
cmp byte [rbx + 0x163], 0
je 0x18016d89c
lea r8, [r13 + 0x7a0]
lea rdx, str.expected_aesGcmAuthTag
mov rcx, rbx
call fcn.180106080
mov edx, reloc.WS2_32.dll_recv
mov rcx, r12
call fcn.1800bf4f0
lea rdx, [r13 + 0x180]
mov r9, rbx
mov r8, rsi
mov rcx, qword [r13 + 0x7e0]
call fcn.1801c6a10
test al, al
jne 0x18016daab
mov rax, qword [rbx]
lea rdx, str.GCM_decrypt_setup_failed.
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x18016d681
cmp eax, 7
jne 0x18016daab
mov rcx, r12
call fcn.1800be430
mov dword [rbp - 0x20], eax
cmp eax, 0x10
jae 0x18016d90d
mov rax, qword [rbx]
lea rdx, str.AEAD_fragment_not_large_enough.
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x18016d681
lea rcx, [r13 + 0x770]
call fcn.1800bc850
mov rcx, r12
call fcn.1800be430
test dil, dil
je 0x18016d92a
mov edi, eax
jmp 0x18016d946
lea edi, [rax - 0x10]
lea rdx, [r13 + 0x178]
mov r8d, 8
lea rcx, [r13 + 0x770]
call fcn.1800baf90
movzx eax, byte [r15 + 0x6f0]
mov byte [rbp - 0x28], al
movzx eax, byte [r15 + 0x6f4]
mov byte [rbp - 0x27], al
movzx eax, byte [r15 + 0x6f8]
mov byte [rbp - 0x26], al
mov eax, edi
shr eax, 8
mov byte [rbp - 0x25], al
mov byte [rbp - 0x24], dil
mov r8d, 5
lea rdx, [rbp - 0x28]
lea rcx, [r13 + 0x770]
call fcn.1800baf90
mov dword [rbp - 0x18], 0
mov rax, qword [r13 + 0x178]
mov qword [rbp - 0x14], rax
lea rcx, [r13 + 0x148]
call fcn.1800be430
cmp eax, 0xc
je 0x18016d9c1
mov rax, qword [rbx]
lea rdx, str.m_fixedIv_should_be_12_bytes
mov rcx, rbx
call qword [rax + 0x28]
jmp 0x18016d69d
lea rcx, [r13 + 0x148]
call fcn.1800bdfb0
mov r8, rax
xor edx, edx
lea rax, [rbp - 0x18]
sub r8, rax
nop dword [rax]
lea rcx, [rbp - 0x18]
add rcx, rdx
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rdx
cmp rdx, 0xc
jl 0x18016d9e0
mov r8d, reloc.WS2_32.dll_inet_ntoa
lea rdx, [rbp - 0x18]
lea rcx, [r13 + 0x6f0]
call fcn.18018c8e0
mov rcx, r12
call fcn.1800bdfb0
mov rdi, rax
mov eax, dword [rbp - 0x20]
add rdi, rax
lea rcx, [r13 + 0x7a0]
call fcn.1800bc850
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rdi - 0x10]
lea rcx, [r13 + 0x7a0]
call fcn.1800baf90
mov edx, reloc.WS2_32.dll_recv
mov rcx, r12
call fcn.1800bf4f0
mov rcx, qword [r13 + 0x7e0]
mov rax, qword [rcx]
mov qword [rsp + 0x20], rbx
lea r9, [r13 + 0x180]
lea r8, [r13 + 0x6f0]
xor edx, edx
call qword [rax + 0x18]
mov rcx, qword [r13 + 0x7e0]
mov rax, qword [rcx]
mov r9, rbx
lea r8, [r13 + 0x6f0]
lea rdx, [r13 + 0x180]
call qword [rax + 0x58]
test al, al
jne 0x18016daab
lea rdx, str.AEAD_decrypt_setup_failed.
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov rdx, qword [rsp + 0x58]
jmp 0x18016d684
movzx eax, byte [rbx + 0x161]
mov byte [rsp + 0x74], al
movzx eax, byte [rbx + 0x162]
mov byte [rbx + 0x161], al
lea rsi, [r13 + 0x6f0]
lea r14, [r13 + 0x180]
lea rcx, [r15 + 0x700]
cmp dword [r13 + 0x120], 6
jne 0x18016dc07
call fcn.1800be430
lea rcx, [r15 + 0x700]
cmp byte [rsp + 0x70], 0
je 0x18016dbaa
mov edi, eax
call fcn.1800bdfb0
mov r9, rax
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x58]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
mov r8, rsi
mov rdx, r14
mov rcx, qword [r13 + 0x7e0]
call fcn.18018aea0
mov byte [rsp + 0x70], al
lea rcx, [rbp - 0x58]
call fcn.1800be430
test eax, eax
je 0x18016db68
nop dword [rax]
lea rcx, [rbp - 0x58]
call fcn.1800be550
test al, al
jne 0x18016db68
mov edx, 1
lea rcx, [rbp - 0x58]
call fcn.1800bf4f0
lea rcx, [rbp - 0x58]
call fcn.1800be430
test eax, eax
jne 0x18016db40
lea rcx, [rbp - 0x58]
call fcn.1800be550
movzx edi, al
sub al, 0x14
cmp al, 3
jbe 0x18016dc9a
lea rdx, str.Invalid_TLS_1.3_actual_content_type..
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov r8d, edi
lea rdx, str.actualContentType
mov rcx, rbx
call fcn.180106220
mov rdx, qword [rsp + 0x58]
jmp 0x18016d684
lea edi, [rax - 8]
call fcn.1800bdfb0
lea r9, [rax + 8]
mov qword [rsp + 0x30], rbx
lea rcx, [rbp - 0x58]
mov qword [rsp + 0x28], rcx
mov dword [rsp + 0x20], edi
mov r8, rsi
mov rdx, r14
mov rcx, qword [r13 + 0x7e0]
call fcn.18018aea0
movzx ecx, byte [rsp + 0x74]
mov byte [rbx + 0x161], cl
test al, al
jne 0x18016dcdb
lea rdx, str.Failed_to_decrypt_SSL_TLS_record.
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov rdx, qword [rsp + 0x58]
jmp 0x18016d684
call fcn.1800be430
mov edi, eax
lea rcx, [r15 + 0x700]
call fcn.1800bdfb0
mov r9, rax
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x58]
mov qword [rsp + 0x28], rax
cmp byte [rsp + 0x70], 0
je 0x18016dbc4
mov dword [rsp + 0x20], edi
mov r8, rsi
mov rdx, r14
mov rcx, qword [r13 + 0x7e0]
call fcn.18018aea0
mov byte [rsp + 0x70], al
lea rcx, [rbp - 0x58]
call fcn.1800be430
test eax, eax
je 0x18016dc88
nop dword [rax]
lea rcx, [rbp - 0x58]
call fcn.1800be550
test al, al
jne 0x18016dc88
mov edx, 1
lea rcx, [rbp - 0x58]
call fcn.1800bf4f0
lea rcx, [rbp - 0x58]
call fcn.1800be430
test eax, eax
jne 0x18016dc60
lea rcx, [rbp - 0x58]
call fcn.1800be550
movzx edi, al
sub al, 0x14
cmp al, 3
ja 0x18016dccf
mov edx, 1
lea rcx, [rbp - 0x58]
call fcn.1800bf4f0
mov dword [r15 + 0x6f0], edi
mov dword [r15 + 0x6f4], 3
mov dword [r15 + 0x6f8], 4
movzx eax, byte [rsp + 0x70]
jmp 0x18016dbda
lea rdx, str.Invalid_TLS_1.3_actual_content_type.
jmp 0x18016db85
mov eax, dword [r13 + 0x120]
cmp eax, 6
jne 0x18016dd98
mov r9, rbx
mov r8, rsi
mov rdx, r14
mov rcx, qword [r13 + 0x7e0]
call fcn.1801c6950
test al, al
jne 0x18016dd1e
lea rdx, str.GCM_decrypt_finalize_failed.
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov rdx, qword [rsp + 0x58]
jmp 0x18016d684
cmp byte [rbx + 0x163], 0
je 0x18016dd37
mov rax, qword [rbx]
lea rdx, str.gcm_decrypt_finalize_success.
mov rcx, rbx
call qword [rax + 0x30]
lea rdx, [rbp - 0x58]
lea rcx, [r15 + 0x700]
call fcn.1800bf560
mov byte [r15 + 0x6fc], 1
mov ecx, dword [r13 + 0x120]
lea eax, [rcx - 6]
cmp eax, 1
jbe 0x18016ddef
cmp ecx, 0x63
je 0x18016ddef
mov rdx, rbx
lea rcx, [r15 + 0x700]
call fcn.1800bfa40
test al, al
jne 0x18016ddd1
lea rdx, str.Invalid_block_cipher_padding_detected.
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov rdx, qword [rsp + 0x58]
jmp 0x18016d684
cmp eax, 7
jne 0x18016dd37
mov rcx, qword [r13 + 0x7e0]
mov rax, qword [rcx]
mov r9, rbx
mov r8, rsi
mov rdx, r14
call qword [rax + 0x60]
test al, al
jne 0x18016dd37
lea rdx, str.AEAD_decrypt_finalize_failed.
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov rdx, qword [rsp + 0x58]
jmp 0x18016d684
lea rcx, [r15 + 0x700]
call fcn.1800be550
movzx edx, al
inc edx
lea rcx, [r15 + 0x700]
call fcn.1800bf4f0
nop
lea rcx, [rbp - 0x58]
call fcn.1800ba970
mov eax, dword [r13 + 0x120]
sub eax, 6
cmp eax, 1
jbe 0x18016e05a
mov eax, dword [r13 + 0x124]
test eax, eax
je 0x18016e05a
cmp eax, 1
jne 0x18016de25
lea r14d, [rax + 0x13]
jmp 0x18016de42
cmp eax, 7
jne 0x18016de30
lea r14d, [rax + 0x19]
jmp 0x18016de42
mov ecx, gethostbyname
mov r14d, reloc.WS2_32.dll_recv
cmp eax, 2
cmove r14d, ecx
mov rcx, r12
call fcn.1800be430
mov edi, eax
cmp eax, r14d
jae 0x18016de83
mov rax, qword [rbx]
lea rdx, str.SSL_TLS_record_shorter_than_MAC_length_
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, qword [rsp + 0x50]
mov r8d, setsockopt
mov rdx, qword [rsp + 0x58]
mov rcx, r15
call fcn.180170140
jmp 0x18016e16b
xorps xmm0, xmm0
movups xmmword [rbp - 0x58], xmm0
movups xmmword [rbp - 0x48], xmm0
movups xmmword [rbp - 0x38], xmm0
lea rcx, [rbp - 0x58]
call fcn.1800ba7a0
nop
sub edi, r14d
mov r9d, r14d
mov r8d, edi
mov rdx, r12
lea rcx, [rbp - 0x58]
call fcn.1800bbf90
mov edx, r14d
mov rcx, r12
call fcn.1800bf4f0
cmp dword [r15 + 0x6f4], 3
jne 0x18016df6c
cmp dword [r15 + 0x6f8], 2
jl 0x18016df6c
cmp dword [r13 + 0x138], 0
jbe 0x18016df6c
mov rcx, r12
call fcn.1800be430
cmp eax, dword [r13 + 0x138]
jb 0x18016df28
mov edi, dword [r13 + 0x138]
mov rcx, r12
call fcn.1800be430
mov esi, eax
sub esi, edi
mov edx, edi
mov rcx, r12
call fcn.1800bdfc0
mov qword [rsp + 0x40], rbx
lea rcx, [rbp]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], esi
jmp 0x18016df90
mov rax, qword [rbx]
lea rdx, str.Message_not_long_enough_for_the_MAC.
mov rcx, rbx
call qword [rax + 0x28]
mov rcx, r12
call fcn.1800be430
mov r8d, eax
lea rdx, str.tlsMsgSize
mov rcx, rbx
call fcn.180106220
mov r8d, dword [r13 + 0x138]
lea rdx, str.cipherSuiteRecordIvLen
mov rcx, rbx
call fcn.180106220
xor esi, esi
jmp 0x18016dfba
mov rcx, r12
call fcn.1800be430
mov edi, eax
mov rcx, r12
call fcn.1800bdfb0
mov qword [rsp + 0x40], rbx
lea rcx, [rbp]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], edi
mov qword [rsp + 0x28], rax
mov eax, dword [r15 + 0x6f8]
mov dword [rsp + 0x20], eax
mov r9d, dword [r15 + 0x6f4]
mov r8d, dword [r15 + 0x6f0]
xor edx, edx
mov rcx, r13
call fcn.18015fcd0
mov esi, eax
lea rcx, [rbp - 0x58]
call fcn.1800bdfb0
mov rcx, rax
mov r8d, r14d
lea rdx, [rbp]
call fcn.1802117a0
test eax, eax
je 0x18016e051
mov rax, qword [rbx]
lea rdx, str.Invalid_MAC
mov rcx, rbx
call qword [rax + 0x28]
mov r8d, r14d
lea rdx, str.macLen
mov rcx, rbx
call fcn.180106220
mov r8d, esi
lea rdx, str.macLen2
mov rcx, rbx
call fcn.180106220
lea rcx, [rbp - 0x58]
call fcn.1800be430
mov r8d, eax
lea rdx, str.dbMacSize
mov rcx, rbx
call fcn.180106220
mov qword [rsp + 0x20], rbx
mov r9, qword [rsp + 0x50]
mov r8d, setsockopt
mov rdx, qword [rsp + 0x58]
mov rcx, r15
call fcn.180170140
nop
lea rcx, [rbp - 0x58]
call fcn.1800ba970
jmp 0x18016e16b
lea rcx, [rbp - 0x58]
call fcn.1800ba970
lea rcx, [r13 + 0x17f]
mov rdx, 0xfffffffffffffe88
sub rdx, r13
nop dword [rax + rax]
add byte [rcx], 1
jne 0x18016e081
dec rcx
lea rax, [rdx + rcx]
test rax, rax
jns 0x18016e070
lea rcx, [rbp - 0x70]
call fcn.180105c80
mov al, 1
jmp 0x18016e176
mov rax, qword [rbx]
lea rdx, str.Failed_to_read_TLS_record__2_
mov rcx, rbx
call qword [rax + 0x28]
lea rcx, [r15 + 0x700]
call fcn.1800be430
mov r8d, eax
lea rdx, str.tlsRec_msg
mov rcx, rbx
call fcn.180106220
mov r8d, dword [rsp + 0x78]
lea rdx, str.msgLen
mov rcx, rbx
call fcn.180106220
mov r8d, dword [rbp - 0x7c]
lea rdx, str.nReadNBytes
mov rcx, rbx
call fcn.180106220
mov r8d, edi
lea rdx, str.status
jmp 0x18016e162
mov rcx, r14
call fcn.180175b10
test al, al
je 0x18016e108
cmp byte [r14 + 0xe8], 0
je 0x18016e16b
mov rax, qword [rbx]
lea rdx, str.Failed_to_read_beginning_of_SSL_TLS_record.
mov rcx, rbx
call qword [rax + 0x28]
mov r8d, edi
lea rdx, [0x1802654a8]
mov rcx, rbx
call fcn.180106220
mov rcx, rsi
call fcn.1800be430
mov r8d, eax
lea rdx, str.dbSize
mov rcx, rbx
call fcn.180106220
mov r8d, dword [rbp - 0x7c]
lea rdx, str.nReadNBytes
mov rcx, rbx
call fcn.180106220
mov r8d, dword [rbp - 0x28]
lea rdx, str.idleTimeoutMs
mov rcx, rbx
call fcn.180106220
nop
lea rcx, [rbp - 0x70]
call fcn.180105c80
xor al, al
mov rcx, qword [rbp + 0xc0]
xor rcx, rsp
call fcn.18007b140
add rsp, 0x1d8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret