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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x168
movaps xmmword [rsp + 0x150], xmm6
mov rdi, rdx
mov qword [rsp + 0x60], rcx
lea rax, [rdx + 0xe4]
mov qword [rsp + 0x118], rax
lea rax, [rdx + 8]
mov qword [rsp + 0xf0], rax
lea rax, [rdx + 0x20]
mov qword [rsp + 0x110], rax
lea rax, [rdx + 0xa0]
mov qword [rsp + 0x120], rax
xorps xmm6, xmm6
mov r13, qword [sym.imp.secur32.dll_FreeContextBuffer]
movzx eax, byte [rdi + 0xe0]
test rax, rax
jne 0x14000e6f3
mov bpl, byte [rdi + 0xe1]
mov r14b, byte [rdi + 0xe2]
mov sil, byte [rdi + 0xe3]
mov bl, byte [rdi + 0xe4]
lea rcx, [rsp + 0x90]
mov rdx, rdi
call fcn.14000e9f5
cmp qword [rsp + 0x90], 0
jne 0x14000e71c
cmp qword [rsp + 0x98], 0
jne 0x14000dc53
test bpl, bpl
je 0x14000dc63
cmp byte [rdi + 0xe0], 0
jne 0x14000dc63
mov byte [rdi + 0xe1], 0
or bl, sil
jne 0x14000dc75
cmp byte [rdi + 0xfa], 0
je 0x14000e10f
test r14b, r14b
je 0x14000e20e
cmp qword [rdi + 0x58], 0
je 0x14000dcb3
lea rcx, [rsp + 0x90]
mov rdx, rdi
call fcn.14000eaa8
cmp qword [rsp + 0x90], 0
jne 0x14000e71c
cmp qword [rsp + 0x98], 0
je 0x14000e732
mov rsi, qword [rdi + 0x98]
mov ecx, 0x20
mov edx, 8
call fcn.140003ac0
test rax, rax
je 0x14000e896
mov rdx, qword [rdi + 0x90]
cmp rdx, rsi
jb 0x14000e8a7
mov rbp, rax
mov rax, qword [rdi + 0x80]
mov dword [rbp], esi
mov dword [rbp + 4], 2
mov qword [rbp + 8], rax
movups xmmword [rbp + 0x10], xmm6
mov qword [rsp + 0x68], rbp
mov eax, 2
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
mov rdx, qword [rdi + 0xc8]
mov r15, r12
test rdx, rdx
je 0x14000dd8c
mov r8, qword [rdi + 0xd8]
lea rcx, [rsp + 0xd0]
call fcn.140022a49
mov r14, qword [rsp + 0xd8]
test r14, r14
je 0x14000dd98
mov rsi, qword [rsp + 0xe0]
mov ebx, dword [rsp + 0xd0]
mov edx, 2
lea rcx, [rsp + 0x68]
call fcn.1400227f0
mov rbp, qword [rsp + 0x68]
mov r12, qword [rsp + 0x78]
mov rax, r12
shl rax, 4
mov dword [rbp + rax], ebx
mov dword [rbp + rax + 4], 0x12
mov qword [rbp + rax + 8], rsi
inc r12
mov qword [rsp + 0x78], r12
jmp 0x14000dda1
mov qword [rsp + 0xd8], 0
mov r12d, 2
xor r14d, r14d
xor ecx, ecx
mov dword [rsp + 0x128], ecx
mov dword [rsp + 0x12c], r12d
mov qword [rsp + 0x130], rbp
movabs rax, 0x200000000
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rcx
movabs rax, 0x1100000000
mov qword [rsp + 0xa0], rax
lea rax, [rsp + 0x98]
mov qword [rax + 0x20], rcx
movups xmmword [rax + 0x10], xmm6
movabs rax, 0x300000000
mov qword [rsp + 0xc0], rax
lea rax, [rsp + 0x90]
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0xec], ecx
cmp byte [rdi + 0xfa], 0
je 0x14000dea0
cmp byte [rdi + 0xfb], 0
mov edx, 0
mov rcx, qword [rsp + 0xf0]
cmove rdx, rcx
mov rax, qword [rdi]
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x80], xmm0
lea rax, [rsp + 0xec]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x80]
lea r8, [rsp + 0x128]
mov r9d, 0x1011c
call qword [sym.imp.secur32.dll_AcceptSecurityContext]
jmp 0x14000df21
cmp byte [rdi + 0xf8], 0
mov rax, qword [rdi + 0x28]
mov r8, rax
cmove r8, rcx
test rax, rax
cmove r8, rax
mov rax, qword [rdi]
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x80], xmm0
mov qword [rsp + 0x58], rcx
lea rax, [rsp + 0xec]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], ecx
lea rax, [rsp + 0x128]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x80]
mov rdx, qword [rsp + 0xf0]
mov r9d, 0x9819c
call qword [sym.imp.secur32.dll_InitializeSecurityContextW]
mov ebx, eax
mov eax, 1
xor esi, esi
shl rax, 4
mov rcx, qword [rsp + rax + 0x98]
test rcx, rcx
je 0x14000df3e
call r13
mov eax, 2
test sil, 1
mov sil, 1
je 0x14000df2a
cmp ebx, 0x80090318
je 0x14000df8a
test ebx, ebx
je 0x14000dfae
cmp ebx, 0x90312
jne 0x14000e793
mov byte [rdi + 0xfb], 0
cmp r12, 1
jbe 0x14000e86e
cmp dword [rbp + 0x14], 5
jne 0x14000dfcd
mov rdx, qword [rdi + 0x98]
mov eax, dword [rbp + 0x10]
sub rdx, rax
jmp 0x14000dfd4
cmp r12, 1
jbe 0x14000e877
mov eax, 1
cmp dword [rbp + 0x14], 4
jne 0x14000dfa2
mov eax, dword [rbp + 0x10]
mov qword [rdi + 0x58], rax
mov r12, r15
jmp 0x14000e0c4
cmp r12, 1
jbe 0x14000e880
cmp dword [rbp + 0x14], 5
jne 0x14000e020
mov rdx, qword [rdi + 0x98]
mov eax, dword [rbp + 0x10]
sub rdx, rax
jmp 0x14000e027
mov rdx, qword [rdi + 0x98]
mov r12, r15
mov esi, dword [rsp + 0x90]
mov rbx, qword [rsp + 0x98]
mov rcx, rdi
call fcn.14000ebc6
xor eax, eax
cmp qword [rdi + 0x98], 0
sete al
mov qword [rdi + 0x58], rax
add rsi, rbx
mov rcx, qword [rsp + 0x120]
mov rdx, rbx
mov r8, rsi
call fcn.14002224e
mov rcx, rbx
call r13
jmp 0x14000e0c4
mov rdx, qword [rdi + 0x98]
mov r12, r15
mov rsi, qword [rsp + 0x98]
test rsi, rsi
je 0x14000e045
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0xfc], eax
mov rcx, rdi
call fcn.14000ebc6
mov rax, qword [rdi + 0x98]
xor ecx, ecx
test rax, rax
sete cl
mov qword [rdi + 0x58], rcx
test rsi, rsi
cmovne r12, rsi
je 0x14000e091
mov r8d, dword [rsp + 0xfc]
add r8, r12
mov rcx, qword [rsp + 0x120]
mov rdx, r12
call fcn.14002224e
mov rcx, r12
call r13
mov rax, qword [rdi + 0x98]
test rax, rax
je 0x14000e0b4
lea rcx, [rsp + 0x80]
mov rdx, rdi
call fcn.14000ec5f
cmp byte [rsp + 0x80], 0
jne 0x14000e79d
cmp byte [rdi + 0xe0], 0
jne 0x14000e0c4
mov byte [rdi + 0xe2], 0
test r14, r14
je 0x14000e0ea
mov r8, qword [rsp + 0xe0]
cmp r14, 0x11
jb 0x14000e0db
mov r8, qword [r8 - 8]
mov rcx, qword [0x140061c40]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x70], 0
je 0x14000dbf9
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x140061c40]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
jmp 0x14000dbf9
mov qword [rsp + 0xd0], 0
mov rcx, qword [rsp + 0xf0]
mov edx, 0x53
lea r8, [rsp + 0xd0]
call qword [sym.imp.secur32.dll_QueryContextAttributesW]
mov r15, rax
shl r15, 0x20
or r15, 2
test eax, eax
jne 0x14000e14d
mov r15, qword [rsp + 0xd0]
je 0x14000e17e
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x98], r15
test r14b, r14b
je 0x14000e7f2
lea rcx, [rsp + 0x98]
call fcn.14000e8b8
jmp 0x14000dc7e
mov rcx, qword [r15 + 0x20]
test rcx, rcx
je 0x14000e2b1
mov qword [rsp + 0x148], rcx
call qword [sym.imp.crypt32.dll_CertDuplicateStore]
mov rbp, rax
cmp qword [rdi + 0x18], 0
je 0x14000e2ef
mov qword [rsp + 0x100], r15
mov r15, r12
mov rax, qword [rsp + 0x110]
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], 0
lea rcx, [rsp + 0x90]
call fcn.1400229ef
test rax, rax
je 0x14000e2c0
mov r12, rdx
mov rcx, rbp
call fcn.1400229ac
mov rbx, rdx
test rax, rax
jne 0x14000e754
mov rcx, rbx
mov rbx, qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
call rbx
mov rcx, r12
call rbx
jmp 0x14000e1ce
mov al, 2
test sil, sil
jne 0x14000e27b
movaps xmmword [rsp + 0x90], xmm6
mov dword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0xf0]
mov edx, 4
lea r8, [rsp + 0x90]
call qword [sym.imp.secur32.dll_QueryContextAttributesW]
test eax, eax
jne 0x14000e861
mov eax, dword [rsp + 0x90]
mov dword [rsp + 0xf8], eax
mov rax, qword [rsp + 0x94]
mov qword [rsp + 0x140], rax
mov rax, qword [rsp + 0x9c]
mov qword [rsp + 0x138], rax
mov al, 1
mov byte [rdi + 0xe0], al
mov eax, dword [rsp + 0xf8]
mov dword [rdi + 0xe4], eax
mov rax, qword [rsp + 0x140]
mov qword [rdi + 0xe8], rax
mov rax, qword [rsp + 0x138]
mov qword [rdi + 0xf0], rax
jmp 0x14000dbf9
mov rbp, qword [rdi + 0x18]
test rbp, rbp
je 0x14000e2fa
mov rbp, qword [rdi + 0x20]
jmp 0x14000e2fa
cmp qword [rsp + 0x98], 0
mov r12, r15
je 0x14000e2dc
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
cmp qword [rsp + 0x148], 0
mov r15, qword [rsp + 0x100]
je 0x14000e2fa
mov rcx, rbp
xor edx, edx
call qword [sym.imp.crypt32.dll_CertCloseStore]
mov qword [rsp + 0x108], r12
movaps xmmword [rsp + 0x90], xmm6
mov qword [rsp + 0xa0], 0
mov dword [rsp + 0x90], 0x20
mov dword [rsp + 0x98], 1
lea rax, [0x140061b50]
mov qword [rsp + 0xc0], rax
mov rax, qword [0x140061b68]
cmp rax, 3
jne 0x14000e61b
mov rax, qword [rsp + 0xc0]
mov r12, qword [rax]
lea rax, [0x140061b70]
mov qword [rsp + 0xc0], rax
mov rax, qword [0x140061b88]
cmp rax, 3
jne 0x14000e663
mov rax, qword [rsp + 0xc0]
mov rbx, qword [rax]
lea rax, [0x140061b90]
mov qword [rsp + 0xc0], rax
mov rax, qword [0x140061ba8]
cmp rax, 3
jne 0x14000e6ab
mov rax, qword [rsp + 0xc0]
mov rax, qword [rax]
mov qword [rsp + 0xd0], r12
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rax
mov dword [rsp + 0xa0], 3
lea rax, [rsp + 0xd0]
mov qword [rsp + 0xa8], rax
xor ecx, ecx
mov qword [rsp + 0x68], rcx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0x90]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0xc0000001
xor ecx, ecx
mov rdx, r15
xor r8d, r8d
mov r9, rbp
call qword [sym.imp.crypt32.dll_CertGetCertificateChain]
test eax, eax
je 0x14000e7f9
mov r12, qword [rsp + 0x68]
mov ebx, 0xf00
cmp dword [rdi + 0x18], 1
jne 0x14000e4a5
lea rcx, [rsp + 0x90]
mov rdx, r12
call fcn.1400228b4
mov ebx, 0xf00
cmp dword [rsp + 0x90], 1
jne 0x14000e4a5
movups xmm0, xmmword [rsp + 0x98]
movups xmmword [rsp + 0x68], xmm0
lea rax, [rsp + 0x68]
mov qword [rsp + 0xd0], rax
mov qword [rsp + 0xd8], 0
lea rcx, [rsp + 0xd0]
mov rdx, qword [rsp + 0x110]
call fcn.14000ee9f
movzx ebx, al
shl ebx, 4
or ebx, 0xf00
mov rcx, qword [rsp + 0x70]
call qword [sym.imp.crypt32.dll_CertFreeCertificateChain]
lea rax, [rsp + 0x70]
movups xmmword [rax], xmm6
movabs rax, 0x200000018
mov qword [rsp + 0x68], rax
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x14000e4d3
cmp byte [rdi + 0xf9], 0
jne 0x14000e4d3
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x80], 0x10
mov dword [rsp + 0x84], ebx
lea rax, [rsp + 0x68]
mov qword [rsp + 0x88], rax
movaps xmmword [rsp + 0xd0], xmm6
mov qword [rsp + 0xe0], 0
mov dword [rsp + 0xd0], 0x18
mov ecx, 4
mov rdx, r12
lea r8, [rsp + 0x80]
lea r9, [rsp + 0xd0]
call qword [sym.imp.crypt32.dll_CertVerifyCertificateChainPolicy]
test eax, eax
je 0x14000e80b
mov eax, dword [rsp + 0xd4]
test rax, rax
je 0x14000e564
mov rbp, rax
shl rbp, 0x20
or rbp, 2
mov qword [rsp + 0xc0], rbp
mov rdx, qword [rdi + 0x40]
test rdx, rdx
jne 0x14000e57f
jmp 0x14000e81d
mov qword [rsp + 0xc0], 0
mov rdx, qword [rdi + 0x40]
test rdx, rdx
je 0x14000e608
xor ebp, ebp
mov rbx, qword [rdi + 0x48]
mov rcx, qword [rbx + 0x10]
add rcx, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rdx
mov rdx, qword [rsp + 0xd8]
mov qword [rsp + 0x90], r12
mov dword [rsp + 0x98], eax
mov qword [rsp + 0x9c], rdx
lea rdx, [rsp + 0x90]
call qword [rbx + 0x28]
mov rbx, rax
test rbp, rbp
je 0x14000e5d1
lea rcx, [rsp + 0xc0]
call fcn.14000e8b8
test rbx, rbx
mov r12, qword [rsp + 0x108]
jne 0x14000e829
mov rcx, r15
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
cmp byte [rdi + 0xe0], 0
jne 0x14000dc75
mov rax, qword [rsp + 0x118]
mov byte [rax], 1
jmp 0x14000dc75
mov rcx, r12
call qword [sym.imp.crypt32.dll_CertFreeCertificateChain]
mov r12, qword [rsp + 0x108]
jmp 0x14000e5e2
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x68], rax
lea rax, [0x140050828]
mov qword [rsp + 0x20], rax
lea rcx, [0x140061b68]
xor edx, edx
lea r8, [rsp + 0x68]
lea r9, [0x1400508e0]
call fcn.140043b10
jmp 0x14000e34c
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x68], rax
lea rax, [0x140050828]
mov qword [rsp + 0x20], rax
lea rcx, [0x140061b88]
xor edx, edx
lea r8, [rsp + 0x68]
lea r9, [0x140050930]
call fcn.140043b10
jmp 0x14000e377
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x80], rax
lea rax, [rsp + 0x80]
mov qword [rsp + 0x68], rax
lea rax, [0x140050828]
mov qword [rsp + 0x20], rax
lea rcx, [0x140061ba8]
xor edx, edx
lea r8, [rsp + 0x68]
lea r9, [0x1400508b8]
call fcn.140043b10
jmp 0x14000e3a2
cmp eax, 1
jne 0x14000e726
mov rcx, qword [rsp + 0x118]
mov eax, dword [rcx + 0x10]
mov rsi, qword [rsp + 0x60]
mov dword [rsi + 0x14], eax
movups xmm0, xmmword [rcx]
movups xmmword [rsi + 4], xmm0
mov eax, 1
jmp 0x14000e843
mov rax, qword [rsp + 0x98]
jmp 0x14000e746
xor eax, eax
mov rsi, qword [rsp + 0x60]
jmp 0x14000e843
lea rdx, str.unexpected_EOF_during_handshakeassertion_failed:_size___nread
mov r8d, 0x1f
mov cl, 0x25
call fcn.1400222a9
mov rsi, qword [rsp + 0x60]
mov qword [rsi + 8], rax
jmp 0x14000e83e
mov rcx, r12
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
cmp qword [rsp + 0x98], 0
je 0x14000e776
mov rcx, qword [rsp + 0xa0]
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov rcx, rbp
xor edx, edx
call qword [sym.imp.crypt32.dll_CertCloseStore]
mov rsi, qword [rsp + 0x60]
mov r15, qword [rsp + 0x100]
jmp 0x14000e82e
shl rbx, 0x20
or rbx, 2
jmp 0x14000e7a5
mov rbx, qword [rsp + 0x88]
test r14, r14
mov rsi, qword [rsp + 0x60]
je 0x14000e7d0
mov r8, qword [rsp + 0xe0]
cmp r14, 0x11
jb 0x14000e7c1
mov r8, qword [r8 - 8]
mov rcx, qword [0x140061c40]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
cmp qword [rsp + 0x70], 0
je 0x14000e7ec
mov r8, qword [rsp + 0x68]
mov rcx, qword [0x140061c40]
xor edx, edx
call qword [sym.imp.kernel32.dll_HeapFree]
mov qword [rsi + 8], rbx
jmp 0x14000e83e
mov rsi, qword [rsp + 0x60]
jmp 0x14000e83a
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
shl rbx, 0x20
or rbx, 2
jmp 0x14000e829
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
shl rbx, 0x20
or rbx, 2
jmp 0x14000e820
mov rbx, rbp
mov rcx, r12
call qword [sym.imp.crypt32.dll_CertFreeCertificateChain]
mov rsi, qword [rsp + 0x60]
mov rcx, r15
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov r15, rbx
mov qword [rsi + 8], r15
mov eax, 2
mov dword [rsi], eax
movaps xmm6, xmmword [rsp + 0x150]
add rsp, 0x168
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
shl rax, 0x20
or rax, 2
jmp 0x14000e746
lea r8, [0x14004ee38]
jmp 0x14000e887
lea r8, [0x14004ee20]
jmp 0x14000e887
lea r8, [0x14004ee50]
mov ecx, 1
mov rdx, r12
call fcn.140043070
ud2
mov ecx, 0x20
mov edx, 8
call fcn.140042f60
ud2
lea r8, [0x14004ee08]
mov rcx, rsi
call fcn.140043100
ud2