Function at 0x14009f050
Capabilities:
Hash data using sha512

Disassembly:
push r14
push rsi
push rdi
push rbx
sub rsp, 0x38
vmovdqa xmmword [rsp + 0x20], xmm6
mov ebx, 0xffffff53
test rcx, rcx
je 0x14009f2d8
mov rdi, rdx
test rdx, rdx
je 0x14009f2d8
mov rsi, rcx
mov eax, dword [rcx + 0xc0]
mov ebx, 0xffffff40
cmp rax, 0x7f
ja 0x14009f2d8
lea r14, [rsi + 0x40]
lea ecx, [rax + 1]
mov dword [rsi + 0xc0], ecx
mov byte [rsi + rax + 0x40], 0x80
mov ebx, dword [rsi + 0xc0]
cmp rbx, 0x71
jb 0x14009f180
mov rcx, rbx
add rcx, r14
mov r8d, 0x80
sub r8d, ebx
xor ebx, ebx
xor edx, edx
call fcn.14016e0e0
mov dword [rsi + 0xc0], 0x80
vmovdqa xmm0, xmmword [0x140176140]
vmovdqu xmm1, xmmword [rsi + 0x40]
vmovdqu xmm2, xmmword [rsi + 0x50]
vmovdqu xmm3, xmmword [rsi + 0x60]
vmovdqu xmm4, xmmword [rsi + 0x70]
vpshufb xmm2, xmm2, xmm0
vpshufb xmm1, xmm1, xmm0
vinsertf128 ymm1, ymm1, xmm2, 1
vmovups ymmword [rsi + 0x40], ymm1
vpshufb xmm1, xmm4, xmm0
vpshufb xmm2, xmm3, xmm0
vinsertf128 ymm1, ymm2, xmm1, 1
vmovups ymmword [rsi + 0x60], ymm1
vmovdqu xmm1, xmmword [rsi + 0x90]
vpshufb xmm1, xmm1, xmm0
vmovdqu xmm2, xmmword [rsi + 0x80]
vpshufb xmm2, xmm2, xmm0
vinsertf128 ymm1, ymm2, xmm1, 1
vmovups ymmword [rsi + 0x80], ymm1
vmovdqu xmm1, xmmword [rsi + 0xb0]
vpshufb xmm1, xmm1, xmm0
vmovdqu xmm2, xmmword [rsi + 0xa0]
vpshufb xmm0, xmm2, xmm0
vinsertf128 ymm0, ymm0, xmm1, 1
vmovups ymmword [rsi + 0xa0], ymm0
mov rcx, rsi
vzeroupper
call fcn.14009bd10
mov dword [rsi + 0xc0], 0
mov eax, ebx
add r14, rax
mov r8d, WSACleanup
sub r8d, ebx
xor ebx, ebx
mov rcx, r14
xor edx, edx
call fcn.14016e0e0
mov rax, qword [rsi + 0xc8]
mov rcx, qword [rsi + 0xd0]
shld rcx, rax, 3
mov qword [rsi + 0xd0], rcx
shl rax, 3
mov qword [rsi + 0xc8], rax
vmovdqu xmm0, xmmword [rsi + 0x40]
vmovdqu xmm1, xmmword [rsi + 0x50]
vmovdqu xmm2, xmmword [rsi + 0x60]
vmovdqu xmm3, xmmword [rsi + 0x70]
vmovdqa xmm6, xmmword [0x140176140]
vpshufb xmm1, xmm1, xmm6
vpshufb xmm0, xmm0, xmm6
vinsertf128 ymm0, ymm0, xmm1, 1
vmovups ymmword [rsi + 0x40], ymm0
vpshufb xmm0, xmm3, xmm6
vpshufb xmm1, xmm2, xmm6
vinsertf128 ymm0, ymm1, xmm0, 1
vmovups ymmword [rsi + 0x60], ymm0
vmovdqu xmm0, xmmword [rsi + 0x90]
vpshufb xmm0, xmm0, xmm6
vmovdqu xmm1, xmmword [rsi + 0x80]
vpshufb xmm1, xmm1, xmm6
vinsertf128 ymm0, ymm1, xmm0, 1
vmovups ymmword [rsi + 0x80], ymm0
vmovdqu xmm0, xmmword [rsi + 0xa0]
vpshufb xmm0, xmm0, xmm6
vmovdqu xmmword [rsi + 0xa0], xmm0
mov qword [rsi + 0xb0], rcx
mov qword [rsi + 0xb8], rax
mov rcx, rsi
vzeroupper
call fcn.14009bd10
vmovdqu xmm0, xmmword [rsi]
vmovdqu xmm1, xmmword [rsi + 0x10]
vmovdqu xmm2, xmmword [rsi + 0x20]
vmovdqu xmm3, xmmword [rsi + 0x30]
vpshufb xmm1, xmm1, xmm6
vpshufb xmm0, xmm0, xmm6
vinsertf128 ymm0, ymm0, xmm1, 1
vmovups ymmword [rsi], ymm0
vpshufb xmm0, xmm3, xmm6
vpshufb xmm1, xmm2, xmm6
vinsertf128 ymm0, ymm1, xmm0, 1
vmovups ymmword [rsi + 0x20], ymm0
vmovups ymm0, ymmword [rsi + 0x20]
vmovups ymmword [rdi + 0x20], ymm0
vmovups ymm0, ymmword [rsi]
vmovups ymmword [rdi], ymm0
vmovaps ymm0, ymmword [0x140176460]
vmovups ymmword [rsi], ymm0
vmovaps ymm0, ymmword [0x140176480]
vmovups ymmword [rsi + 0x20], ymm0
mov dword [rsi + 0xc0], 0
vxorps xmm0, xmm0, xmm0
vmovups xmmword [rsi + 0xc8], xmm0
mov eax, ebx
vmovaps xmm6, xmmword [rsp + 0x20]
add rsp, 0x38
pop rbx
pop rdi
pop rsi
pop r14
vzeroupper
ret