Function at 0x1400ee640
Capabilities:
Hash data using sha512

Disassembly:
push rbp
movzx eax, dl
sub edx, 1
mov r10, rcx
mov rbp, rsp
push r12
push rdi
push rsi
mov rsi, r8
push rbx
mov ebx, r9d
and rsp, 0xfffffffffffffff0
mov ah, bl
sub rsp, 0xe0
mov r8, qword [rbp + 0x30]
mov rcx, qword [rbp + 0x38]
cmp dl, 0x3f
ja 0x1400ee7fe
lea edx, [r9 - 1]
cmp dl, 0x3f
ja 0x1400ee7fe
test rsi, rsi
je 0x1400ee7fe
mov qword [rsp + 0x32], 0
mov word [rsp + 0x20], ax
mov qword [rsp + 0x22], 0x101
mov qword [rsp + 0x2a], 0
mov qword [rsp + 0x38], 0
test r8, r8
je 0x1400ee7f0
movdqu xmm1, xmmword [r8]
movups xmmword [rsp + 0x40], xmm1
test rcx, rcx
je 0x1400ee7e0
movdqu xmm2, xmmword [rcx]
movups xmmword [rsp + 0x50], xmm2
movdqu xmm0, xmmword [0x140190e20]
lea rdx, [r10 + 0x40]
xor eax, eax
mov ecx, 0x25
lea r12, [rsp + 0x60]
mov rdi, rdx
movzx r9d, r9b
movups xmmword [r10 + 0x10], xmm0
movdqu xmm0, xmmword [0x140190e10]
pxor xmm0, xmmword [rsp + 0x20]
rep stosq qword [rdi], rax
mov ecx, 0x10
mov byte [rdi], 0
mov rdi, r12
rep stosq qword [rdi], rax
movups xmmword [r10], xmm0
mov rdi, r12
movdqu xmm0, xmmword [0x140190e30]
pxor xmm0, xmmword [rsp + 0x40]
movups xmmword [r10 + 0x20], xmm0
movdqu xmm0, xmmword [0x140190e40]
pxor xmm0, xmmword [rsp + 0x50]
movups xmmword [r10 + 0x30], xmm0
cmp r9d, 8
jb 0x1400ee75a
mov rcx, r9
shr rcx, 3
rep movsq qword [rdi], qword [rsi]
xor eax, eax
test r9b, 4
jne 0x1400ee7c8
test r9b, 2
jne 0x1400ee7b0
and r9d, 1
jne 0x1400ee7a0
mov rdx, r12
mov rcx, r10
mov r8d, pe_nt_image_headers64
call fcn.1400ee390
mov rcx, r12
mov edx, pe_nt_image_headers64
call fcn.1400dbc20
lea rsp, [rbp - 0x20]
xor eax, eax
pop rbx
pop rsi
pop rdi
pop r12
pop rbp
ret
movzx edx, byte [rsi + rax]
mov byte [rdi + rax], dl
jmp 0x1400ee76e
movzx edx, word [rsi + rax]
mov word [rdi + rax], dx
add rax, 2
and r9d, 1
je 0x1400ee76e
jmp 0x1400ee7a0
mov eax, dword [rsi]
mov dword [rdi], eax
mov eax, 4
test r9b, 2
je 0x1400ee768
jmp 0x1400ee7b0
pxor xmm0, xmm0
movups xmmword [rsp + 0x50], xmm0
jmp 0x1400ee6da
pxor xmm0, xmm0
movups xmmword [rsp + 0x40], xmm0
jmp 0x1400ee6c8
call fcn.1400db9f0
nop word cs:[rax + rax]
nop
push rbp
lea eax, [r8 - 1]
mov rbp, rsp
push r13
push r12
push rdi
push rsi
push rbx
and rsp, 0xfffffffffffffff0
sub rsp, 0x70
cmp al, 0x3f
ja 0x1400ee9f7
cmp qword [rcx + 0x50], 0
mov rbx, rcx
jne 0x1400ee9f0
mov rax, qword [rbx + 0x48]
lea r12, [rbx + 0x60]
mov r13, rdx
mov esi, r8d
mov rcx, qword [rcx + 0x160]
mov r8, qword [0x140108380]
mov rdx, qword [rbx + 0x40]
cmp rcx, 0x80
jbe 0x1400ee8c7
lea r12, [rbx + 0x60]
xchg rdx, rax
mov rcx, rbx
add rax, 0x80
adc rdx, 0
movq xmm0, rax
mov qword [rsp + 0x28], rdx
mov rdx, r12
movhps xmm0, qword [rsp + 0x28]
movups xmmword [rbx + 0x40], xmm0
call r8
mov rax, qword [rbx + 0x160]
lea r8, [rax - 0x80]
mov qword [rbx + 0x160], r8
cmp r8, 0x80
ja 0x1400ee9fc
lea rdx, [rbx + 0xe0]
mov rcx, r12
call sub.msvcrt.dll_memcpy
mov rcx, qword [rbx + 0x160]
mov rax, qword [rbx + 0x40]
mov rdx, qword [rbx + 0x48]
add rax, rcx
adc rdx, 0
cmp byte [rbx + 0x168], 0
movq xmm0, rax
mov qword [rsp + 0x28], rdx
movhps xmm0, qword [rsp + 0x28]
movups xmmword [rbx + 0x40], xmm0
je 0x1400ee8fa
mov qword [rbx + 0x58], 0xffffffffffffffff
lea rax, [r12 + rcx]
mov r8d, 0x100
xor edx, edx
mov qword [rbx + 0x50], 0xffffffffffffffff
sub r8, rcx
mov rcx, rax
call sub.msvcrt.dll_memset
mov rdx, r12
mov rcx, rbx
call qword [0x140108380]
movdqu xmm1, xmmword [rbx]
movzx r8d, sil
movdqu xmm2, xmmword [rbx + 0x10]
lea rsi, [rsp + 0x30]
movdqu xmm3, xmmword [rbx + 0x20]
movups xmmword [rsp + 0x30], xmm1
movdqu xmm4, xmmword [rbx + 0x30]
movups xmmword [rsp + 0x40], xmm2
movups xmmword [rsp + 0x50], xmm3
movups xmmword [rsp + 0x60], xmm4
cmp r8d, 8
jae 0x1400ee9a0
test r8b, 4
jne 0x1400ee9c0
test r8d, r8d
je 0x1400ee975
movzx eax, byte [rsp + 0x30]
mov byte [r13], al
test r8b, 2
jne 0x1400ee9d8
mov edx, 0x40
mov rcx, rbx
call fcn.1400dbc20
mov edx, 0x100
mov rcx, r12
call fcn.1400dbc20
xor eax, eax
lea rsp, [rbp - 0x28]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop rbp
ret
mov rax, qword [rsi + r8 - 8]
lea ecx, [r8 - 1]
mov rdi, r13
shr ecx, 3
mov qword [r13 + r8 - 8], rax
rep movsq qword [rdi], qword [rsi]
jmp 0x1400ee975
mov eax, dword [rsp + 0x30]
mov dword [r13], eax
mov eax, dword [rsi + r8 - 4]
mov dword [r13 + r8 - 4], eax
jmp 0x1400ee975
movzx eax, word [rsi + r8 - 2]
mov word [r13 + r8 - 2], ax
jmp 0x1400ee975
mov eax, 0xffffffff
jmp 0x1400ee991
call fcn.1400db9f0
lea rdx, str.crypto_generichash_blake2b_ref_blake2b_ref.c
mov r8d, 0x132
lea rcx, str.S__buflen___BLAKE2B_BLOCKBYTES
call qword [sym.imp.msvcrt.dll__assert]
nop word cs:[rax + rax]