Function at 0x1403d8760
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x348
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x2c0], 0xfffffffffffffffe
mov rdi, r9
mov rbx, r8
mov rsi, rcx
mov r15, qword [rbp + 0x330]
movdqu xmm0, xmmword [r15 + 0x18]
movdqu xmm1, xmmword [r15 + 0x28]
movdqu xmmword [rdx + 0x120], xmm1
movdqu xmmword [rdx + 0x110], xmm0
movabs rax, 0x14452474e574f44
mov qword [rbp + 0x2b0], rdx
cmp qword [rdx + 0x128], rax
movzx eax, byte [rbp + 0x338]
sete r9b
movabs rcx, 0x8000000000000000
and r9b, al
je 0x1403d88da
mov byte [rbp + 0x2a8], r9b
mov rdi, qword [rbx]
mov qword [rbp + 0xc0], rcx
mov dword [rbp + 0xc8], 0xd0001
mov word [rbp + 0x178], 4
cmp byte [rdi + 0x41], 2
sete r8b
mov byte [rbp + 0x2bf], 1
mov byte [rbp + 0x2be], 0
lea rdx, [rbp + 0xc0]
mov rcx, rdi
call fcn.1403d2c50
mov byte [rdi + 0x331], 1
mov word [rsi], 8
mov rax, qword [rbp + 0x2b0]
mov rax, qword [rax + 0xe8]
lock dec qword [rax]
jne 0x1403d8864
mov rax, qword [rbp + 0x2b0]
lea rcx, [rax + 0xe8]
call fcn.1403ce930
movabs rdi, 0x8000000000000000
mov rax, qword [rbp + 0x2b0]
cmp qword [rax], rdi
setne al
test byte [rbp + 0x2a8], al
je 0x1403d888f
mov rcx, qword [rbp + 0x2b0]
call fcn.1403d64e0
mov rcx, qword [rbp + 0x2b0]
cmp byte [rcx + 0xc8], 0
jne 0x1403d88c9
mov rdx, qword [rcx + 0xd0]
cmp rdx, rdi
je 0x1403d88c9
test rdx, rdx
je 0x1403d88c9
mov rcx, qword [rcx + 0xd8]
mov r8d, 1
call fcn.1403040a0
mov rcx, qword [rbp + 0x2b0]
add rcx, 0x90
call fcn.1403d5730
jmp 0x1403d8e18
mov rax, qword [r15 + 0x10]
test rax, rax
je 0x1403d8b0f
mov r14, qword [r15 + 8]
shl rax, 3
lea r12, [rax + rax*4]
xor eax, eax
mov ecx, 0x1f7f
jmp 0x1403d8909
add rax, 0x28
cmp r12, rax
je 0x1403d8928
movzx edx, word [r14 + rax]
mov r13b, 1
bt rcx, rdx
jb 0x1403d8900
cmp rdx, 0xd
jne 0x1403d892b
cmp word [r14 + rax + 0x20], 0x13
jne 0x1403d8900
jmp 0x1403d892b
xor r13d, r13d
mov rax, qword [rbp + 0x2b0]
lea r10, [rax + 0x130]
mov byte [rax + 0x130], r13b
xor eax, eax
jmp 0x1403d895d
add rax, 0x28
cmp r12, rax
je 0x1403d8a22
movzx ecx, word [r14 + rax]
lea rdx, [rcx - 3]
cmp rdx, 0xa
jb 0x1403d8950
cmp ecx, 2
jb 0x1403d8950
cmp ecx, 0xd
jne 0x1403d897f
cmp word [r14 + rax + 0x20], 0x14
jne 0x1403d8950
mov rax, qword [0x14065c0b8]
mov rax, qword [rax]
mov cl, 1
mov dword [rbp + 0x29c], ecx
cmp rax, 4
jb 0x1403d8a2c
mov qword [rbp + 0x2a0], r10
mov byte [rbp + 0x2a8], r9b
lea rax, [0x1405425f0]
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], 1
lea rax, [0x140542310]
mov qword [rbp + 0xd0], rax
pxor xmm0, xmm0
movdqu xmmword [rbp + 0xd8], xmm0
mov byte [rbp + 0x2bf], 1
mov byte [rbp + 0x2be], 0
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0xc0]
mov edx, 4
mov r9d, 0x5a
call fcn.14047ced0
movzx r9d, byte [rbp + 0x2a8]
mov r10, qword [rbp + 0x2a0]
jmp 0x1403d8a2c
mov dword [rbp + 0x29c], 0
xor eax, eax
mov ecx, 0x1eff
jmp 0x1403d8a4d
add rax, 0x28
cmp r12, rax
je 0x1403d8b03
movzx edx, word [r14 + rax]
bt rcx, rdx
jb 0x1403d8a40
cmp rdx, 0xd
jne 0x1403d8a67
cmp word [r14 + rax + 0x20], 5
jne 0x1403d8a40
mov rax, qword [0x14065c0b8]
mov rax, qword [rax]
mov r12b, 1
cmp rax, 4
jb 0x1403d8c11
mov qword [rbp + 0x2a0], r10
mov r14b, r9b
lea rax, str.XT_
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], 1
lea rax, [0x140542310]
mov qword [rbp + 0xd0], rax
pxor xmm0, xmm0
movdqu xmmword [rbp + 0xd8], xmm0
mov byte [rbp + 0x2bf], 1
mov byte [rbp + 0x2be], 0
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0xc0]
mov edx, 4
mov r9d, 0x66
call fcn.14047ced0
mov rdx, qword [rbp + 0x2b0]
mov r9d, r14d
mov r10, qword [rbp + 0x2a0]
jmp 0x1403d8b34
xor r12d, r12d
mov rdx, qword [rbp + 0x2b0]
jmp 0x1403d8b34
mov rdx, qword [rbp + 0x2b0]
lea r10, [rdx + 0x130]
mov byte [rdx + 0x130], 0
xor r13d, r13d
mov dword [rbp + 0x29c], 0
xor r12d, r12d
lea r14, [rdx + 0xf0]
mov al, 1
movabs r8, 0x8000000000000000
cmp qword [rdx], r8
je 0x1403d8ce7
mov qword [rbp + 0x2a0], r10
mov byte [rbp + 0x2a8], r9b
lea rcx, [rbp - 0x48]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbp + 0x38]
cmp rax, qword [r15 + 0x58]
jne 0x1403d8cb2
lea r13, [r15 + 0x38]
test rax, rax
je 0x1403d8e2f
lea rcx, [rax - 0x21]
cmp rcx, 0xffffffffffffffe0
jb 0x1403d9363
cmp rax, 8
jae 0x1403d8ba5
xor edx, edx
xor ecx, ecx
jmp 0x1403d8c90
cmp rax, 0x10
jae 0x1403d8c1d
xor edx, edx
xor ecx, ecx
mov r8, rcx
mov rcx, rax
and rcx, 0xfffffffffffffff8
movzx edx, dl
movd xmm0, edx
mov rdx, qword [r13 + r8]
xor rdx, qword [rbp + r8 + 0x18]
movq xmm1, rdx
por xmm0, xmm1
add r8, 8
cmp rcx, r8
jne 0x1403d8bc0
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 0x1403d8c90
jmp 0x1403d8caa
mov rdx, qword [rbp + 0x2b0]
jmp 0x1403d8b34
mov rcx, rax
and rcx, 0xfffffffffffffff0
movdqu xmm1, xmmword [rbp + 0x18]
movdqu xmm0, xmmword [r15 + 0x38]
pxor xmm0, xmm1
cmp rcx, 0x10
je 0x1403d8c4c
movdqu xmm1, xmmword [rbp + 0x28]
movdqu xmm2, xmmword [r15 + 0x48]
pxor xmm2, xmm1
por xmm0, xmm2
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 0x1403d8caa
test al, 8
jne 0x1403d8baf
nop dword [rax]
movzx r8d, byte [r13 + rcx]
xor r8b, byte [rbp + rcx + 0x18]
lea r9, [rcx + 1]
or dl, r8b
mov rcx, r9
cmp rax, r9
jne 0x1403d8c90
test dl, dl
je 0x1403d8e2f
mov byte [rbp + 0x2bf], 0
mov byte [rbp + 0x2be], 0
lea rcx, [rbp - 0x48]
call fcn.1403d64e0
mov rax, qword [rbp + 0x2a0]
movzx r13d, byte [rax]
xor eax, eax
mov rdx, qword [rbp + 0x2b0]
movabs r8, 0x8000000000000000
mov dword [rbp + 0x2a8], eax
mov rax, qword [rdx + 0xe8]
mov rcx, qword [r15 + 0x58]
mov qword [rbp + 0x1d8], rcx
movups xmm0, xmmword [r15 + 0x38]
movups xmm1, xmmword [r15 + 0x48]
movups xmmword [rbp + 0x1c8], xmm1
movups xmmword [rbp + 0x1b8], xmm0
movups xmm0, xmmword [rdx + 0xc8]
movups xmm1, xmmword [rdx + 0xd8]
movups xmmword [rbp + 0x198], xmm1
movups xmmword [rbp + 0x188], xmm0
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmm2, xmmword [r14 + 0x20]
movups xmm3, xmmword [r14 + 0x30]
movups xmmword [rbp + 0x210], xmm3
movups xmmword [rbp + 0x200], xmm2
movups xmmword [rbp + 0x1f0], xmm1
movups xmmword [rbp + 0x1e0], xmm0
movdqu xmm0, xmmword [rdx + 0x90]
movdqu xmm1, xmmword [rdx + 0xa0]
movdqu xmm2, xmmword [rdx + 0xb0]
movdqu xmmword [rbp + 0x150], xmm0
movdqu xmmword [rbp + 0x170], xmm2
movdqu xmmword [rbp + 0x160], xmm1
mov rcx, qword [rdx + 0xc0]
mov qword [rbp + 0x180], rcx
mov qword [rbp + 0x1a8], rax
mov qword [rbp + 0xc0], r8
mov byte [rbp + 0x220], r13b
mov qword [rbp + 0x1b0], rdi
mov byte [rbp + 0x221], r12b
mov eax, dword [rbp + 0x29c]
mov byte [rbp + 0x222], al
movzx eax, byte [0x14065c1e1]
mov ecx, 0x168
mov edx, 8
call fcn.140304090
test rax, rax
je 0x1403d9382
mov rdi, rax
lea rdx, [rbp + 0xc0]
mov r8d, 0x168
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + 8], rdi
lea rax, fcn.1403d5c10
mov qword [rsi + 0x10], rax
mov byte [rsi], 0x14
mov rax, rsi
add rsp, 0x348
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [0x14065c0b8]
mov rax, qword [rax]
cmp rax, 4
jb 0x1403d8ea0
lea rax, str.Server_agreed_to_resume
mov qword [rbp + 0xc0], rax
mov qword [rbp + 0xc8], 1
lea rax, [0x140542310]
mov qword [rbp + 0xd0], rax
pxor xmm0, xmm0
movdqu xmmword [rbp + 0xd8], xmm0
mov byte [rbp + 0x2bb], 1
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0xc0]
mov edx, 4
mov r9d, 0x6c
call fcn.14047ced0
mov rcx, qword [rbp + 0x10]
movzx edx, word [rcx + 0x50]
mov al, 0x29
cmp dx, word [rdi + 0x50]
jne 0x1403d8edf
movzx edx, dx
cmp edx, 0x178
jne 0x1403d8ec5
movzx edx, word [rdi + 0x52]
cmp word [rcx + 0x52], dx
jne 0x1403d8edf
cmp byte [rbp + 0x40], 0
setne al
mov rcx, qword [rbp + 0x2a0]
cmp byte [rcx], 0
setne cl
xor cl, al
mov al, 0x2a
je 0x1403d8f01
mov byte [rsi], 8
mov byte [rsi + 1], al
mov byte [rbp + 0x2bf], 0
mov byte [rbp + 0x2be], 0
lea rcx, [rbp - 0x48]
call fcn.1403d64e0
jmp 0x1403d883d
movdqu xmm0, xmmword [r14]
movdqu xmm1, xmmword [r14 + 0x10]
movdqu xmm2, xmmword [r14 + 0x20]
movups xmm3, xmmword [r14 + 0x30]
movaps xmmword [rbp + 0xf0], xmm3
movdqa xmmword [rbp + 0xe0], xmm2
movdqa xmmword [rbp + 0xd0], xmm1
movdqa xmmword [rbp + 0xc0], xmm0
mov r9, qword [rbp - 0x28]
mov rax, qword [rbp - 0x20]
mov byte [rbp + 0x2bb], 1
mov qword [rsp + 0x20], rax
lea rcx, [rbp + 0x48]
lea rdx, [rbp + 0xc0]
mov r8, rdi
call fcn.1403b94f0
mov rax, qword [rbp + 0x2b0]
mov rax, qword [rax + 0xe8]
mov rcx, qword [rax + 0x78]
mov rax, qword [rax + 0x80]
mov rdx, qword [rax + 0x10]
mov rax, qword [rax + 0x30]
dec rdx
and rdx, 0xfffffffffffffff0
add rcx, rdx
add rcx, 0x10
lea r9, [rbp + 0x50]
lea rdx, [rbp + 0x90]
mov byte [rbp + 0x2bd], 0
mov byte [rbp + 0x2bc], 1
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 0x30
mov qword [rsp + 0x20], 0x20
lea rdx, [0x1405426b0]
mov r8d, 0xd
call rax
mov rdi, qword [rbx]
mov byte [rbp + 0x2bd], 0
mov byte [rbp + 0x2bc], 1
lea rdx, [rbp + 0x48]
mov rcx, rdi
xor r8d, r8d
call fcn.1403d3370
lea rdx, [rbp - 0x18]
mov byte [rbp + 0x2bd], 0
mov byte [rbp + 0x2bc], 1
lea rcx, [rbp + 0xc0]
call fcn.1403db930
mov rax, qword [rbp + 0xd0]
mov qword [rbp + 0x290], rax
movups xmm0, xmmword [rbp + 0xc0]
movaps xmmword [rbp + 0x280], xmm0
lea rbx, [rdi + 0x2f0]
movabs rax, 0x8000000000000000
cmp qword [rdi + 0x2f0], rax
je 0x1403d9085
mov qword [rbp + 0x2a0], rdi
mov rcx, rbx
mov qword [rbp + 0x2a8], rbx
call fcn.14039dee0
mov rbx, qword [rbp + 0x2a8]
mov rax, qword [rbx]
test rax, rax
mov rcx, qword [rbp + 0x2a0]
je 0x1403d9085
mov rcx, qword [rcx + 0x2f8]
shl rax, 3
lea rdx, [rax + rax*2]
mov r8d, 8
call fcn.1403040a0
mov rax, qword [rbp + 0x290]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rbp + 0x280]
movups xmmword [rbx], xmm0
mov r15, qword [rbp + 0x2b0]
lea rbx, [r15 + 0xc8]
lea rdi, [r15 + 0x90]
cmp byte [rbp + 0x29c], 0
je 0x1403d9209
mov r14, qword [r15 + 0xe8]
mov rax, qword [rbp + 0xb8]
mov qword [rbp + 0x220], rax
movups xmm0, xmmword [rbp + 0xa8]
movups xmmword [rbp + 0x210], xmm0
movups xmm0, xmmword [rbp + 0x98]
movups xmmword [rbp + 0x200], xmm0
movups xmm0, xmmword [rbp + 0x88]
movups xmmword [rbp + 0x1f0], xmm0
movups xmm0, xmmword [rbp + 0x48]
movups xmm1, xmmword [rbp + 0x58]
movups xmm2, xmmword [rbp + 0x68]
movups xmm3, xmmword [rbp + 0x78]
movups xmmword [rbp + 0x1e0], xmm3
movups xmmword [rbp + 0x1d0], xmm2
movups xmmword [rbp + 0x1c0], xmm1
movups xmmword [rbp + 0x1b0], xmm0
lea rcx, [rbp + 0xc0]
lea rdx, [rbp - 0x48]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [r13 + 0x20]
mov qword [rbp + 0x248], rax
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rbp + 0x238], xmm1
movups xmmword [rbp + 0x228], xmm0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 0x188], xmm0
movups xmmword [rbp + 0x198], xmm1
movzx eax, byte [r15 + 0x130]
mov rcx, qword [rdi + 0x30]
mov qword [rbp + 0x180], rcx
movdqu xmm0, xmmword [rdi]
movdqu xmm1, xmmword [rdi + 0x10]
movdqu xmm2, xmmword [rdi + 0x20]
movdqu xmmword [rbp + 0x170], xmm2
movdqu xmmword [rbp + 0x160], xmm1
movdqu xmmword [rbp + 0x150], xmm0
mov qword [rbp + 0x1a8], r14
mov byte [rbp + 0x250], al
mov byte [rbp + 0x251], 1
movzx eax, byte [0x14065c1e1]
mov ecx, 0x198
mov edx, 8
call fcn.140304090
test rax, rax
je 0x1403d9393
mov rdi, rax
lea rdx, [rbp + 0xc0]
mov r8d, 0x198
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, fcn.1403d5ab0
mov qword [rsi + 8], rdi
jmp 0x1403d8e11
mov r14, qword [r15 + 0xe8]
mov rax, qword [rbp + 0xb8]
mov qword [rbp + 0x240], rax
movups xmm0, xmmword [rbp + 0xa8]
movups xmmword [rbp + 0x230], xmm0
movups xmm0, xmmword [rbp + 0x98]
movups xmmword [rbp + 0x220], xmm0
movups xmm0, xmmword [rbp + 0x88]
movups xmmword [rbp + 0x210], xmm0
movups xmm0, xmmword [rbp + 0x48]
movups xmm1, xmmword [rbp + 0x58]
movups xmm2, xmmword [rbp + 0x68]
movups xmm3, xmmword [rbp + 0x78]
movups xmmword [rbp + 0x200], xmm3
movups xmmword [rbp + 0x1f0], xmm2
movups xmmword [rbp + 0x1e0], xmm1
movups xmmword [rbp + 0x1d0], xmm0
lea rcx, [rbp + 0xc0]
lea rdx, [rbp - 0x48]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [r13 + 0x20]
mov qword [rbp + 0x268], rax
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmmword [rbp + 0x258], xmm1
movups xmmword [rbp + 0x248], xmm0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 0x1a8], xmm0
movups xmmword [rbp + 0x1b8], xmm1
movzx eax, byte [r15 + 0x130]
mov rcx, qword [rdi + 0x30]
mov qword [rbp + 0x180], rcx
movdqu xmm0, xmmword [rdi]
movdqu xmm1, xmmword [rdi + 0x10]
movdqu xmm2, xmmword [rdi + 0x20]
movdqu xmmword [rbp + 0x170], xmm2
movdqu xmmword [rbp + 0x160], xmm1
movdqu xmmword [rbp + 0x150], xmm0
mov qword [rbp + 0x1c8], r14
mov byte [rbp + 0x270], al
movabs rax, 0x8000000000000000
mov qword [rbp + 0x188], rax
mov byte [rbp + 0x271], 1
movzx eax, byte [0x14065c1e1]
mov ecx, 0x1b8
mov edx, 8
call fcn.140304090
test rax, rax
je 0x1403d93a4
mov rdi, rax
lea rdx, [rbp + 0xc0]
mov r8d, 0x1b8
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
lea rax, fcn.1403d5810
mov qword [rsi + 8], rdi
jmp 0x1403d8e11
mov byte [rbp + 0x2bb], 1
lea r8, [0x140543ec8]
mov ecx, 0x20
mov edx, 0x20
call fcn.1404cbf10
jmp 0x1403d93b3
mov ecx, 8
mov edx, 0x168
call fcn.1404cbc30
jmp 0x1403d93b3
mov ecx, 8
mov edx, 0x198
call fcn.1404cbc30
jmp 0x1403d93b3
mov ecx, 8
mov edx, 0x1b8
call fcn.1404cbc30
ud2