Function at 0x1400774b7
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xc8
mov rdi, rdx
mov rsi, rcx
lea rbx, [rsp + 0x28]
mov rcx, rbx
call sym.__u16_as_rustls::msgs::codec::Codec_::read::h1466865f2614c6fe
mov al, byte [rbx]
cmp al, 0x14
jne 0x14007751c
lea rbx, [rsp + 0x28]
movzx r8d, word [rbx + 2]
mov rcx, rbx
mov rdx, rdi
call sym.rustls::msgs::codec::Reader::sub::hd9295320e3f127c0
cmp qword [rbx], 0
je 0x14007755c
mov rax, qword [rsp + 0x40]
mov qword [rsp + 0x70], rax
movups xmm0, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x60], xmm0
mov qword [rsi + 0x18], rax
movups xmmword [rsi + 8], xmm0
jmp 0x140077541
mov cl, byte [rsp + 0x29]
movzx edx, word [rsp + 0x2a]
mov r8d, dword [rsp + 0x3c]
mov dword [rsi + 0x1c], r8d
movups xmm0, xmmword [rsp + 0x2c]
movups xmmword [rsi + 0xc], xmm0
mov byte [rsi + 8], al
mov byte [rsi + 9], cl
mov word [rsi + 0xa], dx
mov qword [rsi], 1
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0x58], rsi
lea rcx, [rsp + 0x42]
mov rax, qword [rcx - 2]
movups xmm0, xmmword [rcx - 0x12]
lea r14, [rsp + 0xa0]
movaps xmmword [r14], xmm0
mov qword [r14 + 0x10], rax
lea rax, [rsp + 0x80]
mov qword [rax], 8
xorps xmm0, xmm0
movups xmmword [rax + 8], xmm0
mov edi, 8
lea r15, [rsp + 0x28]
xor r12d, r12d
mov rax, qword [rsp + 0xb0]
cmp rax, qword [rsp + 0xa8]
jae 0x14007796a
mov rcx, r15
mov rdx, r14
call sym.__rustls::msgs::enums::ExtensionType_as_rustls::msgs::codec::Codec_::read::h9b37aff154cedf2f
movzx eax, byte [rsp + 0x28]
cmp rax, 0x14
jne 0x1400779c0
movzx ebx, word [rsp + 0x2a]
movzx esi, word [rsp + 0x2c]
mov rcx, r15
mov rdx, r14
call sym.__u16_as_rustls::msgs::codec::Codec_::read::h1466865f2614c6fe
movzx eax, byte [rsp + 0x28]
cmp rax, 0x14
jne 0x140077990
movzx r8d, word [rsp + 0x2a]
mov rcx, r15
mov rdx, r14
call sym.rustls::msgs::codec::Reader::sub::hd9295320e3f127c0
cmp qword [rsp + 0x28], 0
mov r13, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
jne 0x140077a27
movzx edx, bx
mov qword [rsp + 0x60], r13
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], rbp
lea rax, [rdx - 5]
cmp rax, 0x1f
ja case.default.0x14007764b
lea rcx, [0x140111398]
movsxd rax, dword [rcx + rax*4]
add rax, rcx
jmp rax
mov r14w, 8
jmp 0x140077774
mov r14w, 1
test rdx, rdx
je 0x14007788e
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.rustls::msgs::base::Payload::read::h76da0e70d0c1e140
mov word [rsp + 0x42], si
mov r13, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
lea rcx, [rsp + 0x42]
mov eax, dword [rcx]
mov dword [rsp + 0x50], eax
movzx eax, word [rcx + 4]
mov word [rsp + 0x54], ax
mov r14w, 0xe
jmp 0x14007788e
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.__alloc::vec::Vec_T__as_rustls::msgs::codec::Codec_::read::h9571d0ea702c0f82
cmp qword [rsp + 0x28], 0
mov r13, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
jne 0x140077a27
xor r14d, r14d
jmp 0x14007788e
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.__alloc::vec::Vec_T__as_rustls::msgs::codec::Codec_::read::hd7db664ccb243795
cmp qword [rsp + 0x28], 0
mov r13, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov r14w, 4
jmp 0x140077854
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.__alloc::vec::Vec_T__as_rustls::msgs::codec::Codec_::read::h0abfbd224c2dfcf8
cmp qword [rsp + 0x28], 0
mov r13, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov r14w, 9
jmp 0x140077854
mov r14w, 7
jmp 0x140077774
mov r14w, 2
jmp 0x140077774
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.__u16_as_rustls::msgs::codec::Codec_::read::h1466865f2614c6fe
movzx eax, byte [rsp + 0x28]
cmp rax, 0x14
jne 0x140077990
movzx eax, word [rsp + 0x2a]
mov r14w, 6
jmp 0x14007788e
mov r14w, 0xd
jmp 0x14007788e
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.__rustls::enums::ProtocolVersion_as_rustls::msgs::codec::Codec_::read::h2e9d1e19957c90b2
movzx eax, byte [rsp + 0x28]
cmp rax, 0x14
jne 0x1400779c0
movzx eax, word [rsp + 0x2a]
movzx ecx, word [rsp + 0x2c]
mov r14w, 0xa
jmp 0x14007788e
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.__rustls::msgs::handshake::KeyShareEntry_as_rustls::msgs::codec::Codec_::read::h31a548773518fb23
movzx ebx, word [rsp + 0x40]
mov r13, qword [rsp + 0x28]
mov r15, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
cmp bx, 0xb
je 0x140077a27
lea rcx, [rsp + 0x42]
movzx eax, word [rcx + 4]
mov word [rsp + 0x54], ax
mov eax, dword [rcx]
mov dword [rsp + 0x50], eax
mov r14w, 5
jmp 0x14007788e
lea rcx, [rsp + 0x60]
call sym.rustls::msgs::codec::Reader::rest::h08233e3a4ca952c4
mov rsi, rax
mov rbp, rdx
mov rcx, rdx
xor edx, edx
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h45582a0f870d8a90
mov r13, rax
mov r15, rdx
mov rcx, rax
mov rdx, rsi
mov r8, rbp
call sym.memcpy
mov r14w, 0xb
jmp 0x14007788e
lea rcx, [rsp + 0x28]
lea rdx, [rsp + 0x60]
call sym.__rustls::msgs::base::PayloadU8_as_rustls::msgs::codec::Codec_::read::haf1aba8432804c86
cmp qword [rsp + 0x28], 0
mov r13, qword [rsp + 0x30]
mov r15, qword [rsp + 0x38]
mov rbp, qword [rsp + 0x40]
mov r14w, 3
je 0x14007788e
jmp 0x140077a27
lea rcx, [rsp + 0x60]
call sym.rustls::msgs::codec::Reader::rest::h08233e3a4ca952c4
mov rsi, rax
mov rbp, rdx
mov rcx, rdx
xor edx, edx
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h45582a0f870d8a90
mov r13, rax
mov r15, rdx
mov rcx, rax
mov rdx, rsi
mov r8, rbp
call sym.memcpy
mov r14w, 0xc
mov rdx, qword [rsp + 0x70]
mov word [rsp + 0x28], r14w
mov word [rsp + 0x2a], ax
mov word [rsp + 0x2c], cx
mov qword [rsp + 0x30], r13
mov qword [rsp + 0x38], r15
mov qword [rsp + 0x40], rbp
mov word [rsp + 0x48], bx
movzx eax, word [rsp + 0x54]
lea rcx, [rsp + 0x42]
mov word [rcx + 0xc], ax
mov eax, dword [rsp + 0x50]
mov dword [rcx + 8], eax
cmp rdx, qword [rsp + 0x68]
jb 0x1400779fe
movzx eax, word [rcx - 0x14]
mov ecx, dword [rcx - 0x18]
mov rsi, qword [rsp + 0x48]
mov dword [rsp + 0x78], ecx
mov word [rsp + 0x7c], ax
cmp r12, qword [rsp + 0x88]
jne 0x140077916
lea rcx, [rsp + 0x80]
mov rdx, r12
call sym.alloc::raw_vec::RawVec_T_A_::reserve_for_push::h0a36cfa2364238b8
mov rdi, qword [rsp + 0x80]
mov r12, qword [rsp + 0x90]
imul rax, r12, 0x28
mov word [rdi + rax], r14w
mov ecx, dword [rsp + 0x78]
mov dword [rdi + rax + 2], ecx
movzx ecx, word [rsp + 0x7c]
mov word [rdi + rax + 6], cx
mov qword [rdi + rax + 8], r13
mov qword [rdi + rax + 0x10], r15
mov qword [rdi + rax + 0x18], rbp
mov qword [rdi + rax + 0x20], rsi
inc r12
mov qword [rsp + 0x90], r12
mov qword [rsp + 0x98], r13
lea r14, [rsp + 0xa0]
lea r15, [rsp + 0x28]
jmp 0x1400775a1
mov rax, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x58]
mov qword [rcx + 0x18], rax
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rcx + 8], xmm0
and qword [rcx], 0
jmp 0x140077548
movzx ecx, byte [rsp + 0x29]
movzx r13d, word [rsp + 0x2a]
mov edx, dword [rsp + 0x2c]
shl rdx, 0x20
mov r15, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
or rdx, rax
shl rcx, 8
or rcx, rdx
shl r13, 0x10
or r13, rcx
jmp 0x140077a27
movzx ecx, byte [rsp + 0x29]
movzx edx, word [rsp + 0x2a]
movzx r13d, word [rsp + 0x2c]
movzx r8d, word [rsp + 0x2e]
shl r8, 0x30
mov r15, qword [rsp + 0x30]
mov rbp, qword [rsp + 0x38]
or r8, rax
shl rcx, 8
or rcx, r8
shl rdx, 0x10
or rdx, rcx
shl r13, 0x20
or r13, rdx
jmp 0x140077a27
mov r13, qword [rsp + 0x98]
and r13, 0xffffffffffffff00
or r13, 0xe
lea rcx, [rsp + 0x28]
call sym.core::ptr::drop_in_place_rustls::msgs::handshake::ServerExtension_::h99735e62ad664579
lea r15, str.ServerExtensionClientHelloPayload
mov ebp, 0xf
mov rax, qword [rsp + 0x58]
mov qword [rax + 8], r13
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], rbp
mov qword [rax], 1
lea rcx, [rsp + 0x80]
call sym.core::ptr::drop_in_place_alloc::vec::Vec_rustls::msgs::handshake::ServerExtension__::h653af006d152d2dd
jmp 0x140077548