Function at 0x140109480
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 - 0xe8]
sub rsp, 0x1e8
mov qword [rsp + 0x78], 0xfffffffffffffffe
mov rax, qword [0x14026be10]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov edi, r9d
mov dword [rbp - 0x18], r9d
mov r13, r8
mov qword [rsp + 0x68], r8
mov qword [rsp + 0x58], rdx
mov r15, rcx
mov qword [rsp + 0x70], rcx
mov r14, qword [rbp + 0x150]
mov qword [rsp + 0x50], r14
mov rbx, qword [rbp + 0x158]
mov rsi, qword [rbp + 0x160]
mov qword [rsp + 0x60], rsi
xor eax, eax
mov qword [rbp - 0x60], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
movzx r9d, byte [rbx + 0xaa]
lea r8, str.readTlsRecord
mov rdx, rbx
lea rcx, [rbp - 0x60]
call fcn.1400712c0
nop
xor ecx, ecx
mov qword [rsi + 8], rcx
mov dword [rsi + 0x10], ecx
mov byte [rsi + 0x14], cl
lea rcx, [rsi + 0x48]
call fcn.140035e00
lea r12, [rsi + 0x18]
mov qword [rbp - 8], r12
mov rcx, r12
call fcn.140035e00
lea rcx, [rsi + 0x78]
call fcn.140035e00
mov dword [rbp - 0x68], 0
lea rsi, [r15 + 0xd0]
mov rcx, rsi
call fcn.140035e00
lea rax, [rbp - 0x68]
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, r13
call fcn.140122af0
movzx edi, al
test al, al
je 0x14010a5bf
mov rcx, rsi
call fcn.1400372d0
cmp eax, 5
jne 0x14010a5bf
mov rcx, rsi
call fcn.140036f60
mov rdi, rax
movzx eax, byte [rax]
mov r10d, 0x20
test al, al
jns 0x140109acf
cmp byte [rdi + 2], 1
jne 0x140109acf
cmp byte [rbx + 0xaa], 0
je 0x1401095e0
mov rax, qword [rbx]
lea rdx, str.Received_SSL_2.0_ClientHello.
mov rcx, rbx
call qword [rax + 0x30]
movzx r14d, byte [rdi]
and r14d, 0x7f
shl r14d, 8
movzx eax, byte [rdi + 1]
or r14d, eax
cmp byte [rbx + 0xaa], 0
je 0x14010960e
mov r8d, r14d
lea rdx, str.recLen
mov rcx, rbx
call fcn.1400717d0
mov dword [rbp - 0x80], 2
cmp byte [rdi], 0
jl 0x140109661
movzx eax, byte [rdi + 3]
mov byte [rbp - 0x78], al
movzx eax, byte [rdi + 4]
mov byte [rbp - 0x77], al
movzx eax, byte [rdi + 2]
mov dword [rbp - 0x74], eax
lea edi, [r14 - 2]
cmp byte [rbx + 0xaa], 0
je 0x1401096ac
mov rax, qword [rbx]
lea rdx, str.3_byte_record_header...
mov rcx, rbx
call qword [rax + 0x30]
mov r8d, dword [rbp - 0x74]
lea rdx, str.paddingLen
mov rcx, rbx
call fcn.1400717d0
jmp 0x14010969a
movzx eax, byte [rdi + 2]
mov byte [rbp - 0x78], al
movzx eax, byte [rdi + 3]
mov byte [rbp - 0x77], al
movzx eax, byte [rdi + 4]
mov byte [rbp - 0x76], al
lea edi, [r14 - 3]
mov dword [rbp - 0x80], 3
cmp byte [rbx + 0xaa], 0
je 0x1401096ac
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.1400717d0
mov rcx, rsi
call fcn.140035e00
mov r8d, dword [rbp - 0x80]
lea rdx, [rbp - 0x78]
mov rcx, rsi
call fcn.140034960
lea rax, [rbp - 0x68]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x20], rax
mov r9d, dword [rbp - 0x18]
mov r8, rsi
mov edx, edi
mov rcx, r13
call fcn.140122af0
movzx edi, al
test al, al
je 0x140109a83
mov rcx, rsi
call fcn.1400372d0
cmp eax, r14d
jne 0x140109a83
mov rcx, rsi
call fcn.140036f60
mov r13, rax
mov r14, qword [rsp + 0x60]
mov byte [r14 + 0xa8], 1
mov rdi, qword [rsp + 0x58]
lea rcx, [rdi + 0x200]
mov rdx, rsi
call fcn.1400348f0
cmp byte [rbx + 0xaa], 0
je 0x14010976a
mov rcx, rsi
call fcn.1400372d0
mov edi, eax
mov rcx, rsi
call fcn.140036f60
mov r8, rax
mov r9d, edi
lea rdx, str.fullRecord
mov rcx, rbx
call fcn.140071630
mov rdi, qword [rsp + 0x58]
mov dword [r14 + 8], reloc.WS2_32.dll_shutdown
movzx eax, byte [r13 + 1]
mov dword [r14 + 0xc], eax
movzx eax, byte [r13 + 2]
lea rsi, [r14 + 0x10]
mov dword [rsi], eax
call fcn.140102a40
mov r14, rax
test rax, rax
je 0x14010a623
xor eax, eax
mov qword [rbp + 0x10], rax
mov qword [rbp + 0x18], rax
mov qword [rbp + 0x20], rax
lea rcx, [rbp + 0x10]
call fcn.1400508a0
nop
mov qword [rbp + 0x20], r14
mov rax, qword [rsp + 0x60]
mov eax, dword [rax + 0xc]
mov dword [r14 + 0x48], eax
mov eax, dword [rsi]
mov dword [r14 + 0x4c], eax
movzx esi, byte [r13 + 3]
shl esi, 8
movzx eax, byte [r13 + 4]
or esi, eax
mov dword [rbp - 0x10], esi
movzx r8d, byte [r13 + 5]
shl r8d, 8
movzx eax, byte [r13 + 6]
or r8d, eax
mov dword [rbp - 0x80], r8d
movzx r9d, byte [r13 + 7]
shl r9d, 8
movzx eax, byte [r13 + 8]
or r9d, eax
mov dword [rbp - 0x18], r9d
cmp byte [rbx + 0xaa], 0
je 0x14010984a
mov r8d, esi
lea rdx, str.cipherListLen
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [rbp - 0x80]
lea rdx, str.sessionIdLen
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [rbp - 0x18]
lea rdx, str.challengeLen
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [rbp - 0x80]
mov r9d, dword [rbp - 0x18]
lea eax, [rsi - 3]
cmp eax, 0xbd
ja 0x140109a77
mov eax, 0xaaaaaaab
mul esi
shr edx, 1
lea ecx, [rdx + rdx*2]
cmp esi, ecx
jne 0x140109a77
cmp r8d, 0x20
jbe 0x1401098ae
lea rdx, str.Invalid_session_ID_length
mov rax, qword [rbx]
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, qword [rsp + 0x68]
mov r8d, 0xa
mov rdx, qword [rsp + 0x50]
mov rcx, rdi
call fcn.14010bfa0
nop
lea rcx, [rbp + 0x10]
call fcn.140050950
jmp 0x14010a623
lea eax, [r9 - 8]
cmp eax, 0x18
ja 0x140109a6b
add r13, 9
mov dword [rbp - 0x74], 0
test edx, edx
je 0x1401099c0
mov r15d, dword [rbp - 0x74]
mov r12d, edx
nop word [rax + rax]
lea edx, [r15 + r15*2]
lea eax, [rdx + 2]
movzx esi, byte [rax + r13]
lea eax, [rdx + 1]
movzx edi, byte [rax + r13]
movzx ecx, byte [rdx + r13]
shl ecx, 8
or edi, ecx
cmp byte [rbx + 0xaa], 0
je 0x14010992b
mov r8d, esi
lea rdx, str.cipherKind
mov rcx, rbx
call fcn.1400717d0
mov r8d, edi
lea rdx, str.key_len
mov rcx, rbx
call fcn.1400717d0
mov word [rbp - 0x7c], 0x400
mov word [rbp - 0x70], 0x500
mov word [rbp - 0x6c], 0xa00
mov word [rbp - 0x64], 0x2f00
mov word [rbp - 0x74], 0x3500
test edi, edi
jne 0x1401099a4
cmp esi, 4
jne 0x140109958
lea rdx, [rbp - 0x7c]
jmp 0x140109992
test edi, edi
jne 0x1401099a4
cmp esi, 5
jne 0x140109967
lea rdx, [rbp - 0x70]
jmp 0x140109992
test edi, edi
jne 0x1401099a4
cmp esi, 0xa
jne 0x140109976
lea rdx, [rbp - 0x6c]
jmp 0x140109992
test edi, edi
jne 0x1401099a4
cmp esi, 0x2f
jne 0x140109985
lea rdx, [rbp - 0x64]
jmp 0x140109992
test edi, edi
jne 0x1401099a4
cmp esi, 0x35
jne 0x1401099a4
lea rdx, [rbp - 0x74]
mov r8d, 2
lea rcx, [r14 + 0xb0]
call fcn.140034960
inc r15d
cmp r15d, r12d
jb 0x1401098e0
mov r15, qword [rsp + 0x70]
mov r12, qword [rbp - 8]
mov esi, dword [rbp - 0x10]
mov r8d, dword [rbp - 0x80]
mov eax, esi
add r13, rax
lea rcx, [r14 + 0x80]
mov rdx, r13
call fcn.140034960
mov edx, dword [rbp - 0x80]
add rdx, r13
lea rcx, [r14 + 0x50]
mov r8d, dword [rbp - 0x18]
call fcn.140034960
lea rcx, [r14 + 0xe0]
xor edx, edx
call fcn.140034b40
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 0x48]
call fcn.140034320
nop
mov rsi, qword [rsp + 0x58]
lea r9, [rsi + 0xb8]
mov qword [rsp + 0x30], rbx
mov qword [rsp + 0x28], r12
movzx eax, byte [rsi + 0xb2]
mov byte [rsp + 0x20], al
lea r8, [rbp - 0x48]
xor edx, edx
mov rcx, r14
call fcn.1400fdde0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
nop
lea rcx, [rbp + 0x10]
call fcn.140050950
mov r13, qword [rsp + 0x68]
mov r14, qword [rsp + 0x50]
jmp 0x140109c61
lea rdx, str.Invalid_challenge_length
jmp 0x140109879
lea rdx, str.Invalid_cipher_list_length
jmp 0x140109879
mov rax, qword [rbx]
lea rdx, str.Failed_to_read_TLS_record__1_
mov rcx, rbx
call qword [rax + 0x28]
movzx r8d, dil
lea rdx, [0x1401d7b68]
mov rcx, rbx
call fcn.1400717d0
mov r8d, r14d
lea rdx, str.recLen
mov rcx, rbx
call fcn.1400717d0
mov rcx, rsi
call fcn.1400372d0
mov r8d, eax
lea rdx, str.dbSize
jmp 0x14010a61a
movzx eax, al
mov rcx, qword [rsp + 0x60]
lea rsi, [rcx + 8]
mov dword [rsi], eax
movzx edx, byte [rdi + 1]
lea r11, [rcx + 0xc]
mov dword [r11], edx
movzx r8d, byte [rdi + 2]
lea r9, [rcx + 0x10]
mov dword [r9], r8d
movzx ecx, byte [rdi + 3]
and ecx, 0x7f
movzx eax, byte [rdi + 4]
shl ecx, 8
or ecx, eax
mov dword [rbp - 0x80], ecx
cmp byte [rbx + 0xaa], 0
je 0x140109c13
cmp edx, 3
jne 0x140109b62
test r8d, r8d
jne 0x140109b27
lea rdi, str.SSL_3.0
jmp 0x140109b87
cmp edx, 3
jne 0x140109b62
cmp r8d, 1
jne 0x140109b3b
lea rdi, str.TLS_1.0
jmp 0x140109b87
cmp edx, 3
jne 0x140109b62
cmp r8d, 2
jne 0x140109b4f
lea rdi, str.TLS_1.1
jmp 0x140109b87
cmp edx, 3
jne 0x140109b62
cmp r8d, edx
jne 0x140109b62
lea rdi, str.TLS_1.2
jmp 0x140109b87
mov qword [rsp + 0x20], r9
mov r9, r11
lea r8, str.v_d._d
mov edx, r10d
lea rcx, [rbp + 0x10]
call fcn.14007a930
lea rdi, [rbp + 0x10]
mov r10d, 0x20
mov eax, dword [rsi]
cmp eax, 0x14
jne 0x140109b97
lea rax, str.ChangeCipherSpec
jmp 0x140109bdb
cmp eax, 0x15
jne 0x140109ba5
lea rax, str.Alert
jmp 0x140109bdb
cmp eax, 0x16
jne 0x140109bb3
lea rax, str.Handshake
jmp 0x140109bdb
cmp eax, 0x17
jne 0x140109bc1
lea rax, str.Application
jmp 0x140109bdb
mov r9, rsi
lea r8, str.ct_d
mov edx, r10d
lea rcx, [rbp - 0x48]
call fcn.14007a8f0
lea rax, [rbp - 0x48]
cmp dword [rsi], 0x17
je 0x140109c13
lea rcx, [rbp - 0x80]
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 + 0x50]
call fcn.14007aa20
mov rax, qword [rbx]
lea rdx, [rbp + 0x50]
mov rcx, rbx
call qword [rax + 0x30]
mov rcx, r12
call fcn.140035e00
lea rax, [rbp - 0x68]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rbx
mov qword [rsp + 0x20], r14
mov r9d, dword [rbp - 0x18]
mov r8, r12
mov edx, dword [rbp - 0x80]
mov rcx, r13
call fcn.140122af0
movzx edi, al
test al, al
je 0x14010a562
mov rcx, r12
call fcn.1400372d0
cmp eax, dword [rbp - 0x80]
jne 0x14010a562
mov rsi, qword [rsp + 0x58]
cmp byte [r15 + 0x104], 0
je 0x14010a2b6
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 0x48]
call fcn.140034320
nop
mov eax, dword [r15 + 0x120]
cmp eax, 6
jne 0x140109e7a
mov rcx, r12
call fcn.1400372d0
mov dword [rbp - 0x18], eax
lea rcx, [r15 + 0x10760]
call fcn.140035e00
lea rdx, [r15 + 0x178]
mov r8d, 8
lea rcx, [r15 + 0x10760]
call fcn.140034960
cmp dword [rbp - 0x18], 0x18
jae 0x140109d11
mov rax, qword [rbx]
lea rdx, str.GCM_fragment_not_large_enough.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, r14
mov rcx, rsi
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
mov rcx, r12
call fcn.1400372d0
lea edx, [rax - 0x18]
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + 8]
mov byte [rbp - 0x10], al
movzx eax, byte [rcx + 0xc]
mov byte [rbp - 0xf], al
movzx eax, byte [rcx + 0x10]
mov byte [rbp - 0xe], al
mov eax, edx
shr eax, 8
mov byte [rbp - 0xd], al
mov byte [rbp - 0xc], dl
mov r8d, 5
lea rdx, [rbp - 0x10]
lea rcx, [r15 + 0x10760]
call fcn.140034960
lea rcx, [r15 + 0x148]
call fcn.1400372d0
cmp eax, 4
je 0x140109da0
mov rax, qword [rbx]
lea rdx, str.GCM_fixed_IV_not_equal_to_4.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, r14
mov rcx, rsi
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
lea rcx, [r15 + 0x148]
call fcn.140036f60
mov ecx, dword [rax]
mov dword [rbp - 8], ecx
mov rcx, r12
call fcn.140036f60
mov rcx, qword [rax]
mov qword [rbp - 4], rcx
mov r8d, reloc.WS2_32.dll_inet_ntoa
lea rdx, [rbp - 8]
lea rcx, [r15 + 0x106e0]
call fcn.1400db890
mov rcx, r12
call fcn.140036f60
mov rdi, rax
mov eax, dword [rbp - 0x18]
add rdi, rax
lea rcx, [r15 + 0x10790]
call fcn.140035e00
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rdi - 0x10]
lea rcx, [r15 + 0x10790]
call fcn.140034960
mov edx, reloc.WS2_32.dll_recv
mov rcx, r12
call fcn.140038b60
lea rdx, [r15 + 0x180]
mov r9, rbx
lea r8, [r15 + 0x106e0]
mov rcx, qword [r15 + 0x107d0]
call fcn.14013cb60
test al, al
jne 0x14010a081
mov rax, qword [rbx]
lea rdx, str.GCM_decrypt_setup_failed.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
cmp eax, 7
jne 0x14010a081
mov rcx, r12
call fcn.1400372d0
mov dword [rbp - 0x10], eax
cmp eax, 0x10
jae 0x140109ecb
mov rax, qword [rbx]
lea rdx, str.AEAD_fragment_not_large_enough.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, r14
mov rcx, rsi
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
mov rcx, r12
call fcn.1400372d0
lea edi, [rax - 0x10]
lea rcx, [r15 + 0x10760]
call fcn.140035e00
mov r8d, 8
lea rdx, [r15 + 0x178]
lea rcx, [r15 + 0x10760]
call fcn.140034960
mov rcx, qword [rsp + 0x60]
movzx eax, byte [rcx + 8]
mov byte [rbp - 0x18], al
movzx eax, byte [rcx + 0xc]
mov byte [rbp - 0x17], al
movzx eax, byte [rcx + 0x10]
mov byte [rbp - 0x16], al
mov eax, edi
shr eax, 8
mov byte [rbp - 0x15], al
mov byte [rbp - 0x14], dil
mov r8d, 5
lea rdx, [rbp - 0x18]
lea rcx, [r15 + 0x10760]
call fcn.140034960
mov dword [rbp - 8], 0
mov rax, qword [r15 + 0x178]
mov qword [rbp - 4], rax
lea rcx, [r15 + 0x148]
call fcn.1400372d0
cmp eax, 0xc
je 0x140109f79
mov rax, qword [rbx]
lea rdx, str.m_fixedIv_should_be_12_bytes
mov rcx, rbx
call qword [rax + 0x28]
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
lea rcx, [r15 + 0x148]
call fcn.140036f60
mov r8, rax
xor edx, edx
lea rax, [rbp - 8]
sub r8, rax
lea rcx, [rbp - 8]
add rcx, rdx
movzx eax, byte [rcx + r8]
xor byte [rcx], al
inc rdx
cmp rdx, 0xc
jl 0x140109f91
mov r8d, reloc.WS2_32.dll_inet_ntoa
lea rdx, [rbp - 8]
lea rcx, [r15 + 0x106e0]
call fcn.1400db890
mov rcx, r12
call fcn.140036f60
mov rdi, rax
mov eax, dword [rbp - 0x10]
add rdi, rax
lea rcx, [r15 + 0x10790]
call fcn.140035e00
mov r8d, reloc.WS2_32.dll_recv
lea rdx, [rdi - 0x10]
lea rcx, [r15 + 0x10790]
call fcn.140034960
mov edx, reloc.WS2_32.dll_recv
mov rcx, r12
call fcn.140038b60
mov rcx, qword [r15 + 0x107d0]
mov rax, qword [rcx]
mov qword [rsp + 0x20], rbx
lea r9, [r15 + 0x180]
lea r8, [r15 + 0x106e0]
xor edx, edx
call qword [rax + 0x18]
mov rcx, qword [r15 + 0x107d0]
mov rax, qword [rcx]
mov r9, rbx
lea r8, [r15 + 0x106e0]
lea rdx, [r15 + 0x180]
call qword [rax + 0x58]
test al, al
jne 0x14010a081
mov rax, qword [rbx]
lea rdx, str.AEAD_decrypt_setup_failed.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
movzx eax, byte [rbx + 0xa9]
mov byte [rbp - 0x7c], al
movzx eax, byte [rbx + 0xaa]
mov byte [rbx + 0xa9], al
lea rsi, [r15 + 0x106e0]
lea r14, [r15 + 0x180]
mov rcx, r12
cmp dword [r15 + 0x120], 6
jne 0x14010a0d7
call fcn.1400372d0
lea edi, [rax - 8]
mov rcx, r12
call fcn.140036f60
lea r9, [rax + 8]
mov qword [rsp + 0x30], rbx
lea rcx, [rbp - 0x48]
mov qword [rsp + 0x28], rcx
jmp 0x14010a0f7
call fcn.1400372d0
mov edi, eax
mov rcx, r12
call fcn.140036f60
mov r9, rax
mov qword [rsp + 0x30], rbx
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
mov r8, rsi
mov rdx, r14
mov rcx, qword [r15 + 0x107d0]
call fcn.1400d9ee0
movzx ecx, byte [rbp - 0x7c]
mov byte [rbx + 0xa9], cl
test al, al
jne 0x14010a15a
mov rax, qword [rbx]
lea rdx, str.Failed_to_decrypt_SSL_TLS_record.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
mov eax, dword [r15 + 0x120]
cmp eax, 6
jne 0x14010a1c2
mov r9, rbx
mov r8, rsi
mov rdx, r14
mov rcx, qword [r15 + 0x107d0]
call fcn.14013caa0
test al, al
jne 0x14010a220
mov rax, qword [rbx]
lea rdx, str.GCM_decrypt_finalize_failed.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
cmp eax, 7
jne 0x14010a220
mov rcx, qword [r15 + 0x107d0]
mov rax, qword [rcx]
mov r9, rbx
mov r8, rsi
mov rdx, r14
call qword [rax + 0x60]
test al, al
jne 0x14010a220
mov rax, qword [rbx]
lea rdx, str.AEAD_decrypt_finalize_failed.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
lea rdx, [rbp - 0x48]
mov rcx, r12
call fcn.140038c30
mov rax, qword [rsp + 0x60]
mov byte [rax + 0x14], 1
mov ecx, dword [r15 + 0x120]
lea eax, [rcx - 6]
cmp eax, 1
jbe 0x14010a2ad
cmp ecx, 0x63
je 0x14010a2ad
mov rdx, rbx
mov rcx, r12
call fcn.140039260
test al, al
jne 0x14010a297
mov rax, qword [rbx]
lea rdx, str.Invalid_block_cipher_padding_detected.
mov rcx, rbx
call qword [rax + 0x28]
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
mov rcx, r12
call fcn.140037560
movzx edx, al
inc edx
mov rcx, r12
call fcn.140038b60
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
mov eax, dword [r15 + 0x120]
sub eax, 6
cmp eax, 1
jbe 0x14010a530
mov eax, dword [r15 + 0x124]
test eax, eax
je 0x14010a530
cmp eax, 1
jne 0x14010a2e3
lea r14d, [rax + 0x13]
jmp 0x14010a300
cmp eax, 7
jne 0x14010a2ee
lea r14d, [rax + 0x19]
jmp 0x14010a300
mov ecx, gethostbyname
mov r14d, reloc.WS2_32.dll_recv
cmp eax, 2
cmove r14d, ecx
mov rcx, r12
call fcn.1400372d0
mov edi, eax
cmp eax, r14d
jae 0x14010a344
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, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
jmp 0x14010a623
xor eax, eax
mov qword [rbp - 0x48], rax
mov qword [rbp - 0x40], rax
mov qword [rbp - 0x38], rax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
mov qword [rbp - 0x20], rax
lea rcx, [rbp - 0x48]
call fcn.140034320
nop
sub edi, r14d
mov r9d, r14d
mov r8d, edi
mov rdx, r12
lea rcx, [rbp - 0x48]
call fcn.1400357e0
mov edx, r14d
mov rcx, r12
call fcn.140038b60
mov rax, qword [rsp + 0x60]
lea rsi, [rax + 0xc]
cmp dword [rsi], 3
jne 0x14010a441
cmp dword [rax + 0x10], 2
jl 0x14010a441
cmp dword [r15 + 0x138], 0
jbe 0x14010a441
mov rcx, r12
call fcn.1400372d0
cmp eax, dword [r15 + 0x138]
jb 0x14010a3fd
mov edi, dword [r15 + 0x138]
mov rcx, r12
call fcn.1400372d0
mov esi, eax
sub esi, edi
mov edx, edi
mov rcx, r12
call fcn.140036f70
mov qword [rsp + 0x40], rbx
lea rcx, [rbp + 0x10]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], esi
mov rcx, qword [rsp + 0x60]
mov r9d, dword [rcx + 0xc]
jmp 0x14010a46d
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.1400372d0
mov r8d, eax
lea rdx, str.tlsMsgSize
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [r15 + 0x138]
lea rdx, str.cipherSuiteRecordIvLen
mov rcx, rbx
call fcn.1400717d0
xor esi, esi
jmp 0x14010a489
mov rcx, r12
call fcn.1400372d0
mov edi, eax
mov rcx, r12
call fcn.140036f60
mov qword [rsp + 0x40], rbx
lea rcx, [rbp + 0x10]
mov qword [rsp + 0x38], rcx
mov dword [rsp + 0x30], edi
mov rcx, qword [rsp + 0x60]
mov r9d, dword [rsi]
mov qword [rsp + 0x28], rax
mov eax, dword [rcx + 0x10]
mov r8d, dword [rcx + 8]
mov dword [rsp + 0x20], eax
xor edx, edx
mov rcx, r15
call fcn.1400ff780
mov esi, eax
lea rcx, [rbp - 0x48]
call fcn.140036f60
mov rcx, rax
mov r8d, r14d
lea rdx, [rbp + 0x10]
call fcn.14016c630
test eax, eax
je 0x14010a527
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.1400717d0
mov r8d, esi
lea rdx, str.macLen2
mov rcx, rbx
call fcn.1400717d0
lea rcx, [rbp - 0x48]
call fcn.1400372d0
mov r8d, eax
lea rdx, str.dbMacSize
mov rcx, rbx
call fcn.1400717d0
mov qword [rsp + 0x20], rbx
mov r9, r13
mov r8d, shutdown
mov rdx, qword [rsp + 0x50]
mov rax, qword [rsp + 0x58]
mov rcx, rax
call fcn.14010bfa0
nop
lea rcx, [rbp - 0x48]
call fcn.1400344a0
jmp 0x14010a623
lea rcx, [rbp - 0x48]
call fcn.1400344a0
lea rcx, [r15 + 0x17f]
mov rdx, 0xfffffffffffffe88
sub rdx, r15
add byte [rcx], 1
jne 0x14010a552
dec rcx
lea rax, [rdx + rcx]
test rax, rax
jns 0x14010a541
lea rcx, [rbp - 0x60]
call fcn.140071380
mov al, 1
jmp 0x14010a62e
mov rax, qword [rbx]
lea rdx, str.Failed_to_read_TLS_record__2_
mov rcx, rbx
call qword [rax + 0x28]
mov rcx, r12
call fcn.1400372d0
mov r8d, eax
lea rdx, str.tlsRec_msg
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [rbp - 0x80]
lea rdx, str.msgLen
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [rbp - 0x68]
lea rdx, str.nReadNBytes
mov rcx, rbx
call fcn.1400717d0
movzx r8d, dil
lea rdx, str.status
jmp 0x14010a61a
mov rax, qword [rbx]
lea rdx, str.Failed_to_read_beginning_of_SSL_TLS_record.
mov rcx, rbx
call qword [rax + 0x28]
movzx r8d, dil
lea rdx, [0x1401d7b68]
mov rcx, rbx
call fcn.1400717d0
mov rcx, rsi
call fcn.1400372d0
mov r8d, eax
lea rdx, str.dbSize
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [rbp - 0x68]
lea rdx, str.nReadNBytes
mov rcx, rbx
call fcn.1400717d0
mov r8d, dword [rbp - 0x18]
lea rdx, str.idleTimeoutMs
mov rcx, rbx
call fcn.1400717d0
nop
lea rcx, [rbp - 0x60]
call fcn.140071380
xor al, al
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140168e10
add rsp, 0x1e8
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret