Function at 0x1400425e0
Capabilities:
Encode data using xor

Disassembly:
push rbp
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbx
sub rsp, 0xd8
lea rbp, [rsp + 0x80]
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov r13, rcx
mov rax, qword [rdx + 8]
test rax, rax
je 0x1400426b1
test al, 3
jne 0x14004292b
mov rsi, rdx
mov rcx, qword [rdx]
movd xmm0, dword [rcx + rax - 4]
pcmpeqb xmm0, xmmword [0x140101360]
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
movmskps r15d, xmm0
mov ecx, r15d
shr cl, 1
and cl, 5
mov edx, r15d
sub dl, cl
mov ecx, edx
and cl, 0x33
shr dl, 2
and dl, 0x33
add dl, cl
mov ecx, edx
shr cl, 4
add cl, dl
and cl, 0xf
cmp cl, 3
jae 0x14004293d
movzx r14d, cl
lea rdi, [rax + rax*2]
shr rdi, 2
sub rdi, r14
xorps xmm0, xmm0
movups xmmword [r13 + 0x10], xmm0
movups xmmword [r13], xmm0
js 0x140042964
cmp rdi, 0xf
ja 0x1400426ce
mov qword [r13 + 0x10], rdi
mov qword [r13 + 0x18], reloc.WS2_32.dll_ntohs
mov rcx, r13
mov dl, 0x2e
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add rdi, r13
mov rbx, rdi
jmp 0x14004272d
xorps xmm0, xmm0
movups xmmword [r13], xmm0
mov qword [r13 + 0x10], 0
mov qword [r13 + 0x18], reloc.WS2_32.dll_ntohs
jmp 0x140042846
mov rax, rdi
or rax, 0xf
cmp rax, 0x17
mov r12d, reloc.WS2_32.dll_shutdown
cmovae r12, rax
cmp r12, 0xfff
jb 0x140042704
lea rcx, [r12 + 0x28]
call fcn.1400f0b5c
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x140042711
lea rcx, [r12 + 1]
call fcn.1400f0b5c
mov rbx, rax
mov qword [r13], rbx
mov qword [r13 + 0x10], rdi
mov qword [r13 + 0x18], r12
mov rcx, rbx
mov dl, 0x2e
mov r8, rdi
call sub.VCRUNTIME140.dll_memset
add rbx, rdi
mov byte [rbx], 0
mov rdx, qword [rsi + 8]
cmp qword [r13 + 0x18], 0x10
mov rax, r13
jb 0x140042742
mov rax, qword [r13]
mov rcx, qword [rsi]
shr rdx, 2
xor r8d, r8d
test r15b, r15b
setne r8b
sub rdx, r8
je 0x1400427c7
lea r8, [0x1400fb200]
lea r9, [0x1400fb600]
lea r10, [0x1400fba00]
lea r11, [0x1400fbe00]
nop word cs:[rax + rax]
movzx esi, byte [rcx]
movzx edi, byte [rcx + 1]
movzx r15d, byte [rcx + 2]
mov ebx, dword [r9 + rdi*4]
or ebx, dword [r8 + rsi*4]
or ebx, dword [r10 + r15*4]
movzx esi, byte [rcx + 3]
or ebx, dword [r11 + rsi*4]
cmp ebx, 0x1ffffff
jae 0x14004285d
add rcx, 4
mov esi, ebx
shr esi, 0x10
mov byte [rax], bl
mov byte [rax + 1], bh
mov byte [rax + 2], sil
add rax, 3
dec rdx
jne 0x140042780
test r14, r14
je 0x140042846
cmp r14d, 1
je 0x140042809
cmp r14d, 2
jne 0x140042969
movzx edx, byte [rcx]
movzx ecx, byte [rcx + 1]
lea r8, [0x1400fb200]
lea r9, [0x1400fb600]
mov ecx, dword [r9 + rcx*4]
or ecx, dword [r8 + rdx*4]
cmp ecx, 0x1ffffff
jae 0x140042a00
mov byte [rax], cl
jmp 0x140042846
movzx edx, byte [rcx]
movzx r8d, byte [rcx + 1]
movzx r9d, byte [rcx + 2]
lea r10, [0x1400fb200]
lea rcx, [0x1400fb600]
mov ecx, dword [rcx + r8*4]
or ecx, dword [r10 + rdx*4]
lea rdx, [0x1400fba00]
or ecx, dword [rdx + r9*4]
cmp ecx, 0x1ffffff
jae 0x140042ac2
mov word [rax], cx
mov rax, r13
add rsp, 0xd8
pop rbx
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
mov qword [rbp + 0x38], r13
cmp byte [0x140184c17], 0
jne 0x1400428dd
xor ecx, ecx
movabs r8, 0x8888888888888889
lea r9, [0x1400fc250]
lea r10, [0x140184be7]
nop word cs:[rax + rax]
mov rax, rcx
mul r8
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe2
lea rdx, [r9 + rcx]
movzx r11d, byte [rax + rdx + 0x24d5]
movzx eax, byte [rax + rdx + 0x24d6]
xor r11b, byte [rcx + r9 + 0x24f3]
xor al, byte [rcx + r9 + 0x24f4]
mov byte [rcx + r10], r11b
mov byte [rcx + r10 + 1], al
add rcx, 2
cmp rcx, 0x30
jne 0x140042890
mov byte [0x140184c17], 1
lea rax, vtable.std::exception.0
mov qword [rbp - 0x28], rax
lea rdx, [rbp - 0x20]
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
lea rax, [0x140184be7]
mov qword [rbp + 0x40], rax
mov byte [rbp + 0x48], 1
lea rcx, [rbp + 0x40]
call sub.VCRUNTIME140.dll___std_exception_copy
lea rax, vtable.std::runtime_error.0
mov qword [rbp - 0x28], rax
lea rdx, [0x14015b5b0]
lea rcx, [rbp - 0x28]
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x140042bd1
call fcn.14005b210
lea rdx, [0x140184b71]
lea rsi, [rbp - 0x58]
jmp 0x14004294d
call fcn.14005b2b0
lea rdx, [0x140184ba8]
lea rsi, [rbp - 0x40]
mov rcx, rsi
call fcn.140029020
lea rdx, [0x14015b5b0]
mov rcx, rsi
call sub.VCRUNTIME140.dll__CxxThrowException
call fcn.14001c100
mov qword [rbp + 0x38], r13
cmp byte [0x140184c4d], 0
jne 0x140042b88
mov ecx, 1
xor r8d, r8d
movabs r10, 0x97b425ed097b425f
lea r11, [0x1400fc250]
lea rsi, [0x140184c18]
mov rax, rcx
mul r10
mov r9, rdx
mov rax, r8
mul r10
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe5
lea rdx, [r11 + r8]
movzx eax, byte [rax + rdx + 0x2533]
xor al, byte [r8 + r11 + 0x254e]
mov byte [r8 + rsi], al
cmp r8, 0x34
je 0x140042b81
shr r9, 4
imul rax, r9, 0xffffffffffffffe5
add rax, r11
add rax, 0x2534
movzx eax, byte [rax + r8]
xor al, byte [r8 + r11 + 0x254f]
mov byte [r8 + rsi + 1], al
add r8, 2
add rcx, 2
jmp 0x14004299a
mov qword [rbp + 0x38], r13
cmp byte [0x140184c17], 0
jne 0x140042a74
xor ecx, ecx
movabs r8, 0x8888888888888889
lea r9, [0x1400fc250]
lea r10, [0x140184be7]
mov rax, rcx
mul r8
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe2
lea rdx, [r9 + rcx]
movzx r11d, byte [rax + rdx + 0x24d5]
movzx eax, byte [rax + rdx + 0x24d6]
xor r11b, byte [rcx + r9 + 0x24f3]
xor al, byte [rcx + r9 + 0x24f4]
mov byte [rcx + r10], r11b
mov byte [rcx + r10 + 1], al
add rcx, 2
cmp rcx, 0x30
jne 0x140042a27
mov byte [0x140184c17], 1
lea rax, vtable.std::exception.0
mov qword [rbp + 8], rax
lea rdx, [rbp + 0x10]
xorps xmm0, xmm0
movups xmmword [rbp + 0x10], xmm0
lea rax, [0x140184be7]
mov qword [rbp + 0x40], rax
mov byte [rbp + 0x48], 1
lea rcx, [rbp + 0x40]
call sub.VCRUNTIME140.dll___std_exception_copy
lea rax, vtable.std::runtime_error.0
mov qword [rbp + 8], rax
lea rdx, [0x14015b5b0]
lea rcx, [rbp + 8]
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x140042bd1
mov qword [rbp + 0x38], r13
cmp byte [0x140184c17], 0
jne 0x140042b36
xor ecx, ecx
movabs r8, 0x8888888888888889
lea r9, [0x1400fc250]
lea r10, [0x140184be7]
mov rax, rcx
mul r8
shr rdx, 4
imul rax, rdx, 0xffffffffffffffe2
lea rdx, [r9 + rcx]
movzx r11d, byte [rax + rdx + 0x24d5]
movzx eax, byte [rax + rdx + 0x24d6]
xor r11b, byte [rcx + r9 + 0x24f3]
xor al, byte [rcx + r9 + 0x24f4]
mov byte [rcx + r10], r11b
mov byte [rcx + r10 + 1], al
add rcx, 2
cmp rcx, 0x30
jne 0x140042ae9
mov byte [0x140184c17], 1
lea rax, vtable.std::exception.0
mov qword [rbp - 0x10], rax
lea rdx, [rbp - 8]
xorps xmm0, xmm0
movups xmmword [rbp - 8], xmm0
lea rax, [0x140184be7]
mov qword [rbp + 0x40], rax
mov byte [rbp + 0x48], 1
lea rcx, [rbp + 0x40]
call sub.VCRUNTIME140.dll___std_exception_copy
lea rax, vtable.std::runtime_error.0
mov qword [rbp - 0x10], rax
lea rdx, [0x14015b5b0]
lea rcx, [rbp - 0x10]
call sub.VCRUNTIME140.dll__CxxThrowException
jmp 0x140042bd1
mov byte [0x140184c4d], 1
lea rax, vtable.std::exception.0
mov qword [rbp + 0x20], rax
lea rdx, [rbp + 0x28]
xorps xmm0, xmm0
movups xmmword [rbp + 0x28], xmm0
lea rax, [0x140184c18]
mov qword [rbp + 0x40], rax
mov byte [rbp + 0x48], 1
lea rcx, [rbp + 0x40]
call sub.VCRUNTIME140.dll___std_exception_copy
lea rax, vtable.std::runtime_error.0
mov qword [rbp + 0x20], rax
lea rdx, [0x14015b5b0]
lea rcx, [rbp + 0x20]
call sub.VCRUNTIME140.dll__CxxThrowException
int3