Function at 0x14003f9c0
Capabilities:
Hash data using sha512

Disassembly:
push rbp
push rbx
push rsi
push rdi
lea rbp, [rsp - 0xb8]
sub rsp, 0x1b8
mov rax, qword [0x14009d090]
xor rax, rsp
mov qword [rbp + 0x90], rax
movaps xmm0, xmmword [0x14008ce30]
xor esi, esi
movaps xmm1, xmmword [0x14008ce40]
mov rdi, rdx
mov r10, r9
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmmword [0x14008ce50]
mov r9, r8
movaps xmmword [rsp + 0x40], xmm1
cmp rdx, 0x40
movaps xmm1, xmmword [0x14008ce60]
mov rbx, rcx
movaps xmmword [rsp + 0x50], xmm0
mov r8, r10
movaps xmmword [rsp + 0x60], xmm1
mov rdx, r9
mov dword [rsp + 0x20], edi
mov dword [rbp - 0x80], edi
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
ja 0x14003fa83
movabs rcx, 0x6a09e667f3bcc908
mov rax, rdi
or rax, 0x1010000
mov esi, 4
xor rax, rcx
mov qword [rbp], rsi
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
call fcn.14003f7b0
mov r8, rdi
lea rcx, [rsp + 0x30]
mov rdx, rbx
call fcn.14003f8b0
jmp 0x14003fcb8
mov qword [rsp + 0x1b0], r12
lea rax, [rsi + 4]
movabs r12, 0x6a09e667f2bdc948
mov qword [rsp + 0x1a8], r14
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], r12
mov qword [rbp], rax
call fcn.14003f7b0
mov r8d, 0x40
lea rdx, [rbp + 0x10]
lea rcx, [rsp + 0x30]
call fcn.14003f8b0
movaps xmm2, xmmword [rbp + 0x10]
lea r14d, [rdi - 0x20]
movaps xmm3, xmmword [rbp + 0x20]
movaps xmm4, xmmword [rbp + 0x40]
movaps xmm5, xmmword [rbp + 0x30]
movups xmmword [rbx], xmm2
movups xmmword [rbx + 0x10], xmm3
add rbx, 0x20
cmp r14d, 0x40
jbe 0x14003fc05
mov qword [rsp + 0x1a0], r15
lea r15d, [r14 - 0x41]
shr r15d, 5
inc r15d
movaps xmm0, xmmword [0x14008ce30]
lea rax, [rsi + 0x40]
movaps xmm1, xmmword [0x14008ce40]
lea rcx, [rax + rsi]
cmp rcx, rax
mov qword [rsp + 0x70], rcx
movaps xmmword [rsp + 0x30], xmm0
lea rcx, [rbp - 0x80]
movaps xmm0, xmmword [0x14008ce50]
mov rdx, rsi
adc rdx, rdx
movaps xmmword [rsp + 0x40], xmm1
movaps xmm1, xmmword [0x14008ce60]
mov r8d, 0x80
mov qword [rsp + 0x78], rdx
sub r8, rax
xor edx, edx
movaps xmmword [rsp + 0x50], xmm0
add rcx, rax
movaps xmmword [rsp + 0x60], xmm1
mov qword [rsp + 0x30], r12
movaps xmmword [rbp - 0x80], xmm2
movaps xmmword [rbp - 0x70], xmm3
movaps xmmword [rbp - 0x60], xmm5
movaps xmmword [rbp - 0x50], xmm4
mov qword [rbp], rax
call fcn.140055050
mov r8, 0xffffffffffffffff
lea rdx, [rbp - 0x80]
lea rcx, [rsp + 0x30]
call fcn.14003d6a0
cmp dword [0x14032d6c4], esi
movups xmm2, xmmword [rsp + 0x30]
movups xmm3, xmmword [rsp + 0x40]
movups xmm5, xmmword [rsp + 0x50]
movups xmm4, xmmword [rsp + 0x60]
movaps xmmword [rbp + 0x10], xmm2
movaps xmmword [rbp + 0x20], xmm3
movaps xmmword [rbp + 0x30], xmm5
movaps xmmword [rbp + 0x40], xmm4
je 0x14003fbe4
xor eax, eax
lea rdi, [rbp + 0x50]
mov ecx, 0x40
rep stosb byte [rdi], al
lea rdi, [rbp - 0x80]
mov ecx, 0x80
rep stosb byte [rdi], al
lea rdi, [rsp + 0x30]
mov ecx, 0x40
rep stosb byte [rdi], al
movups xmmword [rbx], xmm2
add r14d, 0xffffffe0
movups xmmword [rbx + 0x10], xmm3
add rbx, 0x20
sub r15, 1
jne 0x14003fb04
mov r15, qword [rsp + 0x1a0]
movaps xmm0, xmmword [0x14008ce30]
lea rdx, [rbp + 0x10]
movaps xmm1, xmmword [0x14008ce40]
movabs rcx, 0x6a09e667f3bcc908
movaps xmmword [rsp + 0x30], xmm0
movaps xmm0, xmmword [0x14008ce50]
movaps xmmword [rsp + 0x40], xmm1
movaps xmm1, xmmword [0x14008ce60]
mov qword [rsp + 0x70], rsi
mov qword [rsp + 0x78], rsi
add rsi, 0x40
mov eax, r14d
or rax, 0x1010000
mov r8d, r14d
xor rax, rcx
movaps xmmword [rsp + 0x50], xmm0
lea rcx, [rsp + 0x30]
mov qword [rsp + 0x30], rax
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rbp - 0x80], xmm2
movaps xmmword [rbp - 0x70], xmm3
movaps xmmword [rbp - 0x60], xmm5
movaps xmmword [rbp - 0x50], xmm4
mov qword [rbp], rsi
call fcn.14003f8b0
mov r8d, r14d
lea rdx, [rbp + 0x10]
mov rcx, rbx
call fcn.1400549a0
cmp dword [0x14032d6c4], 0
mov r14, qword [rsp + 0x1a8]
mov r12, qword [rsp + 0x1b0]
je 0x14003fcb8
lea rdi, [rbp + 0x10]
xor eax, eax
mov ecx, 0x40
rep stosb byte [rdi], al
mov rcx, qword [rbp + 0x90]
xor rcx, rsp
call fcn.140052720
add rsp, 0x1b8
pop rdi
pop rsi
pop rbx
pop rbp
ret