Function at 0x14004e310
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x358
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x2d0], 0xfffffffffffffffe
mov rdi, r9
mov rbx, r8
mov rsi, rcx
mov r12, qword [rbp + 0x340]
movzx eax, byte [rbp + 0x348]
movdqu xmm0, xmmword [r12]
movdqu xmm1, xmmword [r12 + 0x10]
movdqu xmmword [rdx + 0x30], xmm1
movdqu xmmword [rdx + 0x20], xmm0
movabs rcx, 0x14452474e574f44
cmp qword [rdx + 0x38], rcx
sete r9b
and r9b, al
mov qword [rbp + 0x2c0], rdx
je 0x14004e464
mov byte [rbp + 0x2bc], r9b
mov rdi, qword [rbx]
mov word [rbp + 0x128], 4
mov byte [rbp + 0x70], 0xd
mov byte [rbp + 0x72], 1
mov word [rbp + 0x100], 0x1f
cmp byte [rdi + 0x320], 2
sete r8b
mov byte [rbp + 0x2cf], 1
mov byte [rbp + 0x2ce], 0
lea rdx, [rbp + 0x70]
mov rcx, rdi
call fcn.14003d5e0
mov byte [rdi + 0x332], 1
mov word [rsi], 8
mov rax, qword [rbp + 0x2c0]
mov rax, qword [rax + 0xf0]
lock dec qword [rax]
jne 0x14004e402
mov rax, qword [rbp + 0x2c0]
lea rcx, [rax + 0xf0]
call fcn.140021860
mov rax, qword [rbp + 0x2c0]
cmp byte [rax + 0xe8], 2
setne al
test byte [rbp + 0x2bc], al
je 0x14004e42b
mov rax, qword [rbp + 0x2c0]
lea rcx, [rax + 0x60]
call fcn.14004d270
mov rdi, qword [rbp + 0x2c0]
test byte [rdi + 0x40], 1
je 0x14004e450
mov rdx, qword [rdi + 0x48]
test rdx, rdx
je 0x14004e450
mov rcx, qword [rdi + 0x50]
mov r8d, 1
call fcn.1400056d0
add rdi, 0xf8
mov rcx, rdi
call fcn.14004c890
jmp 0x14004e968
mov rax, qword [r12 + 0x58]
test rax, rax
je 0x14004e6b1
mov r15, qword [r12 + 0x50]
shl rax, 3
lea r13, [rax + rax*4]
xor eax, eax
mov ecx, 0x1f7f
jmp 0x14004e499
add rax, 0x28
cmp r13, rax
je 0x14004e4b7
movzx r8d, word [r15 + rax]
mov dl, 1
bt rcx, r8
jb 0x14004e490
cmp r8, 0xd
jne 0x14004e4b9
cmp word [r15 + rax + 0x20], 0x13
jne 0x14004e490
jmp 0x14004e4b9
xor edx, edx
mov rax, qword [rbp + 0x2c0]
lea r8, [rax + 0x130]
mov byte [rax + 0x130], dl
xor eax, eax
jmp 0x14004e4ed
add rax, 0x28
cmp r13, rax
je 0x14004e5b1
movzx ecx, word [r15 + rax]
lea rdx, [rcx - 3]
cmp rdx, 0xa
jb 0x14004e4e0
cmp ecx, 2
jb 0x14004e4e0
cmp ecx, 0xd
jne 0x14004e50f
cmp word [r15 + rax + 0x20], 0x14
jne 0x14004e4e0
mov rax, qword [0x1401f00c0]
mov rax, qword [rax]
mov r14b, 1
cmp rax, 4
jb 0x14004e5b4
mov qword [rbp + 0x2b0], r8
mov byte [rbp + 0x2bc], r9b
lea rax, [0x140151e60]
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], 1
mov qword [rbp + 0x70], 0
lea rax, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.8_src_agreement.rs
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x98], 0
mov byte [rbp + 0x2cf], 1
mov byte [rbp + 0x2ce], 0
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0x70]
mov edx, 4
mov r9d, 0x5a
call fcn.1400d6280
movzx r9d, byte [rbp + 0x2bc]
mov r8, qword [rbp + 0x2b0]
jmp 0x14004e5b4
xor r14d, r14d
xor eax, eax
mov ecx, 0x1eff
jmp 0x14004e5cd
add rax, 0x28
cmp r13, rax
je 0x14004e696
movzx edx, word [r15 + rax]
bt rcx, rdx
jb 0x14004e5c0
cmp rdx, 0xd
jne 0x14004e5e7
cmp word [r15 + rax + 0x20], 5
jne 0x14004e5c0
mov rax, qword [0x1401f00c0]
mov rax, qword [rax]
mov r13b, 1
cmp rax, 4
jb 0x14004e699
mov qword [rbp + 0x2b0], r8
mov r15b, r9b
lea rax, str.Server_may_staple_OCSP_response
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], 1
mov qword [rbp + 0x70], 0
lea rax, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.8_src_agreement.rs
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x98], 0
mov byte [rbp + 0x2cf], 1
mov byte [rbp + 0x2ce], 0
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0x70]
mov edx, 4
mov r9d, 0x66
call fcn.1400d6280
mov rdx, qword [rbp + 0x2c0]
mov r9d, r15d
mov r8, qword [rbp + 0x2b0]
mov r15b, 1
cmp byte [rdx + 0xe8], 2
jne 0x14004e6d5
jmp 0x14004e852
xor r13d, r13d
mov rdx, qword [rbp + 0x2c0]
mov r15b, 1
cmp byte [rdx + 0xe8], 2
jne 0x14004e6d5
jmp 0x14004e852
lea r8, [rdx + 0x130]
mov byte [rdx + 0x130], 0
xor r14d, r14d
xor r13d, r13d
mov r15b, 1
cmp byte [rdx + 0xe8], 2
je 0x14004e852
mov qword [rbp + 0x2b0], r8
mov byte [rbp + 0x2bc], r9b
add rdx, 0x60
lea rcx, [rbp - 0x40]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbp - 0x20]
cmp rax, qword [r12 + 0x40]
jne 0x14004e831
lea r15, [r12 + 0x20]
test rax, rax
je 0x14004e97f
lea rcx, [rax - 0x21]
cmp rcx, 0xffffffffffffffe0
jb 0x14004eecc
cmp rax, 8
jae 0x14004e730
xor edx, edx
xor ecx, ecx
jmp 0x14004e810
cmp rax, 0x10
jae 0x14004e79c
xor edx, edx
xor ecx, ecx
mov r8, rcx
mov rcx, rax
and rcx, 0xfffffffffffffff8
movzx edx, dl
movd xmm0, edx
nop dword [rax + rax]
mov rdx, qword [r15 + r8]
xor rdx, qword [rbp + r8 - 0x40]
movq xmm1, rdx
por xmm0, xmm1
add r8, 8
cmp rcx, r8
jne 0x14004e750
pshufd xmm1, xmm0, 0x55
por xmm1, xmm0
movdqa xmm0, xmm1
psrld xmm0, 0x10
por xmm0, xmm1
movdqa xmm1, xmm0
psrlw xmm1, 8
por xmm1, xmm0
movd edx, xmm1
cmp rax, rcx
jne 0x14004e810
jmp 0x14004e829
mov rcx, rax
and rcx, 0xfffffffffffffff0
movdqu xmm0, xmmword [r12 + 0x20]
pxor xmm0, xmmword [rbp - 0x40]
cmp rcx, 0x10
je 0x14004e7c5
movdqu xmm1, xmmword [r12 + 0x30]
pxor xmm1, xmmword [rbp - 0x30]
por xmm0, xmm1
pshufd xmm1, xmm0, 0xee
por xmm1, xmm0
pshufd xmm0, xmm1, 0x55
por xmm0, xmm1
movdqa xmm1, xmm0
psrld xmm1, 0x10
por xmm1, xmm0
movdqa xmm0, xmm1
psrlw xmm0, 8
por xmm0, xmm1
movd edx, xmm0
cmp rax, rcx
je 0x14004e829
test al, 8
jne 0x14004e73a
nop word cs:[rax + rax]
movzx r8d, byte [r15 + rcx]
xor r8b, byte [rbp + rcx - 0x40]
lea r9, [rcx + 1]
or dl, r8b
mov rcx, r9
cmp rax, r9
jne 0x14004e810
test dl, dl
je 0x14004e97f
mov byte [rbp + 0x2cf], 0
mov byte [rbp + 0x2ce], 0
lea rcx, [rbp - 0x40]
call fcn.14004d270
xor r15d, r15d
mov rdx, qword [rbp + 0x2c0]
mov rax, qword [rdx + 0xf0]
mov rcx, qword [r12 + 0x40]
mov qword [rbp + 0x180], rcx
movups xmm0, xmmword [r12 + 0x20]
movups xmm1, xmmword [r12 + 0x30]
movaps xmmword [rbp + 0x170], xmm1
movaps xmmword [rbp + 0x160], xmm0
movups xmm0, xmmword [rdx + 0x40]
movups xmm1, xmmword [rdx + 0x50]
movaps xmmword [rbp + 0xc0], xmm1
movaps xmmword [rbp + 0xb0], xmm0
movups xmm0, xmmword [rdx]
movups xmm1, xmmword [rdx + 0x10]
movups xmm2, xmmword [rdx + 0x20]
movups xmm3, xmmword [rdx + 0x30]
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x80], xmm1
movaps xmmword [rbp + 0x90], xmm2
movaps xmmword [rbp + 0xa0], xmm3
movzx ecx, byte [rdx + 0x130]
movdqu xmm0, xmmword [rdx + 0xf8]
movdqu xmm1, xmmword [rdx + 0x108]
movups xmm2, xmmword [rdx + 0x118]
movdqa xmmword [rbp + 0x190], xmm0
movdqa xmmword [rbp + 0x1a0], xmm1
movaps xmmword [rbp + 0x1b0], xmm2
mov rdx, qword [rdx + 0x128]
mov qword [rbp + 0x1c0], rdx
mov qword [rbp + 0x188], rax
mov byte [rbp + 0x158], 2
mov byte [rbp + 0x1d0], cl
mov qword [rbp + 0x1c8], rdi
mov byte [rbp + 0x1d1], r13b
mov byte [rbp + 0x1d2], r14b
mov ecx, 0x168
mov edx, 8
call fcn.1400056c0
test rax, rax
je 0x14004eeeb
mov rdi, rax
lea rdx, [rbp + 0x70]
mov r8d, 0x168
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + 8], rdi
lea rax, fcn.14004d160
mov qword [rsi + 0x10], rax
mov byte [rsi], 0x14
mov rax, rsi
add rsp, 0x358
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [0x1401f00c0]
mov rax, qword [rax]
cmp rax, 3
jbe 0x14004e9f4
lea rax, str.Server_agreed_to_resume
mov qword [rbp + 0x80], rax
mov qword [rbp + 0x88], 1
mov qword [rbp + 0x70], 0
lea rax, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001f_ring_0.17.8_src_agreement.rs
mov qword [rbp + 0x90], rax
mov qword [rbp + 0x98], 0
mov byte [rbp + 0x2cd], 1
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0x70]
mov edx, 4
mov r9d, 0x6c
call fcn.1400d6280
mov rcx, qword [rbp - 0x18]
movzx edx, word [rcx + 0x50]
mov al, 0x29
cmp dx, word [rdi + 0x50]
jne 0x14004ea33
movzx edx, dx
cmp edx, 0x178
jne 0x14004ea19
movzx edx, word [rdi + 0x52]
cmp word [rcx + 0x52], dx
jne 0x14004ea33
cmp byte [rbp + 0x48], 0
setne al
mov rcx, qword [rbp + 0x2b0]
cmp byte [rcx], 0
setne cl
xor cl, al
mov al, 0x2a
je 0x14004ea55
mov byte [rsi], 8
mov byte [rsi + 1], al
mov byte [rbp + 0x2cf], 0
mov byte [rbp + 0x2ce], 0
lea rcx, [rbp - 0x40]
call fcn.14004d270
jmp 0x14004e3db
mov rcx, qword [rbp + 0x2c0]
movdqu xmm0, xmmword [rcx]
movdqu xmm1, xmmword [rcx + 0x10]
movups xmm2, xmmword [rcx + 0x20]
movups xmm3, xmmword [rcx + 0x30]
movaps xmmword [rbp + 0x260], xmm3
movaps xmmword [rbp + 0x250], xmm2
movdqa xmmword [rbp + 0x240], xmm1
movdqa xmmword [rbp + 0x230], xmm0
mov rax, qword [rbp + 0x18]
mov rdx, qword [rbp + 0x20]
pxor xmm0, xmm0
movdqa xmmword [rbp + 0x270], xmm0
movdqa xmmword [rbp + 0x280], xmm0
movdqa xmmword [rbp + 0x290], xmm0
mov qword [rbp + 0x2a0], rdi
cmp rdx, 0x30
jne 0x14004ef03
lea rdx, [rbp + 0x270]
movdqu xmm0, xmmword [rax]
movdqu xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rdx + 0x20], xmm2
movdqu xmmword [rdx + 0x10], xmm1
movdqu xmmword [rdx], xmm0
mov rax, qword [rcx + 0xf0]
mov rcx, qword [rax + 0x40]
mov rax, qword [rax + 0x48]
mov r8, qword [rax + 0x10]
mov rax, qword [rax + 0x30]
dec r8
and r8, 0xfffffffffffffff0
add rcx, r8
add rcx, 0x10
mov byte [rbp + 0x2cc], 0
mov byte [rbp + 0x2cb], 1
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 0x30
mov qword [rsp + 0x20], 0x20
lea rdx, [0x140151f20]
lea r9, [rbp + 0x230]
mov r8d, 0xd
call rax
mov rdi, qword [rbx]
mov byte [rbp + 0x2cc], 0
mov byte [rbp + 0x2cb], 1
lea rdx, [rbp + 0x230]
mov rcx, rdi
xor r8d, r8d
call fcn.14003df30
lea rdx, [rbp + 0x28]
mov byte [rbp + 0x2cc], 0
mov byte [rbp + 0x2cb], 1
lea rcx, [rbp + 0x70]
call fcn.1400643c0
mov rax, qword [rbp + 0x80]
mov qword [rbp + 0x60], rax
movups xmm0, xmmword [rbp + 0x70]
movaps xmmword [rbp + 0x50], xmm0
lea rbx, [rdi + 0x2a8]
mov r12, qword [rdi + 0x2b0]
test r12, r12
je 0x14004ec01
mov r13, qword [rdi + 0x2b8]
test r13, r13
je 0x14004ebe3
add r12, 0x10
jmp 0x14004ebc0
add r12, 0x20
dec r13
je 0x14004ebe3
cmp qword [r12 - 0x10], 0
jne 0x14004ebb7
mov rdx, qword [r12 - 8]
test rdx, rdx
je 0x14004ebb7
mov rcx, qword [r12]
mov r8d, 1
call fcn.1400056d0
jmp 0x14004ebb7
mov rdx, qword [rbx]
test rdx, rdx
je 0x14004ec01
mov rcx, qword [rdi + 0x2b0]
shl rdx, 5
mov r8d, 8
call fcn.1400056d0
mov rax, qword [rbp + 0x60]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rbp + 0x50]
movups xmmword [rbx], xmm0
test r14b, r14b
je 0x14004ed72
mov rbx, qword [rbp + 0x2c0]
mov rdi, qword [rbx + 0xf0]
mov rax, qword [rbp + 0x2a0]
mov qword [rbp + 0x1c0], rax
movaps xmm0, xmmword [rbp + 0x290]
movaps xmmword [rbp + 0x1b0], xmm0
movaps xmm0, xmmword [rbp + 0x280]
movaps xmmword [rbp + 0x1a0], xmm0
movaps xmm0, xmmword [rbp + 0x270]
movaps xmmword [rbp + 0x190], xmm0
movaps xmm0, xmmword [rbp + 0x230]
movaps xmm1, xmmword [rbp + 0x240]
movaps xmm2, xmmword [rbp + 0x250]
movaps xmm3, xmmword [rbp + 0x260]
movaps xmmword [rbp + 0x180], xmm3
movaps xmmword [rbp + 0x170], xmm2
movaps xmmword [rbp + 0x160], xmm1
movaps xmmword [rbp + 0x150], xmm0
lea rcx, [rbp + 0x90]
lea rdx, [rbp - 0x40]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [r15 + 0x20]
mov qword [rbp + 0x140], rax
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movaps xmmword [rbp + 0x130], xmm1
movaps xmmword [rbp + 0x120], xmm0
movups xmm0, xmmword [rbx + 0x40]
movups xmm1, xmmword [rbx + 0x50]
movaps xmmword [rbp + 0x70], xmm0
movaps xmmword [rbp + 0x80], xmm1
movzx eax, byte [rbx + 0x130]
mov rcx, qword [rbx + 0x128]
mov qword [rbp + 0x1f8], rcx
movdqu xmm0, xmmword [rbx + 0xf8]
movdqu xmm1, xmmword [rbx + 0x108]
movups xmm2, xmmword [rbx + 0x118]
movups xmmword [rbp + 0x1e8], xmm2
movdqu xmmword [rbp + 0x1d8], xmm1
movdqu xmmword [rbp + 0x1c8], xmm0
mov qword [rbp + 0x148], rdi
mov byte [rbp + 0x200], al
mov byte [rbp + 0x201], 1
mov ecx, 0x198
mov edx, 8
call fcn.1400056c0
test rax, rax
je 0x14004ef16
mov rdi, rax
lea rdx, [rbp + 0x70]
mov r8d, 0x198
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, fcn.14004d020
jmp 0x14004eec3
mov rbx, qword [rbp + 0x2c0]
mov rdi, qword [rbx + 0xf0]
mov rax, qword [rbp + 0x2a0]
mov qword [rbp + 0x1e0], rax
movaps xmm0, xmmword [rbp + 0x290]
movups xmmword [rbp + 0x1d0], xmm0
movaps xmm0, xmmword [rbp + 0x280]
movups xmmword [rbp + 0x1c0], xmm0
movaps xmm0, xmmword [rbp + 0x270]
movups xmmword [rbp + 0x1b0], xmm0
movaps xmm0, xmmword [rbp + 0x230]
movaps xmm1, xmmword [rbp + 0x240]
movaps xmm2, xmmword [rbp + 0x250]
movaps xmm3, xmmword [rbp + 0x260]
movups xmmword [rbp + 0x1a0], xmm3
movups xmmword [rbp + 0x190], xmm2
movups xmmword [rbp + 0x180], xmm1
movups xmmword [rbp + 0x170], xmm0
lea rcx, [rbp + 0xb0]
lea rdx, [rbp - 0x40]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [r15 + 0x20]
mov qword [rbp + 0x160], rax
movups xmm0, xmmword [r15]
movups xmm1, xmmword [r15 + 0x10]
movups xmmword [rbp + 0x150], xmm1
movups xmmword [rbp + 0x140], xmm0
movups xmm0, xmmword [rbx + 0x40]
movups xmm1, xmmword [rbx + 0x50]
movups xmmword [rbp + 0x90], xmm0
movups xmmword [rbp + 0xa0], xmm1
movzx eax, byte [rbx + 0x130]
movdqu xmm0, xmmword [rbx + 0xf8]
movdqu xmm1, xmmword [rbx + 0x108]
movups xmm2, xmmword [rbx + 0x118]
movdqu xmmword [rbp + 0x1e8], xmm0
movdqu xmmword [rbp + 0x1f8], xmm1
movups xmmword [rbp + 0x208], xmm2
mov rcx, qword [rbx + 0x128]
mov qword [rbp + 0x218], rcx
mov qword [rbp + 0x168], rdi
mov byte [rbp + 0x220], al
mov qword [rbp + 0x78], 0
mov byte [rbp + 0x221], 1
mov ecx, 0x1b8
call fcn.14004d810
mov rdi, rax
lea rdx, [rbp + 0x70]
mov r8d, 0x1b8
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, fcn.14004c940
mov qword [rsi + 8], rdi
jmp 0x14004e961
mov byte [rbp + 0x2cd], 1
lea r8, str.C:Userslucak.cargo_registry_srcindex.crates.io_6f17d22bba15001f_rustls_0.22.2_srcmsgshandshake.rsRandom
mov ecx, 0x20
mov edx, 0x20
call fcn.14012ed60
jmp 0x14004ef25
mov dword [rbp + 0x2bc], r15d
mov ecx, 0x168
mov edx, 8
call fcn.14012eb10
jmp 0x14004ef25
lea r8, [0x140152180]
mov ecx, 0x30
call fcn.14012f1d0
jmp 0x14004ef25
mov ecx, 0x198
mov edx, 8
call fcn.14012eb10
ud2