Function at 0x14000d4cb
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, 0x178
movaps xmmword [rsp + 0x160], xmm6
mov rdi, rdx
mov qword [rsp + 0x68], rcx
lea rax, [rdx + 0xe4]
mov qword [rsp + 0x138], rax
lea rax, [rdx + 8]
mov qword [rsp + 0x110], rax
lea rax, [rdx + 0x20]
mov qword [rsp + 0x130], rax
lea rax, [rdx + 0xa0]
mov qword [rsp + 0x140], rax
xorps xmm6, xmm6
mov r12, qword [sym.imp.secur32.dll_FreeContextBuffer]
movzx eax, byte [rdi + 0xe0]
test rax, rax
jne 0x14000e05e
mov bpl, byte [rdi + 0xe1]
mov r13b, byte [rdi + 0xe2]
mov sil, byte [rdi + 0xe3]
mov bl, byte [rdi + 0xe4]
lea rcx, [rsp + 0xc0]
mov rdx, rdi
call fcn.14000e2ff
cmp qword [rsp + 0xc0], 0
jne 0x14000e086
cmp qword [rsp + 0xc8], 0
jne 0x14000d588
test bpl, bpl
je 0x14000d598
cmp byte [rdi + 0xe0], 0
jne 0x14000d598
mov byte [rdi + 0xe1], 0
or bl, sil
jne 0x14000d5aa
cmp byte [rdi + 0xfa], 0
je 0x14000da3a
test r13b, r13b
je 0x14000db49
cmp qword [rdi + 0x58], 0
je 0x14000d5e8
lea rcx, [rsp + 0xc0]
mov rdx, rdi
call fcn.14000e3ab
cmp qword [rsp + 0xc0], 0
jne 0x14000e086
cmp qword [rsp + 0xc8], 0
je 0x14000e0a3
mov rsi, qword [rdi + 0x98]
mov ecx, 0x20
mov edx, 8
call fcn.140003a50
test rax, rax
je 0x14000e218
mov rdx, qword [rdi + 0x90]
cmp rdx, rsi
jb 0x14000e229
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 + 0x88], rbp
mov eax, 2
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rax
mov rdx, qword [rdi + 0xc8]
test rdx, rdx
je 0x14000d6d3
mov r8, qword [rdi + 0xd8]
lea rcx, [rsp + 0xa0]
call fcn.140022b60
mov r15, qword [rsp + 0xa8]
test r15, r15
je 0x14000d6df
mov r13, qword [rsp + 0xb0]
mov ebx, dword [rsp + 0xa0]
mov edx, 2
lea rcx, [rsp + 0x88]
call fcn.14002291c
mov rbp, qword [rsp + 0x88]
mov rsi, qword [rsp + 0x98]
mov rax, rsi
shl rax, 4
mov dword [rbp + rax], ebx
mov dword [rbp + rax + 4], 0x12
mov qword [rbp + rax + 8], r13
inc rsi
mov qword [rsp + 0x98], rsi
jmp 0x14000d6e7
mov qword [rsp + 0xa8], 0
mov esi, 2
xor r15d, r15d
xor ecx, ecx
mov dword [rsp + 0x120], ecx
mov dword [rsp + 0x124], esi
mov qword [rsp + 0x128], rbp
movabs rax, 0x200000000
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], rcx
movabs rax, 0x1100000000
mov qword [rsp + 0xd0], rax
lea rax, [rsp + 0xc8]
mov qword [rax + 0x20], rcx
movups xmmword [rax + 0x10], xmm6
movabs rax, 0x300000000
mov qword [rsp + 0xf8], rax
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x100], rax
mov dword [rsp + 0x10c], ecx
cmp byte [rdi + 0xfa], 0
je 0x14000d7dc
cmp byte [rdi + 0xfb], 0
mov edx, 0
mov rcx, qword [rsp + 0x110]
cmove rdx, rcx
mov rax, qword [rdi]
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x70], xmm0
lea rax, [rsp + 0x10c]
mov qword [rsp + 0x38], rax
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x30], rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x40], 0
mov dword [rsp + 0x20], 0
lea rcx, [rsp + 0x70]
lea r8, [rsp + 0x120]
mov r9d, 0x1011c
call qword [sym.imp.secur32.dll_AcceptSecurityContext]
jmp 0x14000d857
mov rax, qword [rdi + 0x28]
cmp byte [rdi + 0xf8], 0
mov r8, rax
cmove r8, rcx
test rax, rax
cmove r8, rax
mov rax, qword [rdi]
movups xmm0, xmmword [rax + 0x10]
movups xmmword [rsp + 0x70], xmm0
mov qword [rsp + 0x58], rcx
lea rax, [rsp + 0x10c]
mov qword [rsp + 0x50], rax
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x40], rcx
mov dword [rsp + 0x38], ecx
lea rax, [rsp + 0x120]
mov qword [rsp + 0x30], rax
mov dword [rsp + 0x28], ecx
mov dword [rsp + 0x20], ecx
lea rcx, [rsp + 0x70]
mov rdx, qword [rsp + 0x110]
mov r9d, 0x9819c
call qword [sym.imp.secur32.dll_InitializeSecurityContextW]
mov r13d, eax
xor ebx, ebx
mov rcx, qword [rsp + rbx + 0xd8]
test rcx, rcx
je 0x14000d86c
call r12
add rbx, 0x10
cmp rbx, 0x20
jne 0x14000d85c
cmp r13d, 0x80090318
je 0x14000d906
test r13d, r13d
je 0x14000d927
cmp r13d, 0x90312
jne 0x14000e10e
mov byte [rdi + 0xfb], 0
cmp rsi, 1
jbe 0x14000e1f0
cmp dword [rbp + 0x14], 5
mov rdx, qword [rdi + 0x98]
jne 0x14000d8bd
mov eax, dword [rbp + 0x10]
sub rdx, rax
mov esi, dword [rsp + 0xc0]
mov rbx, qword [rsp + 0xc8]
mov rcx, rdi
call fcn.14000e4c2
xor eax, eax
cmp qword [rdi + 0x98], 0
sete al
mov qword [rdi + 0x58], rax
add rsi, rbx
mov rcx, qword [rsp + 0x140]
mov rdx, rbx
mov r8, rsi
call fcn.140022425
mov rcx, rbx
call r12
jmp 0x14000d9d8
cmp rsi, 1
jbe 0x14000e1f9
mov eax, 1
cmp dword [rbp + 0x14], 4
jne 0x14000d91e
mov eax, dword [rbp + 0x10]
mov qword [rdi + 0x58], rax
jmp 0x14000d9d8
cmp rsi, 1
jbe 0x14000e202
cmp dword [rbp + 0x14], 5
mov rdx, qword [rdi + 0x98]
jne 0x14000d944
mov eax, dword [rbp + 0x10]
sub rdx, rax
mov rsi, qword [rsp + 0xc8]
test rsi, rsi
je 0x14000d95f
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x11c], eax
mov rcx, rdi
call fcn.14000e4c2
mov rax, qword [rdi + 0x98]
xor ecx, ecx
test rax, rax
sete cl
mov qword [rdi + 0x58], rcx
test rsi, rsi
cmovne r14, rsi
je 0x14000d9ab
mov r8d, dword [rsp + 0x11c]
add r8, r14
mov rcx, qword [rsp + 0x140]
mov rdx, r14
call fcn.140022425
mov rcx, r14
call r12
mov rax, qword [rdi + 0x98]
test rax, rax
je 0x14000d9c8
lea rcx, [rsp + 0x70]
mov rdx, rdi
call fcn.14000e554
cmp byte [rsp + 0x70], 0
jne 0x14000e118
cmp byte [rdi + 0xe0], 0
jne 0x14000d9d8
mov byte [rdi + 0xe2], 0
test r15, r15
je 0x14000d9fd
mov r8, qword [rsp + 0xb0]
cmp r15, 0x11
jb 0x14000d9ef
mov r8, qword [r8 - 8]
mov rcx, qword [0x14005fc80]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x14000d52e
mov ecx, 0x10
mul rcx
test rax, rax
je 0x14000d52e
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x14005fc80]
xor edx, edx
call sub.kernel32.dll_HeapFree
jmp 0x14000d52e
mov qword [rsp + 0xa0], 0
mov rcx, qword [rsp + 0x110]
mov edx, 0x53
lea r8, [rsp + 0xa0]
call qword [sym.imp.secur32.dll_QueryContextAttributesW]
mov rdx, rax
shl rdx, 0x20
or rdx, 2
test eax, eax
jne 0x14000da78
mov rdx, qword [rsp + 0xa0]
je 0x14000daa9
mov qword [rsp + 0xc0], 1
mov qword [rsp + 0xc8], rdx
test r13b, r13b
je 0x14000e19e
lea rcx, [rsp + 0xc8]
call fcn.1400012b9
jmp 0x14000d5b3
mov rbx, qword [rdx + 0x20]
test rbx, rbx
mov qword [rsp + 0x80], rdx
je 0x14000dbec
mov rcx, rbx
call qword [sym.imp.crypt32.dll_CertDuplicateStore]
mov rbp, rax
cmp qword [rdi + 0x18], 0
je 0x14000dc21
mov qword [rsp + 0x148], rbx
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0xc0], rax
mov qword [rsp + 0xc8], 0
lea rcx, [rsp + 0xc0]
call fcn.140022b06
test rax, rax
je 0x14000dbfd
mov r15, rdx
mov qword [rsp + 0xa0], rdx
mov rcx, rbp
lea rdx, [rsp + 0xa0]
call fcn.140022ac0
mov rbx, rdx
test rax, rax
jne 0x14000e0c5
mov rcx, rbx
mov rbx, qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
call rbx
mov rcx, r15
call rbx
jmp 0x14000daf9
mov al, 2
test sil, sil
jne 0x14000dbb6
movaps xmmword [rsp + 0xc0], xmm6
mov dword [rsp + 0xd0], 0
mov rcx, qword [rsp + 0x110]
mov edx, 4
lea r8, [rsp + 0xc0]
call qword [sym.imp.secur32.dll_QueryContextAttributesW]
test eax, eax
jne 0x14000e1e3
mov eax, dword [rsp + 0xc0]
mov dword [rsp + 0x118], eax
mov rax, qword [rsp + 0xc4]
mov qword [rsp + 0x158], rax
mov rax, qword [rsp + 0xcc]
mov qword [rsp + 0x150], rax
mov al, 1
mov byte [rdi + 0xe0], al
mov eax, dword [rsp + 0x118]
mov dword [rdi + 0xe4], eax
mov rax, qword [rsp + 0x158]
mov qword [rdi + 0xe8], rax
mov rax, qword [rsp + 0x150]
mov qword [rdi + 0xf0], rax
jmp 0x14000d52e
mov rbp, qword [rdi + 0x18]
test rbp, rbp
je 0x14000dbf9
mov rbp, qword [rdi + 0x20]
xor ecx, ecx
jmp 0x14000dc36
cmp qword [rsp + 0xc8], 0
je 0x14000dc16
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
cmp qword [rsp + 0x148], 0
je 0x14000dc2c
mov rcx, rbp
xor edx, edx
call qword [sym.imp.crypt32.dll_CertCloseStore]
xor ecx, ecx
mov rdx, qword [rsp + 0x80]
movaps xmmword [rsp + 0xc0], xmm6
mov qword [rsp + 0xd0], 0
mov dword [rsp + 0xc0], 0x20
mov dword [rsp + 0xc8], 1
lea rax, [0x14005fb80]
mov qword [rsp + 0xf8], rax
mov rax, qword [0x14005fb98]
cmp rax, 3
jne 0x14000df6c
mov rax, qword [rsp + 0xf8]
mov r15, qword [rax]
lea rax, [0x14005fba0]
mov qword [rsp + 0xf8], rax
mov rax, qword [0x14005fbb8]
cmp rax, 3
jne 0x14000dfbc
mov rax, qword [rsp + 0xf8]
mov rbx, qword [rax]
lea rax, [0x14005fbc0]
mov qword [rsp + 0xf8], rax
mov rax, qword [0x14005fbd8]
cmp rax, 3
jne 0x14000e00c
mov rax, qword [rsp + 0xf8]
mov rax, qword [rax]
mov qword [rsp + 0xa0], r15
mov qword [rsp + 0xa8], rbx
mov qword [rsp + 0xb0], rax
mov dword [rsp + 0xd0], 3
lea rax, [rsp + 0xa0]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0x88], rcx
lea rax, [rsp + 0x88]
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x30], rcx
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
mov dword [rsp + 0x28], 0xc0000001
xor ecx, ecx
xor r8d, r8d
mov r9, rbp
call qword [sym.imp.crypt32.dll_CertGetCertificateChain]
test eax, eax
je 0x14000e1a8
mov r15, qword [rsp + 0x88]
mov qword [rsp + 0x120], r15
mov ebx, 0xf00
cmp dword [rdi + 0x18], 1
jne 0x14000de01
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x70], rax
lea rcx, [rsp + 0xc0]
lea rdx, [rsp + 0x120]
call fcn.1400229cc
mov ebx, 0xf00
cmp dword [rsp + 0xc0], 1
jne 0x14000de01
movups xmm0, xmmword [rsp + 0xc8]
movups xmmword [rsp + 0x88], xmm0
lea rax, [rsp + 0x88]
mov qword [rsp + 0xa0], rax
mov qword [rsp + 0xa8], 0
lea rcx, [rsp + 0xa0]
lea rdx, [rsp + 0x70]
call fcn.14000e782
movzx ebx, al
shl ebx, 4
or ebx, 0xf00
mov rcx, qword [rsp + 0x90]
call qword [sym.imp.crypt32.dll_CertFreeCertificateChain]
lea rax, [rsp + 0x90]
movups xmmword [rax], xmm6
movabs rax, 0x200000018
mov qword [rsp + 0x88], rax
mov rax, qword [rdi + 0x28]
test rax, rax
je 0x14000de38
cmp byte [rdi + 0xf9], 0
jne 0x14000de38
mov qword [rsp + 0x98], rax
mov dword [rsp + 0x70], 0x10
mov dword [rsp + 0x74], ebx
lea rax, [rsp + 0x88]
mov qword [rsp + 0x78], rax
movaps xmmword [rsp + 0xa0], xmm6
mov qword [rsp + 0xb0], 0
mov dword [rsp + 0xa0], 0x18
mov ecx, 4
mov rdx, r15
lea r8, [rsp + 0x70]
lea r9, [rsp + 0xa0]
call qword [sym.imp.crypt32.dll_CertVerifyCertificateChainPolicy]
test eax, eax
je 0x14000e1bd
mov eax, dword [rsp + 0xa4]
test rax, rax
je 0x14000dec0
mov rbx, rax
shl rbx, 0x20
or rbx, 2
mov qword [rsp + 0xf8], rbx
mov rdx, qword [rdi + 0x40]
test rdx, rdx
jne 0x14000dedb
jmp 0x14000e1cd
mov qword [rsp + 0xf8], 0
mov rdx, qword [rdi + 0x40]
test rdx, rdx
je 0x14000df61
xor ebx, ebx
mov rbp, qword [rdi + 0x48]
mov rcx, qword [rbp + 0x10]
add rcx, 0xf
and rcx, 0xfffffffffffffff0
add rcx, rdx
mov rdx, qword [rsp + 0xa8]
mov qword [rsp + 0xc0], r15
mov dword [rsp + 0xc8], eax
mov qword [rsp + 0xcc], rdx
lea rdx, [rsp + 0xc0]
call qword [rbp + 0x28]
mov rbp, rax
test rbx, rbx
je 0x14000df2d
lea rcx, [rsp + 0xf8]
call fcn.1400012b9
test rbp, rbp
jne 0x14000e1db
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
cmp byte [rdi + 0xe0], 0
jne 0x14000d5aa
mov rax, qword [rsp + 0x138]
mov byte [rax], 1
jmp 0x14000d5aa
mov rcx, r15
call qword [sym.imp.crypt32.dll_CertFreeCertificateChain]
jmp 0x14000df36
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x88], rax
lea rax, str.D:code.code_fire.cargo_registry_srcgithub.com_1ecc6299db9ec823lazy_static_1.4.0_srcinline_lazy.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14005fb98]
mov rbx, rdx
xor edx, edx
lea r8, [rsp + 0x88]
lea r9, [0x14004f280]
call fcn.140042f60
mov rdx, rbx
xor ecx, ecx
jmp 0x14000dc80
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x88], rax
lea rax, str.D:code.code_fire.cargo_registry_srcgithub.com_1ecc6299db9ec823lazy_static_1.4.0_srcinline_lazy.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14005fbb8]
mov rbx, rdx
xor edx, edx
lea r8, [rsp + 0x88]
lea r9, [0x14004f2d0]
call fcn.140042f60
mov rdx, rbx
xor ecx, ecx
jmp 0x14000dcab
lea rax, [rsp + 0xf8]
mov qword [rsp + 0x70], rax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x88], rax
lea rax, str.D:code.code_fire.cargo_registry_srcgithub.com_1ecc6299db9ec823lazy_static_1.4.0_srcinline_lazy.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14005fbd8]
xor edx, edx
lea r8, [rsp + 0x88]
lea r9, [0x14004f2a8]
call fcn.140042f60
mov rdx, qword [rsp + 0x80]
xor ecx, ecx
jmp 0x14000dcd6
cmp eax, 1
jne 0x14000e090
mov rcx, qword [rsp + 0x138]
mov eax, dword [rcx + 0x10]
mov rsi, qword [rsp + 0x68]
mov dword [rsi + 0x18], eax
movups xmm0, xmmword [rcx]
movups xmmword [rsi + 8], xmm0
mov dword [rsi + 4], 1
jmp 0x14000e09c
mov rax, qword [rsp + 0xc8]
jmp 0x14000e0b7
mov rsi, qword [rsp + 0x68]
mov dword [rsi + 4], 0
xor eax, eax
jmp 0x14000e180
lea rdx, str.unexpected_EOF_during_handshakeassertion_failed:_size___nread
mov r8d, 0x1f
mov cl, 0x25
call fcn.140022480
mov rsi, qword [rsp + 0x68]
mov qword [rsi + 8], rax
jmp 0x14000e17b
mov rcx, r15
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
cmp qword [rsp + 0xc8], 0
je 0x14000e0e7
mov rcx, qword [rsp + 0xd0]
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov rcx, rbp
xor edx, edx
call qword [sym.imp.crypt32.dll_CertCloseStore]
mov rsi, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x80]
call qword [sym.imp.crypt32.dll_CertFreeCertificateContext]
mov rdx, rbx
mov qword [rsi + 8], rdx
jmp 0x14000e17b
shl r13, 0x20
or r13, 2
jmp 0x14000e11d
mov r13, qword [rsp + 0x78]
test r15, r15
mov rsi, qword [rsp + 0x68]
je 0x14000e147
mov r8, qword [rsp + 0xb0]
cmp r15, 0x11
jb 0x14000e139
mov r8, qword [r8 - 8]
mov rcx, qword [0x14005fc80]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov rax, qword [rsp + 0x90]
test rax, rax
je 0x14000e177
mov ecx, 0x10
mul rcx
test rax, rax
je 0x14000e177
mov r8, qword [rsp + 0x88]
mov rcx, qword [0x14005fc80]
xor edx, edx
call sub.kernel32.dll_HeapFree
mov qword [rsi + 8], r13
mov eax, 1
mov dword [rsi], eax
movaps xmm6, xmmword [rsp + 0x160]
add rsp, 0x178
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov rsi, qword [rsp + 0x68]
jmp 0x14000e108
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
shl rbx, 0x20
or rbx, 2
jmp 0x14000e0f2
call qword [sym.imp.kernel32.dll_GetLastError]
mov ebx, eax
shl rbx, 0x20
or rbx, 2
mov rcx, r15
call qword [sym.imp.crypt32.dll_CertFreeCertificateChain]
jmp 0x14000e0f2
mov rbx, rbp
jmp 0x14000e0f2
shl rax, 0x20
or rax, 2
jmp 0x14000e0b7
lea r8, [0x14004dc18]
jmp 0x14000e209
lea r8, [0x14004dc00]
jmp 0x14000e209
lea r8, [0x14004dc30]
mov ecx, 1
mov rdx, rsi
call fcn.140042260
ud2
mov ecx, 0x20
mov edx, 8
call fcn.1400421c0
ud2
mov rcx, rsi
call fcn.140042330
ud2