Function at 0x1400d2990
Capabilities:
Encode data using xor
Hash data using crc32b

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x380]
sub rsp, 0x480
xor r9d, r9d
mov eax, r9d
mov dword [rbp + 0x3d0], eax
mov dword [rbp + 0x3d8], eax
mov qword [rsp + 0x30], r9
mov r8d, recv
mov qword [rsp + 0x48], r8
mov qword [rsp + 0x40], r9
mov byte [rsp + 0x30], al
mov rbx, qword [rcx]
lea r15d, [r9 + 1]
cmp rbx, qword [rcx + 8]
je 0x1400d2c74
mov ecx, edx
mov qword [rsp + 0x70], rcx
nop word [rax + rax]
mov rsi, qword [rbx + 0x10]
cmp rsi, rcx
jbe 0x1400d2bea
mov r12, rcx
mov qword [rsp + 0x50], r9
mov r14d, recv
mov qword [rsp + 0x68], r14
mov rsi, r9
mov qword [rsp + 0x60], r9
mov byte [rsp + 0x50], 0
or eax, 1
mov dword [rbp + 0x3d0], eax
mov dword [rbp + 0x3d8], eax
mov rdi, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1400d2a49
mov rdi, qword [rbx]
test rcx, rcx
je 0x1400d2b2e
nop dword [rax]
nop word [rax + rax]
dec r12
movzx r9d, byte [rdi]
test r9b, r9b
je 0x1400d2b29
cmp rsi, r14
jae 0x1400d2a98
lea rax, [rsi + 1]
mov qword [rsp + 0x60], rax
lea rax, [rsp + 0x50]
cmp r14, 0x10
cmovae rax, qword [rsp + 0x50]
mov byte [rax + rsi], r9b
mov byte [rax + rsi + 1], 0
jmp 0x1400d2aa8
xor r8d, r8d
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.14000b160
inc rdi
movzx eax, byte [rdi]
movzx ecx, al
and cl, 0xc0
cmp cl, 0x80
jne 0x1400d2b16
nop dword [rax]
mov rdx, qword [rsp + 0x60]
mov r8, qword [rsp + 0x68]
cmp rdx, r8
jae 0x1400d2af1
lea rcx, [rdx + 1]
mov qword [rsp + 0x60], rcx
lea rcx, [rsp + 0x50]
cmp r8, 0x10
cmovae rcx, qword [rsp + 0x50]
mov byte [rcx + rdx], al
mov byte [rcx + rdx + 1], 0
jmp 0x1400d2b05
movzx r9d, al
xor r8d, r8d
mov rdx, r15
lea rcx, [rsp + 0x50]
call fcn.14000b160
inc rdi
movzx eax, byte [rdi]
movzx ecx, al
and cl, 0xc0
cmp cl, 0x80
je 0x1400d2ac0
mov r14, qword [rsp + 0x68]
mov rsi, qword [rsp + 0x60]
test r12, r12
jne 0x1400d2a60
mov r8, qword [rsp + 0x48]
lea r9, [rsp + 0x50]
mov r13, qword [rsp + 0x50]
cmp r14, 0x10
cmovae r9, r13
mov rcx, qword [rsp + 0x40]
mov rax, r8
sub rax, rcx
cmp rsi, rax
ja 0x1400d2b7f
lea rax, [rcx + rsi]
mov qword [rsp + 0x40], rax
lea rdi, [rsp + 0x30]
cmp r8, 0x10
cmovae rdi, qword [rsp + 0x30]
add rdi, rcx
mov r8, rsi
mov rdx, r9
mov rcx, rdi
call fcn.140207eb0
mov byte [rdi + rsi], 0
jmp 0x1400d2b9e
mov qword [rsp + 0x20], rsi
xor r8d, r8d
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.14000b2d0
mov r14, qword [rsp + 0x68]
mov r13, qword [rsp + 0x50]
mov eax, dword [rbp + 0x3d0]
and eax, 0xfffffffe
mov dword [rbp + 0x3d0], eax
cmp r14, 0x10
jb 0x1400d2c51
lea rdx, [r14 + 1]
mov rax, r13
cmp rdx, 0x1000
jb 0x1400d2be0
add rdx, 0x27
mov r13, qword [r13 - 8]
sub rax, r13
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d2e5c
mov rcx, r13
call fcn.140205dc4
jmp 0x1400d2c4b
mov r9, rbx
cmp qword [rbx + 0x18], 0x10
jb 0x1400d2bf7
mov r9, qword [rbx]
mov rcx, qword [rsp + 0x40]
mov rax, r8
sub rax, rcx
cmp rsi, rax
ja 0x1400d2c36
lea rax, [rsi + rcx]
mov qword [rsp + 0x40], rax
lea rdi, [rsp + 0x30]
cmp r8, 0x10
cmovae rdi, qword [rsp + 0x30]
add rdi, rcx
mov r8, rsi
mov rdx, r9
mov rcx, rdi
call fcn.140207eb0
mov byte [rdi + rsi], 0
jmp 0x1400d2c4b
mov qword [rsp + 0x20], rsi
xor r8d, r8d
mov rdx, rsi
lea rcx, [rsp + 0x30]
call fcn.14000b2d0
mov eax, dword [rbp + 0x3d0]
add rbx, 0x20
mov rcx, qword [rbp + 0x3c0]
mov r8, qword [rsp + 0x48]
cmp rbx, qword [rcx + 8]
je 0x1400d2c74
mov rcx, qword [rsp + 0x70]
xor r9d, r9d
jmp 0x1400d2a00
mov ebx, 0xffffffff
mov eax, 0x80000000
nop
mov ecx, eax
or ecx, r15d
mov edx, ecx
and edx, ebx
cmp edx, eax
je 0x1400d2c92
cmp edx, r15d
jne 0x1400d2c94
xor ebx, ecx
shr eax, 1
add r15d, r15d
cmp eax, r15d
ja 0x1400d2c80
lea rdi, [rsp + 0x30]
mov r9, qword [rsp + 0x30]
cmp r8, 0x10
cmovae rdi, r9
mov rsi, qword [rsp + 0x40]
mov ecx, dword [0x140364140]
mov rax, qword gs:[0x58]
mov edx, 0x20
mov r14, qword [rax + rcx*8]
add r14, rdx
mov eax, dword [r14]
cmp dword [0x140361a58], eax
jg 0x1400d2dd2
jmp 0x1400d2d43
movups xmm0, xmmword [rax]
movups xmmword [rdx], xmm0
movups xmm1, xmmword [rax + 0x10]
movups xmmword [rdx + 0x10], xmm1
movups xmm0, xmmword [rax + 0x20]
movups xmmword [rdx + 0x20], xmm0
movups xmm1, xmmword [rax + 0x30]
movups xmmword [rdx + 0x30], xmm1
movups xmm0, xmmword [rax + 0x40]
movups xmmword [rdx + 0x40], xmm0
movups xmm1, xmmword [rax + 0x50]
movups xmmword [rdx + 0x50], xmm1
movups xmm0, xmmword [rax + 0x60]
movups xmmword [rdx + 0x60], xmm0
lea rdx, [rdx + 0x80]
movups xmm1, xmmword [rax + 0x70]
movups xmmword [rdx - 0x10], xmm1
lea rax, [rax + 0x80]
sub r8, 1
je 0x1400d2e38
jmp 0x1400d2ce1
mov r9, qword [rsp + 0x30]
mov r8, qword [rsp + 0x48]
test rsi, rsi
je 0x1400d2d68
mov rdx, qword [0x140361a50]
nop
movzx eax, bl
xor al, byte [rdi]
lea rdi, [rdi + 1]
movzx ecx, al
shr ebx, 8
xor ebx, dword [rdx + rcx*4]
sub rsi, 1
jne 0x1400d2d50
not ebx
mov eax, 0xaaaaaaab
mul ebx
shr edx, 4
lea eax, [rdx + rdx*2]
shl eax, 3
sub ebx, eax
cmp r8, 0x10
jb 0x1400d2daf
lea rdx, [r8 + 1]
mov rax, r9
cmp rdx, 0x1000
jb 0x1400d2da7
add rdx, 0x27
mov r9, qword [r9 - 8]
sub rax, r9
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x1400d2dcc
mov rcx, r9
call fcn.140205dc4
mov eax, ebx
mov rbx, qword [rsp + 0x4c8]
add rsp, 0x480
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.14020c78c
nop
lea rcx, [0x140361a58]
call fcn.14020620c
cmp dword [0x140361a58], 0xffffffff
jne 0x1400d2d39
lea r15, [0x140361a60]
mov eax, dword [r14]
cmp dword [0x140361e60], eax
jle 0x1400d2e44
lea rcx, [0x140361e60]
call fcn.14020620c
cmp dword [0x140361e60], 0xffffffff
jne 0x1400d2e44
mov r9b, 1
mov edx, 0x20
mov r8d, 0x4c11db7
lea rcx, [rsp + 0x78]
call fcn.14006b460
mov rdx, r15
mov r8d, 8
jmp 0x1400d2ce1
lea rcx, [0x140361e60]
call fcn.1402061ac
mov qword [0x140361a50], r15
lea rcx, [0x140361a58]
call fcn.1402061ac
jmp 0x1400d2d39
call fcn.14020c78c
int3