Function at 0x14006c490
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0x368
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x2e0], 0xfffffffffffffffe
mov rsi, rcx
mov rbx, qword [rbp + 0x350]
movdqu xmm0, xmmword [rbx + 0x18]
movdqu xmm1, xmmword [rbx + 0x28]
movdqu xmmword [rdx + 0x120], xmm1
movdqu xmmword [rdx + 0x110], xmm0
movabs rax, 0x14452474e574f44
cmp qword [rdx + 0x128], rax
movzx eax, byte [rbp + 0x358]
sete r11b
movabs r14, 0x8000000000000000
and r11b, al
mov qword [rbp + 0x2d0], rdx
je 0x14006c601
mov byte [rbp + 0x2c0], r11b
mov rdi, qword [r8]
mov word [rbp + 0x188], 4
mov qword [rbp + 0xd0], r14
mov dword [rbp + 0xd8], 0xd0001
cmp byte [rdi + 0x41], 2
sete r8b
mov byte [rbp + 0x2df], 1
mov byte [rbp + 0x2de], 0
lea rdx, [rbp + 0xd0]
mov rcx, rdi
call fcn.1400595b0
mov byte [rdi + 0x331], 1
mov word [rsi], 8
mov rax, qword [rbp + 0x2d0]
mov rax, qword [rax + 0xe8]
lock dec qword [rax]
jne 0x14006c58c
mov rax, qword [rbp + 0x2d0]
lea rcx, [rax + 0xe8]
call fcn.14004f580
movabs rdi, 0x8000000000000000
mov rax, qword [rbp + 0x2d0]
cmp qword [rax], rdi
setne al
test byte [rbp + 0x2c0], al
je 0x14006c5b7
mov rcx, qword [rbp + 0x2d0]
call fcn.14003a280
mov rcx, qword [rbp + 0x2d0]
cmp byte [rcx + 0xc8], 0
jne 0x14006c5f0
mov rdx, qword [rcx + 0xd0]
cmp rdx, rdi
je 0x14006c5f0
test rdx, rdx
je 0x14006c5f0
mov rdi, rcx
mov rcx, qword [rcx + 0xd8]
mov r8d, 1
call fcn.140004f70
mov rcx, rdi
add rcx, 0x90
call fcn.140038fb0
jmp 0x14006cb71
mov rax, qword [rbx + 0x10]
test rax, rax
je 0x14006c869
mov rdi, qword [rbx + 8]
shl rax, 3
lea r14, [rax + rax*4]
xor eax, eax
mov ecx, 0x1f7f
jmp 0x14006c639
add rax, 0x28
cmp r14, rax
je 0x14006c656
movzx r10d, word [rdi + rax]
mov dl, 1
bt ecx, r10d
jb 0x14006c630
cmp r10d, 0xd
jne 0x14006c658
cmp word [rdi + rax + 0x20], 0x13
jne 0x14006c630
jmp 0x14006c658
xor edx, edx
mov rax, qword [rbp + 0x2d0]
lea r10, [rax + 0x130]
mov byte [rax + 0x130], dl
xor eax, eax
jmp 0x14006c67d
add rax, 0x28
cmp r14, rax
je 0x14006c757
movzx ecx, word [rdi + rax]
lea edx, [rcx - 3]
cmp edx, 0xa
jb 0x14006c670
cmp ecx, 2
jb 0x14006c670
cmp ecx, 0xd
jne 0x14006c69b
cmp word [rdi + rax + 0x20], 0x14
jne 0x14006c670
mov rax, qword [0x1401ef0c0]
mov rax, qword [rax]
xor ecx, ecx
cmp rax, 4
setne cl
mov eax, 0xff
cmovbe eax, ecx
mov cl, 1
mov dword [rbp + 0x2cc], ecx
cmp al, 0xff
je 0x14006c6cd
movzx eax, al
test eax, eax
jne 0x14006c761
mov qword [rbp + 0x2b0], r10
mov r13b, r11b
mov r15, r9
mov r12, r8
lea rax, [0x14014ee90]
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], 1
lea rax, [0x14014ea58]
mov qword [rbp + 0xe0], rax
pxor xmm0, xmm0
movdqu xmmword [rbp + 0xe8], xmm0
mov byte [rbp + 0x2df], 1
mov byte [rbp + 0x2de], 0
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0xd0]
mov edx, 4
mov r9d, 0x5a
call fcn.1400d5930
mov r8, r12
mov r9, r15
mov r11d, r13d
mov r10, qword [rbp + 0x2b0]
jmp 0x14006c761
mov dword [rbp + 0x2cc], 0
xor eax, eax
mov ecx, 0x1eff
jmp 0x14006c77d
add rax, 0x28
cmp r14, rax
je 0x14006c853
movzx edx, word [rdi + rax]
bt ecx, edx
jb 0x14006c770
cmp edx, 0xd
jne 0x14006c793
cmp word [rdi + rax + 0x20], 5
jne 0x14006c770
mov rax, qword [0x1401ef0c0]
mov rax, qword [rax]
xor ecx, ecx
cmp rax, 4
setne cl
mov eax, 0xff
cmovbe eax, ecx
mov r12b, 1
cmp al, 0xff
je 0x14006c7c0
movzx eax, al
test eax, eax
jne 0x14006c856
mov r13, r10
mov r15b, r11b
mov rdi, r9
mov r14, r8
lea rax, str.Server_may_staple_OCSP_response
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], 1
lea rax, [0x14014ea58]
mov qword [rbp + 0xe0], rax
pxor xmm0, xmm0
movdqu xmmword [rbp + 0xe8], xmm0
mov byte [rbp + 0x2df], 1
mov byte [rbp + 0x2de], 0
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0xd0]
mov edx, 4
mov r9d, 0x66
call fcn.1400d5930
mov r8, r14
mov r9, rdi
mov rdx, qword [rbp + 0x2d0]
movabs r14, 0x8000000000000000
mov r11d, r15d
mov r10, r13
jmp 0x14006c884
xor r12d, r12d
mov rdx, qword [rbp + 0x2d0]
movabs r14, 0x8000000000000000
jmp 0x14006c884
lea r10, [rdx + 0x130]
mov byte [rdx + 0x130], 0
mov dword [rbp + 0x2cc], 0
xor r12d, r12d
lea r13, [rdx + 0xf0]
mov r15, qword [rdx]
cmp r15, r14
sete byte [rbp + 0x2b8]
je 0x14006ca2c
mov qword [rbp + 0x2b0], r10
mov byte [rbp + 0x2c0], r11b
mov rdi, r9
mov qword [rbp + 0x288], r8
lea rcx, [rbp - 0x40]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [rbp + 0x40]
cmp rax, qword [rbx + 0x58]
jne 0x14006ca01
lea r14, [rbx + 0x38]
test rax, rax
je 0x14006cb88
lea rcx, [rax - 0x21]
cmp rcx, 0xffffffffffffffe0
jb 0x14006d17d
cmp rax, 8
jae 0x14006c8fd
xor edx, edx
xor ecx, ecx
jmp 0x14006c9e0
cmp rax, 0x10
jae 0x14006c96c
xor edx, edx
xor ecx, ecx
mov r8, rcx
mov ecx, eax
and ecx, 0x38
movzx edx, dl
movd xmm0, edx
nop word cs:[rax + rax]
mov rdx, qword [r14 + r8]
xor rdx, qword [rbp + r8 + 0x20]
movq xmm1, rdx
por xmm0, xmm1
add r8, 8
cmp rcx, r8
jne 0x14006c920
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 0x14006c9e0
jmp 0x14006c9f9
mov ecx, eax
and ecx, 0x30
movdqu xmm1, xmmword [rbp + 0x20]
movdqu xmm0, xmmword [rbx + 0x38]
pxor xmm0, xmm1
cmp rcx, 0x10
je 0x14006c997
movdqu xmm1, xmmword [rbp + 0x30]
movdqu xmm2, xmmword [rbx + 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 0x14006c9f9
test al, 8
jne 0x14006c907
nop word cs:[rax + rax]
movzx r8d, byte [r14 + rcx]
xor r8b, byte [rbp + rcx + 0x20]
lea r9, [rcx + 1]
or dl, r8b
mov rcx, r9
cmp rax, r9
jne 0x14006c9e0
test dl, dl
je 0x14006cb88
mov byte [rbp + 0x2df], 0
mov byte [rbp + 0x2de], 0
lea rcx, [rbp - 0x40]
call fcn.14003a280
mov r9, rdi
mov rdx, qword [rbp + 0x2d0]
movabs r14, 0x8000000000000000
mov rax, qword [rdx + 0xe8]
mov rcx, qword [rbx + 0x58]
mov qword [rbp + 0x1e8], rcx
movups xmm0, xmmword [rbx + 0x38]
movups xmm1, xmmword [rbx + 0x48]
movups xmmword [rbp + 0x1d8], xmm1
movups xmmword [rbp + 0x1c8], xmm0
movups xmm0, xmmword [rdx + 0xc8]
movups xmm1, xmmword [rdx + 0xd8]
movups xmmword [rbp + 0x1a8], xmm1
movups xmmword [rbp + 0x198], xmm0
movups xmm0, xmmword [r13]
movups xmm1, xmmword [r13 + 0x10]
movups xmm2, xmmword [r13 + 0x20]
movups xmm3, xmmword [r13 + 0x30]
movups xmmword [rbp + 0x1f0], xmm0
movups xmmword [rbp + 0x200], xmm1
movups xmmword [rbp + 0x210], xmm2
movups xmmword [rbp + 0x220], xmm3
movzx ecx, byte [rdx + 0x130]
movdqu xmm0, xmmword [rdx + 0x90]
movdqu xmm1, xmmword [rdx + 0xa0]
movdqu xmm2, xmmword [rdx + 0xb0]
movdqu xmmword [rbp + 0x160], xmm0
movdqu xmmword [rbp + 0x170], xmm1
movdqu xmmword [rbp + 0x180], xmm2
mov rbx, rdx
mov rdx, qword [rdx + 0xc0]
mov qword [rbp + 0x190], rdx
mov qword [rbp + 0x1b8], rax
mov qword [rbp + 0xd0], r14
mov byte [rbp + 0x230], cl
mov qword [rbp + 0x1c0], r9
mov byte [rbp + 0x231], r12b
mov eax, dword [rbp + 0x2cc]
mov byte [rbp + 0x232], al
movzx eax, byte [0x1401ef221]
mov ecx, 0x168
mov edx, 8
call fcn.140004f60
test rax, rax
je 0x14006d19c
mov rdi, rax
lea rdx, [rbp + 0xd0]
mov r8d, 0x168
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + 8], rdi
lea rax, fcn.140069ee0
mov qword [rsi + 0x10], rax
mov byte [rsi], setsockopt
cmp r15, r14
jne 0x14006cb71
mov rcx, rbx
cmp qword [rbx], r14
je 0x14006cb71
call fcn.14003a280
mov rax, rsi
add rsp, 0x368
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov rax, qword [0x1401ef0c0]
mov rax, qword [rax]
xor ecx, ecx
cmp rax, 4
setne cl
mov eax, 0xff
cmovbe eax, ecx
cmp al, 0xff
je 0x14006cbae
movzx eax, al
test eax, eax
jne 0x14006cc0f
lea rax, str.Server_agreed_to_resume
mov qword [rbp + 0xd0], rax
mov qword [rbp + 0xd8], 1
lea rax, [0x14014ea58]
mov qword [rbp + 0xe0], rax
pxor xmm0, xmm0
movdqu xmmword [rbp + 0xe8], xmm0
mov byte [rbp + 0x2db], 1
mov qword [rsp + 0x20], 0
lea r8, str.rustls::client::tls12::server_hello
lea rcx, [rbp + 0xd0]
mov edx, 4
mov r9d, WSAGetLastError
call fcn.1400d5930
mov rcx, qword [rbp + 0x18]
movzx edx, word [rcx + 0x50]
mov al, 0x29
cmp dx, word [rdi + 0x50]
jne 0x14006cc4e
movzx edx, dx
cmp edx, 0x178
jne 0x14006cc34
movzx ecx, word [rcx + 0x52]
cmp cx, word [rdi + 0x52]
jne 0x14006cc4e
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 0x14006cc70
mov byte [rsi], 8
mov byte [rsi + 1], al
mov byte [rbp + 0x2df], 0
mov byte [rbp + 0x2de], 0
lea rcx, [rbp - 0x40]
call fcn.14003a280
jmp 0x14006c565
movdqu xmm0, xmmword [r13]
movdqu xmm1, xmmword [r13 + 0x10]
movdqu xmm2, xmmword [r13 + 0x20]
movups xmm3, xmmword [r13 + 0x30]
movups xmmword [rbp + 0x108], xmm3
movdqu xmmword [rbp + 0xf8], xmm2
movdqu xmmword [rbp + 0xe8], xmm1
movdqu xmmword [rbp + 0xd8], xmm0
mov rax, qword [rbp - 0x20]
mov rdx, qword [rbp - 0x18]
lea rcx, [rbp + 0x118]
pxor xmm0, xmm0
movdqu xmmword [rbp + 0x118], xmm0
movdqu xmmword [rbp + 0x128], xmm0
movdqu xmmword [rbp + 0x138], xmm0
mov qword [rbp + 0xd0], rdi
cmp rdx, 0x30
jne 0x14006d1ad
movups xmm0, xmmword [rax]
movups xmm1, xmmword [rax + 0x10]
movups xmm2, xmmword [rax + 0x20]
movups xmmword [rcx + 0x20], xmm2
movups xmmword [rcx + 0x10], xmm1
movups xmmword [rcx], xmm0
mov rax, qword [rbp + 0x140]
mov qword [rbp + 0xc0], rax
movups xmm0, xmmword [rbp + 0x130]
movaps xmmword [rbp + 0xb0], xmm0
movups xmm0, xmmword [rbp + 0x120]
movaps xmmword [rbp + 0xa0], xmm0
movups xmm0, xmmword [rbp + 0x110]
movaps xmmword [rbp + 0x90], xmm0
mov rax, qword [rbp + 0xd0]
mov rcx, qword [rbp + 0xd8]
movdqu xmm0, xmmword [rbp + 0xe0]
movdqu xmm1, xmmword [rbp + 0xf0]
movdqu xmm2, xmmword [rbp + 0x100]
movdqa xmmword [rbp + 0x80], xmm2
movdqa xmmword [rbp + 0x70], xmm1
movdqa xmmword [rbp + 0x60], xmm0
mov qword [rbp + 0x50], rax
mov qword [rbp + 0x58], rcx
mov rax, qword [rbp + 0x2d0]
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 + 0x58]
lea rdx, [rbp + 0x98]
mov byte [rbp + 0x2dd], 0
mov byte [rbp + 0x2dc], 1
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x30], 0x30
mov qword [rsp + 0x20], 0x20
lea rdx, str.CLIENT_RANDOM
mov r8d, reloc.WS2_32.dll_listen
call rax
mov rax, qword [rbp + 0x288]
mov rdi, qword [rax]
mov byte [rbp + 0x2dd], 0
mov byte [rbp + 0x2dc], 1
lea rdx, [rbp + 0x50]
mov rcx, rdi
xor r8d, r8d
call fcn.140059fe0
lea rdx, [rbp - 0x10]
mov byte [rbp + 0x2dd], 0
mov byte [rbp + 0x2dc], 1
lea rcx, [rbp + 0xd0]
call fcn.140063140
mov rax, qword [rbp + 0xe0]
mov qword [rbp + 0x2a0], rax
movups xmm0, xmmword [rbp + 0xd0]
movaps xmmword [rbp + 0x290], xmm0
lea rbx, [rdi + 0x2f0]
movabs rax, 0x8000000000000000
cmp qword [rdi + 0x2f0], rax
je 0x14006ce9f
mov qword [rbp + 0x2b8], rdi
mov rcx, rbx
mov qword [rbp + 0x2c0], rbx
call fcn.140022c20
mov rbx, qword [rbp + 0x2c0]
mov rax, qword [rbx]
test rax, rax
mov rcx, qword [rbp + 0x2b8]
je 0x14006ce9f
mov rcx, qword [rcx + 0x2f8]
shl rax, 3
lea rdx, [rax + rax*2]
mov r8d, 8
call fcn.140004f70
mov rax, qword [rbp + 0x2a0]
mov qword [rbx + 0x10], rax
movaps xmm0, xmmword [rbp + 0x290]
movups xmmword [rbx], xmm0
mov r12, qword [rbp + 0x2d0]
lea rbx, [r12 + 0xc8]
lea rdi, [r12 + 0x90]
cmp byte [rbp + 0x2cc], 0
je 0x14006d029
mov r15, qword [r12 + 0xe8]
mov rax, qword [rbp + 0xc0]
mov qword [rbp + 0x230], rax
movaps xmm0, xmmword [rbp + 0xb0]
movups xmmword [rbp + 0x220], xmm0
movaps xmm0, xmmword [rbp + 0xa0]
movups xmmword [rbp + 0x210], xmm0
movaps xmm0, xmmword [rbp + 0x90]
movups xmmword [rbp + 0x200], xmm0
movaps xmm0, xmmword [rbp + 0x50]
movaps xmm1, xmmword [rbp + 0x60]
movaps xmm2, xmmword [rbp + 0x70]
movaps xmm3, xmmword [rbp + 0x80]
movups xmmword [rbp + 0x1f0], xmm3
movups xmmword [rbp + 0x1e0], xmm2
movups xmmword [rbp + 0x1d0], xmm1
movups xmmword [rbp + 0x1c0], xmm0
lea rcx, [rbp + 0xd0]
lea rdx, [rbp - 0x40]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [r14 + 0x20]
mov qword [rbp + 0x258], rax
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rbp + 0x248], xmm1
movups xmmword [rbp + 0x238], xmm0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 0x198], xmm0
movups xmmword [rbp + 0x1a8], xmm1
movzx eax, byte [r12 + 0x130]
mov rcx, qword [rdi + 0x30]
mov qword [rbp + 0x190], rcx
movdqu xmm0, xmmword [rdi]
movdqu xmm1, xmmword [rdi + 0x10]
movdqu xmm2, xmmword [rdi + 0x20]
movdqu xmmword [rbp + 0x180], xmm2
movdqu xmmword [rbp + 0x170], xmm1
movdqu xmmword [rbp + 0x160], xmm0
mov qword [rbp + 0x1b8], r15
mov byte [rbp + 0x260], al
mov byte [rbp + 0x261], 1
movzx eax, byte [0x1401ef221]
mov ecx, 0x198
mov edx, 8
call fcn.140004f60
test rax, rax
je 0x14006d1c0
mov rdi, rax
lea rdx, [rbp + 0xd0]
mov r8d, 0x198
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + 8], rdi
lea rax, fcn.140069b30
jmp 0x14006d171
mov r15, qword [r12 + 0xe8]
mov rax, qword [rbp + 0xc0]
mov qword [rbp + 0x250], rax
movaps xmm0, xmmword [rbp + 0xb0]
movups xmmword [rbp + 0x240], xmm0
movaps xmm0, xmmword [rbp + 0xa0]
movups xmmword [rbp + 0x230], xmm0
movaps xmm0, xmmword [rbp + 0x90]
movups xmmword [rbp + 0x220], xmm0
movaps xmm0, xmmword [rbp + 0x50]
movaps xmm1, xmmword [rbp + 0x60]
movaps xmm2, xmmword [rbp + 0x70]
movaps xmm3, xmmword [rbp + 0x80]
movups xmmword [rbp + 0x210], xmm3
movups xmmword [rbp + 0x200], xmm2
movups xmmword [rbp + 0x1f0], xmm1
movups xmmword [rbp + 0x1e0], xmm0
lea rcx, [rbp + 0xd0]
lea rdx, [rbp - 0x40]
mov r8d, 0x90
call sub.VCRUNTIME140.dll_memcpy
mov rax, qword [r14 + 0x20]
mov qword [rbp + 0x278], rax
movups xmm0, xmmword [r14]
movups xmm1, xmmword [r14 + 0x10]
movups xmmword [rbp + 0x268], xmm1
movups xmmword [rbp + 0x258], xmm0
movups xmm0, xmmword [rbx]
movups xmm1, xmmword [rbx + 0x10]
movups xmmword [rbp + 0x1b8], xmm0
movups xmmword [rbp + 0x1c8], xmm1
movzx eax, byte [r12 + 0x130]
movdqu xmm0, xmmword [rdi]
movdqu xmm1, xmmword [rdi + 0x10]
movdqu xmm2, xmmword [rdi + 0x20]
movdqu xmmword [rbp + 0x160], xmm0
movdqu xmmword [rbp + 0x170], xmm1
movdqu xmmword [rbp + 0x180], xmm2
mov rcx, qword [rdi + 0x30]
mov qword [rbp + 0x190], rcx
mov qword [rbp + 0x1d8], r15
mov byte [rbp + 0x280], al
movabs rax, 0x8000000000000000
mov qword [rbp + 0x198], rax
mov byte [rbp + 0x281], 1
mov ecx, 0x1b8
call fcn.14003ae10
mov rdi, rax
lea rdx, [rbp + 0xd0]
mov r8d, 0x1b8
mov rcx, rax
call sub.VCRUNTIME140.dll_memcpy
mov qword [rsi + 8], rdi
lea rax, fcn.140069510
mov qword [rsi + 0x10], rax
mov byte [rsi], setsockopt
jmp 0x14006cb71
mov byte [rbp + 0x2db], 1
lea r8, [0x140151528]
mov ecx, 0x20
mov edx, 0x20
call fcn.140125e20
jmp 0x14006d1cf
mov ecx, 8
mov edx, 0x168
call fcn.140125b70
jmp 0x14006d1cf
lea r8, [0x1401466b0]
mov ecx, 0x30
call fcn.140126240
jmp 0x14006d1cf
mov ecx, 8
mov edx, 0x198
call fcn.140125b70
ud2