Function at 0x14009d8f0
Capabilities:
Authenticate hmac
Encode data using xor
Hash data using sha384

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x20
mov ebp, r9d
mov r10, r8
mov r8d, edx
mov rsi, rcx
test rcx, rcx
je 0x14009dccf
test r10, r10
jne 0x14009d92f
test r9d, r9d
jne 0x14009dccf
lea eax, [rdx - 3]
cmp eax, 5
jbe 0x14009d943
lea eax, [rdx - 0xa]
cmp eax, 3
ja 0x14009dccf
cmp byte [rcx + 0x228], 0
je 0x14009d951
call fcn.14009e170
mov edx, r8d
mov byte [rsi + 0x229], 0
mov rcx, rsi
mov byte [rsi + 0x228], r8b
call fcn.14009d6f0
mov edi, eax
test eax, eax
jne 0x14009dcd4
movzx ecx, byte [rsi + 0x228]
lea rbx, [rsi + 0xe0]
xor r15d, r15d
lea r12, [rsi + 0x160]
lea r13d, [rax + 0x20]
sub ecx, 3
je 0x14009db92
sub ecx, 1
je 0x14009db57
sub ecx, 2
je 0x14009db0e
sub ecx, 1
je 0x14009da28
cmp ecx, 1
jne 0x14009dccf
mov r14d, 0x80
cmp ebp, r14d
ja 0x14009d9e0
test r10, r10
je 0x14009dbd5
mov r8, rbp
mov rdx, r10
mov rcx, rbx
call fcn.14014bb50
jmp 0x14009dbd5
test r10, r10
je 0x14009da1c
mov r8d, ebp
mov rdx, r10
mov rcx, rsi
call fcn.1400c5660
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov rdx, rbx
mov rcx, rsi
call fcn.1400c5940
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov ecx, 0x40
jmp 0x14009dbdd
mov edi, 0xffffff53
mov eax, edi
jmp 0x14009dcd4
mov r14d, 0x80
cmp ebp, r14d
jbe 0x14009d9c4
test r10, r10
je 0x14009da1c
mov r8d, ebp
mov rdx, r10
mov rcx, rsi
call fcn.1400c5660
mov edi, eax
test eax, eax
jne 0x14009dbcd
test rbx, rbx
je 0x14009da1c
mov rcx, rsi
call fcn.1400c5800
mov edi, eax
test eax, eax
jne 0x14009dccb
movups xmm0, xmmword [rsi]
movabs rax, 0xcbbb9d5dc1059ed8
mov ecx, 0x30
mov edi, r15d
movups xmmword [rbx], xmm0
movups xmm1, xmmword [rsi + 0x10]
movups xmmword [rbx + 0x10], xmm1
movups xmm0, xmmword [rsi + 0x20]
movups xmmword [rbx + 0x20], xmm0
mov qword [rsi], rax
movabs rax, 0x629a292a367cd507
mov qword [rsi + 8], rax
movabs rax, 0x9159015a3070dd17
mov qword [rsi + 0x10], rax
movabs rax, 0x152fecd8f70e5939
mov qword [rsi + 0x18], rax
movabs rax, 0x67332667ffc00b31
mov qword [rsi + 0x20], rax
movabs rax, 0x8eb44a8768581511
mov qword [rsi + 0x28], rax
movabs rax, 0xdb0c2e0d64f98fa7
mov qword [rsi + 0x30], rax
movabs rax, 0x47b5481dbefa4fa4
mov qword [rsi + 0x38], rax
mov dword [rsi + 0xc0], r15d
mov qword [rsi + 0xc8], r15
mov qword [rsi + 0xd0], r15
jmp 0x14009dbdd
mov r14d, 0x40
cmp ebp, r14d
jbe 0x14009d9c4
test r10, r10
je 0x14009da1c
mov r8d, ebp
mov rdx, r10
mov rcx, rsi
call fcn.1400d0110
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov rdx, rbx
mov rcx, rsi
call fcn.1400d0ac0
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov ecx, r13d
jmp 0x14009dbdd
mov r14d, 0x40
cmp ebp, r14d
jbe 0x14009d9c4
mov r8d, ebp
mov rdx, r10
mov rcx, rsi
call fcn.1400c2270
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov rdx, rbx
mov rcx, rsi
call fcn.1400c2710
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov ecx, reloc.WS2_32.dll_sendto
jmp 0x14009dbdd
mov r14d, 0x40
cmp ebp, r14d
jbe 0x14009d9c4
mov r8d, ebp
mov rdx, r10
mov rcx, rsi
call fcn.1400d54c0
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov rdx, rbx
mov rcx, rsi
call fcn.1400d5630
mov edi, eax
test eax, eax
jne 0x14009dbcd
mov ecx, reloc.WS2_32.dll_recv
jmp 0x14009dbdd
test edi, edi
jne 0x14009dccb
mov rcx, rbp
cmp ebp, r14d
jae 0x14009dbed
mov r8d, r14d
xor edx, edx
sub r8d, ecx
add rcx, rbx
call fcn.14014c1f0
lea eax, [r14 - 1]
lea rdx, [rax + rbx]
add rax, r12
cmp rbx, rax
ja 0x14009dc2d
cmp rdx, r12
jb 0x14009dc2d
cmp r15d, r14d
jae 0x14009dccb
mov ecx, r14d
nop
movzx eax, byte [rbx]
lea rbx, [rbx + 1]
xor al, 0x5c
mov byte [rbx + 0x7f], al
xor byte [rbx - 1], 0x36
sub rcx, 1
jne 0x14009dc10
mov eax, edi
jmp 0x14009dcd4
movdqa xmm3, xmmword [0x14017d110]
movdqa xmm4, xmmword [0x14017d0a0]
nop dword [rax]
mov eax, r15d
add r15d, 0x40
movdqu xmm1, xmmword [rax + rbx]
movdqa xmm0, xmm1
xorps xmm1, xmm4
movdqu xmmword [rax + rbx], xmm1
xorps xmm0, xmm3
movdqu xmmword [rax + r12], xmm0
lea eax, [r13 - 0x10]
movdqu xmm1, xmmword [rax + rbx]
movdqa xmm0, xmm1
xorps xmm1, xmm4
movdqu xmmword [rax + rbx], xmm1
xorps xmm0, xmm3
movdqu xmmword [rax + r12], xmm0
mov eax, r13d
movdqu xmm1, xmmword [rax + rbx]
movdqa xmm0, xmm1
xorps xmm1, xmm4
movdqu xmmword [rax + rbx], xmm1
xorps xmm0, xmm3
movdqa xmm1, xmm4
movdqu xmmword [rax + r12], xmm0
lea eax, [r13 + 0x10]
add r13d, 0x40
movdqa xmm0, xmm3
movdqu xmm2, xmmword [rax + rbx]
xorps xmm0, xmm2
xorps xmm1, xmm2
movdqu xmmword [rax + r12], xmm0
movdqu xmmword [rax + rbx], xmm1
cmp r15d, r14d
jb 0x14009dc40
mov eax, edi
jmp 0x14009dcd4
mov eax, 0xffffff53
mov rbx, qword [rsp + 0x50]
mov rbp, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x60]
add rsp, 0x20
pop r15
pop r14
pop r13
pop r12
pop rdi
ret