Function at 0x180017890
Capabilities:
Get remote cert context via schannel

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
lea rbp, [rsp - 0x1d0]
sub rsp, 0x2d0
mov rax, qword [0x180066008]
xor rax, rsp
mov qword [rbp + 0x1c0], rax
xor r12d, r12d
mov qword [rsp + 0x70], r8
lea r13, [rcx + 0x790]
mov eax, r12d
lea rsi, [rcx + 0x800]
mov dword [rbp - 0x6c], eax
mov rdi, r9
mov r14, rdx
mov rbx, rcx
mov r10d, r12d
mov qword [rsp + 0x78], r12
mov dword [rbp - 0x70], r12d
mov qword [rbp - 0x68], r13
mov qword [rbp - 0x60], r12
mov qword [rbp - 0x58], rsi
cmp dword [r8], r12d
jne 0x180017982
mov rcx, qword [rcx + 8]
test rcx, rcx
je 0x180017957
lea r8, [rsp + 0x78]
call fcn.180002dbc
test eax, eax
jns 0x18001794a
test byte [0x180067c75], 1
je 0x180017940
mov r8, qword [rbx + 0x40]
lea rcx, str.Convert_SNI_to_unicode
mov r9d, eax
mov qword [rsp + 0x20], rcx
lea rdx, [0x180056aa8]
call fcn.180042260
mov eax, 0x8000
jmp 0x180018906
mov eax, dword [rbp - 0x6c]
mov r8, qword [rsp + 0x70]
mov r10, qword [rsp + 0x78]
add rax, rax
mov dword [r13 + rax*8 + 4], shutdown
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbx + 0x30]
add rcx, rcx
mov dword [r13 + rcx*8], eax
mov ecx, dword [rbp - 0x6c]
mov rax, qword [rbx + 0x28]
add rcx, rcx
mov qword [r13 + rcx*8 + 8], rax
jmp 0x18001799c
mov dword [r13 + 4], 2
mov eax, dword [r8]
mov dword [r13], eax
mov eax, dword [rbp - 0x6c]
add rax, rax
mov qword [r13 + rax*8 + 8], r14
mov eax, dword [rbp - 0x6c]
lea rdx, [rbx + 0x48]
inc eax
mov qword [rsp + 0x318], r15
mov dword [rbp - 0x6c], eax
mov r9d, 8
add rax, rax
mov dword [r13 + rax*8 + 4], r12d
mov eax, dword [rbp - 0x6c]
add rax, rax
mov dword [r13 + rax*8], r12d
mov eax, dword [rbp - 0x6c]
add rax, rax
mov qword [r13 + rax*8 + 8], r12
mov eax, dword [rbp - 0x6c]
inc eax
mov dword [rbp - 0x6c], eax
mov ecx, eax
add rcx, rcx
mov dword [r13 + rcx*8 + 4], r12d
mov eax, dword [rbp - 0x6c]
add rax, rax
mov dword [r13 + rax*8], r12d
mov eax, dword [rbp - 0x6c]
add rax, rax
mov qword [r13 + rax*8 + 8], r12
mov eax, dword [rbp - 0x6c]
inc eax
mov dword [rbp - 0x6c], eax
mov ecx, eax
movabs rax, 0x100000000
mov qword [rdx], rax
add rcx, rcx
mov dword [r13 + rcx*8 + 4], 0x1b
mov eax, dword [rbp - 0x6c]
add rax, rax
mov dword [r13 + rax*8], r9d
mov eax, dword [rbp - 0x6c]
add rax, rax
mov qword [r13 + rax*8 + 8], rdx
mov ecx, dword [rbp - 0x6c]
movzx eax, byte [rbx]
inc ecx
mov dword [rbp - 0x6c], ecx
test al, 1
je 0x180017a76
test al, 2
jne 0x180017a76
mov eax, ecx
add rax, rax
mov dword [r13 + rax*8 + 4], shutdown
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbx + 0x30]
add rcx, rcx
mov dword [r13 + rcx*8], eax
mov ecx, dword [rbp - 0x6c]
mov rax, qword [rbx + 0x28]
add rcx, rcx
mov qword [r13 + rcx*8 + 8], rax
inc dword [rbp - 0x6c]
mov eax, dword [rbp - 0x5c]
add rax, rax
mov dword [rsi + rax*8 + 4], 2
movzx ecx, word [rdi + 0x14]
movzx eax, word [rdi + 0x12]
sub ecx, eax
mov eax, dword [rbp - 0x5c]
add rax, rax
mov dword [rsi + rax*8], ecx
mov eax, dword [rbp - 0x5c]
movzx ecx, word [rdi + 0x12]
add rax, rax
add rcx, qword [rdi + 0x28]
mov qword [rsi + rax*8 + 8], rcx
mov eax, dword [rbp - 0x5c]
inc eax
mov dword [rbp - 0x5c], eax
mov ecx, eax
add rcx, rcx
mov dword [rsi + rcx*8 + 4], shutdown
lea rcx, [rbp + 0xd8]
mov eax, dword [rbp - 0x5c]
add rax, rax
mov dword [rsi + rax*8], 2
mov eax, dword [rbp - 0x5c]
add rax, rax
mov qword [rsi + rax*8 + 8], rcx
mov eax, dword [rbp - 0x5c]
inc eax
mov dword [rbp - 0x5c], eax
cmp qword [rbx + 0x38], r12
je 0x180017b2d
mov eax, dword [rbp - 0x6c]
add rax, rax
mov dword [r13 + rax*8 + 4], 0x19
mov rax, qword [rbx + 0x38]
movzx ecx, word [rax + 8]
mov eax, dword [rbp - 0x6c]
add ecx, 0xa
add rax, rax
mov dword [r13 + rax*8], ecx
mov ecx, dword [rbp - 0x6c]
mov rax, qword [rbx + 0x38]
add rcx, rcx
mov qword [r13 + rcx*8 + 8], rax
mov ecx, dword [rbp - 0x6c]
mov eax, dword [rbp - 0x5c]
inc ecx
mov dword [rbp - 0x6c], ecx
jmp 0x180017b30
mov ecx, dword [rbp - 0x6c]
cmp dword [r8], r12d
je 0x180017bfa
movzx edx, byte [rbx]
test dl, 5
jne 0x180017bfa
movzx eax, word [rbx + 2]
test dl, 1
mov word [rbp + 0xe8], ax
mov eax, 1
cmove ax, r9w
mov dword [rbp + 0xe0], r12d
mov word [rbp + 0xea], ax
mov eax, ecx
lea rcx, [rbp + 0xe0]
add rax, rax
mov dword [rbp + 0xe4], 1
mov dword [r13 + rax*8 + 4], 0x1a
mov eax, dword [rbp - 0x6c]
add rax, rax
mov dword [r13 + rax*8], 0xc
mov eax, dword [rbp - 0x6c]
add rax, rax
mov qword [r13 + rax*8 + 8], rcx
mov eax, dword [rbp - 0x5c]
inc dword [rbp - 0x6c]
add rax, rax
mov dword [rsi + rax*8 + 4], 0x1a
mov ecx, dword [rbp - 0x5c]
add rcx, rcx
cmp qword [rbx + 0x878], r12
je 0x180017be1
mov eax, dword [rbx + 0x870]
mov dword [rsi + rcx*8], eax
mov ecx, dword [rbp - 0x5c]
mov rax, qword [rbx + 0x878]
add rcx, rcx
mov qword [rsi + rcx*8 + 8], rax
jmp 0x180017bf2
mov eax, dword [r8]
mov dword [rsi + rcx*8], eax
mov eax, dword [rbp - 0x5c]
add rax, rax
mov qword [rsi + rax*8 + 8], r14
mov eax, dword [rbp - 0x5c]
inc eax
mov dword [rbp - 0x5c], eax
lea rcx, [rbx + 0x50]
mov edx, 4
nop dword [rax]
nop word [rax + rax]
add rax, rax
mov dword [rsi + rax*8 + 4], 0x1c
mov eax, dword [rbp - 0x5c]
add rax, rax
mov dword [rsi + rax*8], 0x1d0
mov eax, dword [rbp - 0x5c]
add rax, rax
mov qword [rsi + rax*8 + 8], rcx
add rcx, 0x1d0
mov eax, dword [rbp - 0x5c]
inc eax
mov dword [rbp - 0x5c], eax
sub rdx, 1
jne 0x180017c10
movzx ecx, byte [rbx]
mov r9d, 0xc018
and cl, 1
je 0x180017c76
mov rax, qword [rbx + 0x20]
mov r9d, 0xc058
test byte [rax + 0x10], 0x40
je 0x180017c76
mov rax, qword [rbx + 0x10]
lea r8, [rbx + 0x10]
mov r9d, 0xc05a
jmp 0x180017c82
mov rax, qword [rbx + 0x10]
lea r8, [rbx + 0x10]
test cl, cl
je 0x180017cc9
cmp rax, 0xffffffffffffffff
je 0x180017c92
cmp qword [rbx + 0x18], 0xffffffffffffffff
mov rdx, r8
jne 0x180017c95
mov rdx, r12
mov rcx, qword [rbx + 0x20]
lea rax, [rbp + 0xdc]
mov qword [rsp + 0x40], r12
mov qword [rsp + 0x38], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], r8
lea r8, [rbp - 0x70]
mov dword [rsp + 0x20], r12d
call qword [sym.imp.SCHANNEL.dll_AcceptSecurityContext]
jmp 0x180017d23
cmp rax, 0xffffffffffffffff
je 0x180017cd9
cmp qword [rbx + 0x18], 0xffffffffffffffff
mov rdx, r8
jne 0x180017cdc
mov rdx, r12
mov rcx, qword [rbx + 0x20]
lea rax, [rbp + 0xdc]
mov qword [rsp + 0x58], r12
mov qword [rsp + 0x50], rax
lea rax, [rbp - 0x60]
mov qword [rsp + 0x48], rax
lea rax, [rbp - 0x70]
mov qword [rsp + 0x40], r8
mov r8, r10
mov dword [rsp + 0x38], r12d
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], shutdown
mov dword [rsp + 0x20], r12d
call qword [sym.imp.SCHANNEL.dll_InitializeSecurityContextW]
mov ecx, dword [rbp - 0x6c]
mov rdx, r12
mov dword [rbp - 0x50], eax
mov esi, r12d
mov qword [rbp - 0x78], rdx
mov r15, r12
test ecx, ecx
je 0x180017d6b
mov rax, qword [rbp - 0x68]
nop
test rdx, rdx
jne 0x180017d50
cmp dword [rax + 4], 5
jne 0x180017d50
mov rdx, rax
jmp 0x180017d5d
test r15, r15
jne 0x180017d5d
cmp dword [rax + 4], 4
cmove r15, rax
add rax, 0x10
sub rcx, 1
jne 0x180017d40
mov qword [rbp - 0x78], rdx
mov r10d, dword [rbp - 0x5c]
xor r9b, r9b
mov r8, qword [rbp - 0x58]
mov rax, r12
mov qword [rsp + 0x68], rax
xorps xmm0, xmm0
mov qword [rbp + 0xd0], r12
xorps xmm1, xmm1
mov qword [rbp - 0x80], r12
mov r14, r12
mov byte [rsp + 0x60], r9b
mov r11, r12
mov byte [rsp + 0x61], al
movups xmmword [rbp + 0x118], xmm0
movups xmmword [rbp + 0x128], xmm1
test r10d, r10d
je 0x180017f14
xor r13b, r13b
mov ecx, r12d
test rax, rax
jne 0x180017ddc
mov edx, ecx
shl rdx, 4
add rdx, r8
cmp dword [rdx + 4], 2
jne 0x180017ddc
mov rax, rdx
mov qword [rsp + 0x68], rdx
jmp 0x180017efc
test r14, r14
jne 0x180017e04
mov rdx, rcx
shl rdx, 4
add rdx, r8
cmp dword [rdx + 4], 0x11
jne 0x180017e04
cmp dword [rdx], esi
jbe 0x180017e04
mov r14, rdx
mov qword [rbp + 0xd0], rdx
jmp 0x180017ef7
test r11, r11
jne 0x180017e25
mov rdx, rcx
shl rdx, 4
add rdx, r8
cmp dword [rdx + 4], 0x1a
jne 0x180017e25
mov r11, rdx
mov qword [rbp - 0x80], rdx
jmp 0x180017ef7
add rcx, rcx
cmp dword [r8 + rcx*8 + 4], 0x1c
jne 0x180017ef7
mov r14, qword [r8 + rcx*8 + 8]
mov edx, dword [r14 + 0x188]
test edx, edx
je 0x180017ef0
test byte [0x180067c73], 8
je 0x180017ebc
movzx ecx, word [r14 + 0x184]
lea r9, str.Key_Ready_Type___u___hu_to__hu_
movzx eax, word [r14 + 0x186]
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x30], eax
mov dword [rsp + 0x28], ecx
lea rcx, [rbp + 0x140]
mov dword [rsp + 0x20], edx
mov edx, 0x80
call fcn.180042088
mov r8, qword [rbx + 0x40]
lea r9, [rbp + 0x140]
lea rdx, [0x180056c18]
call fcn.180041678
mov edx, dword [r14 + 0x188]
mov r8, qword [rbp - 0x58]
mov r10d, dword [rbp - 0x5c]
movzx r9d, byte [rsp + 0x60]
mov r11, qword [rbp - 0x80]
test byte [rbx], 1
je 0x180017ed7
cmp edx, 2
jne 0x180017edc
movzx eax, r13b
inc r13b
mov qword [rbp + rax*8 + 0x128], r14
jmp 0x180017ef0
cmp edx, 2
jne 0x180017ec6
movzx eax, r9b
inc r9b
mov byte [rsp + 0x60], r9b
mov qword [rbp + rax*8 + 0x118], r14
mov r14, qword [rbp + 0xd0]
mov rax, qword [rsp + 0x68]
inc r12d
cmp r12d, r10d
jb 0x180017db8
mov byte [rsp + 0x61], r13b
lea r13, [rbx + 0x790]
mov r12d, dword [rbp - 0x50]
cmp r12d, 0x90312
jg 0x180018411
je 0x180018268
cmp r12d, 0x80090318
je 0x1800183db
cmp r12d, 0x8009036a
je 0x1800182a8
test r12d, r12d
jne 0x180018429
test byte [rbx], 5
jne 0x180017f7d
test byte [0x180067c75], 1
je 0x180017f73
lea r9, str.No_QUIC_TP_received
mov r8, qword [rbx + 0x40]
lea rdx, [0x180056b58]
call fcn.180041678
mov esi, 0x8000
jmp 0x1800188e3
mov r8, qword [rbx + 0x38]
test r8, r8
je 0x180017f9e
mov rcx, qword [0x180069238]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor r15d, r15d
mov qword [rbx + 0x38], r15
jmp 0x180017fa1
xor r15d, r15d
test byte [rdi], 1
jne 0x180018268
test byte [rbx], 1
lea rsi, [rbx + 0x10]
jne 0x180018060
lea r8, [rbp - 0x40]
mov edx, 0x23
mov rcx, rsi
call qword [sym.imp.SCHANNEL.dll_QueryContextAttributesW]
test eax, eax
je 0x180017fff
test byte [0x180067c75], 1
je 0x180017f73
lea rcx, str.query_negotiated_ALPN
mov r9d, eax
mov qword [rsp + 0x20], rcx
mov r8, qword [rbx + 0x40]
lea rdx, [0x180056aa8]
call fcn.180042260
mov esi, 0x8000
jmp 0x1800188e3
mov r9d, dword [rbp - 0x40]
cmp r9d, 1
je 0x180018024
test byte [0x180067c75], 1
je 0x180017f73
lea rax, str.ALPN_negotiation_status
mov qword [rsp + 0x20], rax
jmp 0x180017fe5
mov rax, qword [rbx + 0x28]
lea r9, [rbp - 0x37]
movzx r8d, byte [rbp - 0x38]
movzx ecx, word [rax + 8]
lea rdx, [rax + 0xa]
call fcn.18001f5b4
mov qword [rdi + 0x40], rax
test rax, rax
jne 0x180018060
test byte [0x180067c75], 1
je 0x180017f73
lea r9, str.ALPN_Mismatch
jmp 0x180017f63
mov rax, qword [rbx + 0x20]
mov qword [rbp + 0xd0], 0
mov ecx, dword [rax + 0x10]
test cl, 4
jne 0x1800180cb
test cl, 0x60
je 0x1800180cb
lea r8, [rbp + 0xd0]
mov edx, WSACleanup
mov rcx, rsi
call qword [sym.imp.SCHANNEL.dll_QueryContextAttributesW]
test eax, eax
je 0x1800180cb
test byte [0x180067c75], 1
je 0x180017f73
lea rcx, str.query_cert_validation_result
mov r8, qword [rbx + 0x40]
lea rdx, [0x180056aa8]
mov r9d, eax
mov qword [rsp + 0x20], rcx
call fcn.180042260
mov esi, 0x8000
jmp 0x1800188e3
lea r8, [rbp + 0xf0]
mov edx, 0x5d
mov rcx, rsi
call qword [sym.imp.SCHANNEL.dll_QueryContextAttributesW]
test eax, eax
je 0x1800180fa
test byte [0x180067c75], 1
je 0x180017f73
lea rcx, str.query_session_info
jmp 0x1800180a9
test byte [rbp + 0xf0], 1
je 0x180018106
or byte [rdi], 2
mov rax, qword [rbx + 0x20]
test byte [rax + 0x10], 0x10
je 0x1800181c7
lea r8, [rbp - 0x50]
mov qword [rbp - 0x50], r15
mov edx, 0x53
mov rcx, rsi
call qword [sym.imp.SCHANNEL.dll_QueryContextAttributesW]
test eax, eax
je 0x180018156
test byte [0x180067c75], 1
je 0x180018156
mov r8, qword [rbx + 0x40]
lea rcx, str.Query_peer_cert
mov r9d, eax
mov qword [rsp + 0x20], rcx
lea rdx, [0x180056aa8]
call fcn.180042260
mov ecx, dword [rbp + 0xd4]
mov rax, qword [rbx + 0x20]
mov rdx, qword [rbp - 0x50]
mov r9d, dword [rbp + 0xd0]
mov dword [rsp + 0x20], ecx
mov rax, qword [rax + 0x28]
mov r8, qword [rdx + 0x20]
mov rcx, qword [rbx + 0x40]
call qword [0x18004e538]
test al, al
jne 0x1800181b8
test byte [0x180067c75], 1
je 0x1800181a5
mov r8, qword [rbx + 0x40]
lea r9, str.Indicate_certificate_received_failed
lea rdx, [0x180056b58]
call fcn.180041678
mov eax, 0x2a
mov esi, 0x8000
mov word [rdi + 0x10], ax
jmp 0x1800188e3
mov rcx, qword [rbp - 0x50]
test rcx, rcx
je 0x1800181c7
call qword [sym.imp.CRYPT32.dll_CertFreeCertificateContext]
mov rax, qword [rbx + 0x20]
test byte [rax + 0x10], 0x20
jne 0x180018215
mov r9d, dword [rbp + 0xd4]
test r9d, r9d
je 0x180018215
test byte [0x180067c75], 1
je 0x1800181a5
mov r8, qword [rbx + 0x40]
lea rax, str.Certificate_validation_failed
lea rdx, [0x180056aa8]
mov qword [rsp + 0x20], rax
call fcn.180042260
mov eax, 0x2a
mov esi, 0x8000
mov word [rdi + 0x10], ax
jmp 0x1800188e3
test byte [0x180067c73], 4
je 0x180018260
movzx eax, byte [rdi]
lea r9, str.Handshake_complete__resume_hu_
shr eax, 1
lea rcx, [rbp + 0x140]
and eax, 1
mov edx, 0x80
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x20], eax
call fcn.180042088
mov r8, qword [rbx + 0x40]
lea r9, [rbp + 0x140]
lea rdx, [0x180056cc8]
call fcn.180041678
or byte [rdi], 1
mov esi, 0x40
test r14, r14
je 0x1800184ef
cmp dword [r14], 2
jae 0x1800184ce
test byte [0x180067c75], 1
je 0x1800184c5
mov r8, qword [rbx + 0x40]
lea r9, str.TLS_alert_message_received__invalid_
lea rdx, [0x180056b58]
call fcn.180041678
bts esi, 0xf
jmp 0x1800188e3
mov r13, qword [rsp + 0x70]
mov edx, dword [r13]
test edx, edx
je 0x18001842e
test byte [rbx], 5
jne 0x18001842e
xor ecx, ecx
test r10d, r10d
je 0x1800183cb
nop dword [rax]
mov eax, ecx
add rax, rax
mov r14d, ecx
cmp dword [r8 + rax*8 + 4], 0x1a
je 0x1800182ec
inc ecx
cmp ecx, r10d
jb 0x1800182d0
jmp 0x1800183cb
test byte [0x180067c73], 4
je 0x180018350
cmp qword [rbx + 0x878], rsi
je 0x180018304
mov edx, dword [rbx + 0x870]
mov dword [rsp + 0x28], edx
lea r9, str.Peer_TP_too_large_for_available_buffer___u_vs.__u_
mov rax, r14
lea rcx, [rbp + 0x140]
add rax, rax
mov edx, 0x80
mov eax, dword [r8 + rax*8]
mov r8, 0xffffffffffffffff
mov dword [rsp + 0x20], eax
call fcn.180042088
mov r8, qword [rbx + 0x40]
lea r9, [rbp + 0x140]
lea rdx, [0x180056cc8]
call fcn.180041678
mov r8, qword [rbp - 0x58]
mov rax, qword [rbx + 0x878]
test rax, rax
je 0x180018372
mov rcx, qword [0x180069238]
mov r8, rax
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov r8, qword [rbp - 0x58]
mov rcx, qword [0x180069238]
add r14, r14
xor edx, edx
mov r8d, dword [r8 + r14*8]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
mov qword [rbx + 0x878], rax
test rax, rax
jne 0x1800183b8
test byte [0x180067c70], 2
je 0x1800183b1
mov rax, qword [rbp - 0x58]
lea r8, str.Temporary_Peer_Transport_Params
mov r9d, dword [rax + r14*8]
call fcn.180041870
mov esi, 0x8000
jmp 0x1800183cb
mov rax, qword [rbp - 0x58]
mov esi, 1
mov ecx, dword [rax + r14*8]
mov dword [rbx + 0x870], ecx
cmp qword [rbx + 0x878], 0
jne 0x1800188e3
jmp 0x18001842e
mov r13, qword [rsp + 0x70]
mov dword [r13], esi
test r15, r15
je 0x1800188e3
mov eax, dword [r15]
test eax, eax
je 0x1800188e3
test byte [0x180067c73], 4
je 0x1800188e3
lea r9, str.TLS_message_missing__u_bytes_of_data
jmp 0x18001881c
mov ecx, r12d
sub ecx, 0x90316
je 0x180018854
cmp ecx, 0x50
je 0x180018268
mov r13, qword [rsp + 0x70]
mov rax, qword [rbp + 0xd0]
test rax, rax
je 0x180018495
cmp dword [rax], 2
jae 0x180018461
test byte [0x180067c75], 1
je 0x180018495
mov r8, qword [rbx + 0x40]
lea r9, str.TLS_alert_message_received__invalid_
lea rdx, [0x180056b58]
call fcn.180041678
jmp 0x180018495
mov rax, qword [rax + 8]
movzx ecx, byte [rax + 1]
mov word [rdi + 0x10], cx
test byte [0x180067c75], 1
je 0x180018495
mov r8, qword [rbx + 0x40]
lea rax, str.TLS_alert_message_received
mov r9d, ecx
mov qword [rsp + 0x20], rax
lea rdx, [0x180056aa8]
call fcn.180042260
mov dword [r13], 0
test byte [0x180067c75], 1
je 0x1800184c5
lea rax, str.Accept_InitializeSecurityContext
mov r9d, r12d
mov r8, qword [rbx + 0x40]
lea rdx, [0x180056aa8]
mov qword [rsp + 0x20], rax
call fcn.180042260
bts esi, 0xf
jmp 0x1800188e3
mov rax, qword [r14 + 8]
movzx ecx, byte [rax + 1]
mov word [rdi + 0x10], cx
test byte [0x180067c75], 1
je 0x1800184c5
mov r9d, ecx
lea rax, str.TLS_alert_message_received
jmp 0x1800184b0
mov rax, qword [rbp - 0x78]
test rax, rax
je 0x18001850c
cmp dword [rax], 0
jbe 0x18001850c
mov eax, dword [r13 + 0x10]
mov r13, qword [rsp + 0x70]
sub dword [r13], eax
jmp 0x180018511
mov r13, qword [rsp + 0x70]
test byte [0x180067c73], 4
je 0x180018558
mov eax, dword [r13]
lea r9, str.Consumed__u_bytes
mov edx, 0x80
mov dword [rsp + 0x20], eax
mov r8, 0xffffffffffffffff
lea rcx, [rbp + 0x140]
call fcn.180042088
mov r8, qword [rbx + 0x40]
lea r9, [rbp + 0x140]
lea rdx, [0x180056cc8]
call fcn.180041678
movzx r15d, byte [rsp + 0x60]
xor r14b, r14b
test r15b, r15b
je 0x18001865d
nop word [rax + rax]
movzx eax, r14b
or esi, 4
mov r9, qword [rbp + rax*8 + 0x118]
cmp dword [r9 + 0x188], 3
jne 0x1800185a8
lea r8, [0x180057274]
mov edx, 0x86f
lea rcx, str.D:workspace_work1_s_srcmsquic_srcplatform_tls_schannel.c
call fcn.18004b2ec
int 0x2c
jmp 0x18001864b
mov eax, dword [rdi + 8]
test eax, eax
jne 0x1800185e6
lea rax, [rdi + 0x58]
mov edx, 2
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180018928
test al, al
je 0x180018659
mov dword [rdi + 8], 2
test byte [0x180067c73], 4
je 0x18001864b
lea r9, str.Reading_Handshake_data_starts_now
jmp 0x18001861c
cmp eax, 2
jne 0x18001864b
lea rax, [rdi + 0x60]
mov edx, 3
mov rcx, rbx
mov qword [rsp + 0x20], rax
call fcn.180018928
test al, al
je 0x180018659
mov dword [rdi + 8], 3
test byte [0x180067c73], 4
je 0x18001864b
lea r9, str.Reading_1_RTT_data_starts_now
mov r8, 0xffffffffffffffff
lea rcx, [rbp + 0x140]
mov edx, 0x80
call fcn.180042088
mov r8, qword [rbx + 0x40]
lea r9, [rbp + 0x140]
lea rdx, [0x180056cc8]
call fcn.180041678
inc r14b
cmp r14b, r15b
jb 0x180018570
jmp 0x18001865d
bts esi, 0xf
movzx r12d, byte [rsp + 0x61]
xor r15b, r15b
test r12b, r12b
je 0x1800187b5
nop
movzx eax, r15b
or esi, 8
mov r14, qword [rbp + rax*8 + 0x128]
cmp dword [r14 + 0x188], 3
jne 0x1800186a8
lea r8, [0x180057274]
mov edx, 0x8bd
lea rcx, str.D:workspace_work1_s_srcmsquic_srcplatform_tls_schannel.c
call fcn.18004b2ec
int 0x2c
jmp 0x1800187a3
mov eax, dword [rdi + 0xc]
test eax, eax
jne 0x180018710
lea rax, [rdi + 0x88]
mov r9, r14
mov edx, 2
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.180018928
test al, al
je 0x1800187b1
movzx edx, word [r14 + 0x184]
add edx, dword [rdi + 0x18]
mov dword [rdi + 0x1c], edx
movzx eax, word [r14 + 0x186]
add eax, dword [rdi + 0x18]
mov dword [rdi + 0x20], eax
mov dword [rdi + 0xc], 2
test byte [0x180067c73], 4
je 0x1800187a3
mov dword [rsp + 0x20], edx
lea r9, str.Writing_Handshake_data_starts_at__u
jmp 0x180018774
cmp eax, 2
jne 0x1800187a3
test byte [rbx], 1
jne 0x180018736
mov eax, dword [rdi + 0x20]
cmp dword [rdi + 0x1c], eax
jne 0x180018736
movzx eax, word [r14 + 0x186]
add eax, dword [rdi + 0x18]
mov dword [rdi + 0x20], eax
jmp 0x1800187a3
lea rax, [rdi + 0x90]
mov r9, r14
mov edx, 3
mov qword [rsp + 0x20], rax
mov rcx, rbx
call fcn.180018928
test al, al
je 0x1800187b1
mov dword [rdi + 0xc], 3
test byte [0x180067c73], 4
je 0x1800187a3
mov eax, dword [rdi + 0x20]
lea r9, str.Writing_1_RTT_data_starts_at__u
mov dword [rsp + 0x20], eax
mov r8, 0xffffffffffffffff
lea rcx, [rbp + 0x140]
mov edx, 0x80
call fcn.180042088
mov r8, qword [rbx + 0x40]
lea r9, [rbp + 0x140]
lea rdx, [0x180056cc8]
call fcn.180041678
inc r15b
cmp r15b, r12b
jb 0x180018670
jmp 0x1800187b5
bts esi, 0xf
mov r14, qword [rsp + 0x68]
test r14, r14
je 0x1800188e3
cmp dword [r14], 0
jbe 0x1800188e3
or byte [rbx], 2
or esi, 2
mov eax, dword [r14]
cmp eax, 0xffff
jbe 0x1800187fb
lea r8, str.OutputTokenBuffer__cbBuffer___0xFFFF
mov edx, 0x92d
lea rcx, str.D:workspace_work1_s_srcmsquic_srcplatform_tls_schannel.c
call fcn.18004b2ec
int 0x2c
movzx eax, word [r14]
add word [rdi + 0x12], ax
mov eax, dword [r14]
add dword [rdi + 0x18], eax
test byte [0x180067c73], 4
je 0x1800188e3
mov eax, dword [r14]
lea r9, str.Produced__u_bytes
mov edx, 0x80
mov dword [rsp + 0x20], eax
mov r8, 0xffffffffffffffff
lea rcx, [rbp + 0x140]
call fcn.180042088
mov r8, qword [rbx + 0x40]
lea r9, [rbp + 0x140]
lea rdx, [0x180056cc8]
call fcn.180041678
jmp 0x1800188e3
test r11, r11
jne 0x180018872
test byte [0x180067c75], 1
je 0x180017f73
lea r9, str.QUIC_TP_wasnt_present
jmp 0x180017f63
mov rax, qword [rbx + 0x20]
mov r8, qword [r11 + 8]
movzx edx, word [r11]
add r8, 4
mov rcx, qword [rbx + 0x40]
sub dx, 4
mov rax, qword [rax + 0x18]
call qword [0x18004e538]
test al, al
jne 0x1800188b1
test byte [0x180067c75], 1
je 0x180017f73
lea r9, str.Process_QUIC_TP
jmp 0x180017f63
or byte [rbx], 4
mov esi, 1
mov r8, qword [rbx + 0x878]
test r8, r8
je 0x1800188e3
mov rcx, qword [0x180069238]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
xor eax, eax
mov qword [rbx + 0x878], rax
mov dword [rbx + 0x870], eax
mov r8, qword [rsp + 0x78]
mov r15, qword [rsp + 0x318]
test r8, r8
je 0x180018904
mov rcx, qword [0x180069238]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov eax, esi
mov rcx, qword [rbp + 0x1c0]
xor rcx, rsp
call fcn.180028c10
add rsp, 0x2d0
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret