Function at 0x1400c5890
Capabilities:
Hash data using sha512

Disassembly:
mov qword [rsp + 0x10], rbx
mov qword [rsp + 0x18], rsi
mov qword [rsp + 0x20], rdi
push rbp
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0xe0]
sub rsp, 0x1e0
mov rax, qword [0x14018a240]
xor rax, rsp
mov qword [rbp + 0xd0], rax
mov rax, qword [rcx]
movups xmm0, xmmword [rdx]
mov r13, qword [rcx + 0x40]
mov rdi, rax
movups xmm1, xmmword [rdx + 0x10]
mov rbx, qword [rcx + 0x48]
mov qword [rbp - 0x78], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x68], rax
mov qword [rsp + 0x20], rax
mov rax, qword [rcx + 0x10]
mov qword [rbp - 0x60], rax
mov qword [rsp + 0x28], rax
mov rax, qword [rcx + 0x18]
mov qword [rbp - 0x58], rax
mov qword [rsp + 8], rax
mov rax, qword [rcx + 0x20]
mov qword [rbp - 0x50], rax
mov r10, rax
mov rax, qword [rcx + 0x28]
mov qword [rbp - 0x48], rax
mov r14, rax
mov rax, qword [rcx + 0x30]
mov qword [rbp - 0x40], rax
mov qword [rsp + 0x30], rax
mov rax, qword [rcx + 0x38]
mov qword [rbp - 0x38], rax
mov qword [rsp + 0x38], rax
movabs rax, 0x510e527fade682d1
xor r13, rax
movaps xmmword [rbp - 0x30], xmm0
movups xmm0, xmmword [rdx + 0x20]
movabs rax, 0x9b05688c2b3e6c1f
mov qword [rbp - 0x70], rcx
xor rbx, rax
movaps xmmword [rbp - 0x20], xmm1
movups xmm1, xmmword [rdx + 0x30]
mov rax, qword [rcx + 0x50]
movaps xmmword [rbp - 0x10], xmm0
movups xmm0, xmmword [rdx + 0x40]
mov qword [rsp + 0x40], select
movaps xmmword [rbp], xmm1
movups xmm1, xmmword [rdx + 0x50]
movaps xmmword [rbp + 0x10], xmm0
movups xmm0, xmmword [rdx + 0x60]
movaps xmmword [rbp + 0x20], xmm1
movups xmm1, xmmword [rdx + 0x70]
movabs rdx, 0x1f83d9abfb41bd6b
xor rax, rdx
movaps xmmword [rbp + 0x30], xmm0
movaps xmm0, xmmword [0x140169c00]
movabs rdx, 0x5be0cd19137e2179
mov qword [rsp + 0x10], rax
mov rax, qword [rcx + 0x58]
mov rcx, rax
movaps xmmword [rbp + 0x90], xmm0
mov r12, qword [rbp + 0x98]
lea rax, [0x140169c41]
mov r9, qword [rbp + 0x90]
xor rcx, rdx
movaps xmmword [rbp + 0x40], xmm1
movaps xmm1, xmmword [0x140169c10]
movaps xmmword [rbp + 0xa0], xmm1
mov rsi, qword [rbp + 0xa8]
mov r15, qword [rbp + 0xa0]
mov qword [rsp], rax
jmp 0x1400c5a1a
mov r15, qword [rsp + 0x50]
mov r14, qword [rsp + 0x48]
movzx eax, byte [rax - 1]
mov r8, qword [rbp + rax*8 - 0x30]
add r8, r10
add r8, rdi
mov rdi, qword [rsp]
xor r13, r8
mov r11, r13
shl r13, 0x20
shr r11, 0x20
or r11, r13
add r9, r11
mov rax, r9
xor rax, r10
mov r10, rax
shr rax, 0x18
shl r10, 0x28
or r10, rax
movzx eax, byte [rdi]
mov r13, qword [rbp + rax*8 - 0x30]
add r13, r10
add r13, r8
xor r11, r13
mov rax, r11
shr r11, 0x10
shl rax, 0x30
or rax, r11
mov qword [rsp + 0x58], rax
add rax, r9
xor r10, rax
mov qword [rsp + 0x68], rax
mov rdx, r10
shr rdx, 0x3f
lea rax, [r10 + r10]
or rdx, rax
movzx eax, byte [rdi + 1]
mov qword [rsp + 0x70], rdx
mov r8, qword [rbp + rax*8 - 0x30]
add r8, r14
add r8, qword [rsp + 0x20]
xor rbx, r8
mov r11, rbx
shl rbx, 0x20
shr r11, 0x20
or r11, rbx
lea r9, [r11 + r12]
mov rax, r9
xor rax, r14
mov r10, rax
shr rax, 0x18
shl r10, 0x28
or r10, rax
movzx eax, byte [rdi + 2]
mov rax, qword [rbp + rax*8 - 0x30]
add rax, r10
add rax, r8
xor r11, rax
mov qword [rsp + 0x18], rax
mov rax, r11
shr r11, 0x10
shl rax, 0x30
or rax, r11
mov qword [rsp + 0x60], rax
add rax, r9
xor r10, rax
mov qword [rbp - 0x80], rax
mov r14, r10
shr r14, 0x3f
lea rax, [r10 + r10]
or r14, rax
movzx eax, byte [rdi + 3]
mov r8, qword [rbp + rax*8 - 0x30]
add r8, qword [rsp + 0x30]
add r8, qword [rsp + 0x28]
mov rax, qword [rsp + 0x10]
xor rax, r8
mov r11, rax
shl rax, 0x20
shr r11, 0x20
or r11, rax
lea r9, [r11 + r15]
mov rax, r9
xor rax, qword [rsp + 0x30]
mov r10, rax
shr rax, 0x18
shl r10, 0x28
or r10, rax
movzx eax, byte [rdi + 4]
mov rax, qword [rbp + rax*8 - 0x30]
add rax, r10
add rax, r8
xor r11, rax
mov qword [rsp + 0x10], rax
mov rax, r11
shr r11, 0x10
shl rax, 0x30
or rax, r11
mov qword [rsp + 0x78], rax
lea rdi, [rax + r9]
xor r10, rdi
mov r15, r10
shr r15, 0x3f
lea rax, [r10 + r10]
or r15, rax
mov rax, qword [rsp]
movzx eax, byte [rax + 5]
mov r8, qword [rbp + rax*8 - 0x30]
add r8, qword [rsp + 0x38]
add r8, qword [rsp + 8]
xor rcx, r8
mov rbx, rcx
shl rcx, 0x20
shr rbx, 0x20
or rbx, rcx
mov rcx, qword [rsp]
lea r9, [rbx + rsi]
mov rax, r9
xor rax, qword [rsp + 0x38]
mov r10, rax
shr rax, 0x18
shl r10, 0x28
or r10, rax
movzx eax, byte [rcx + 6]
mov rax, qword [rbp + rax*8 - 0x30]
add rax, r10
add rax, r8
xor rbx, rax
mov qword [rsp + 8], rax
mov r11, rbx
shr rbx, 0x10
shl r11, 0x30
or r11, rbx
lea rsi, [r11 + r9]
xor r10, rsi
mov r12, r10
shr r12, 0x3f
lea rax, [r10 + r10]
or r12, rax
movzx eax, byte [rcx + 7]
mov r8, qword [rbp + rax*8 - 0x30]
add r8, r14
add r8, r13
xor r11, r8
mov rbx, r11
shl r11, 0x20
shr rbx, 0x20
or rbx, r11
lea r9, [rbx + rdi]
mov rax, r9
xor rax, r14
mov r10, rax
shr rax, 0x18
shl r10, 0x28
or r10, rax
movzx eax, byte [rcx + 8]
mov rdi, qword [rbp + rax*8 - 0x30]
add rdi, r10
add rdi, r8
xor rbx, rdi
mov rcx, rbx
shr rbx, 0x10
shl rcx, 0x30
or rcx, rbx
lea r14, [rcx + r9]
mov rax, r14
mov qword [rsp + 0x50], r14
xor rax, r10
mov rdx, rax
add rax, rax
shr rdx, 0x3f
or rdx, rax
mov rax, qword [rsp]
mov qword [rsp + 0x48], rdx
movzx eax, byte [rax + 9]
mov r8, qword [rbp + rax*8 - 0x30]
mov rax, qword [rsp + 0x58]
add r8, r15
add r8, qword [rsp + 0x18]
xor rax, r8
mov r11, rax
shl rax, 0x20
shr r11, 0x20
or r11, rax
lea r9, [r11 + rsi]
mov rax, r9
xor rax, r15
mov r15, qword [rsp]
mov r10, rax
shr rax, 0x18
shl r10, 0x28
or r10, rax
movzx eax, byte [r15 + 0xa]
mov rax, qword [rbp + rax*8 - 0x30]
add rax, r10
add rax, r8
xor r11, rax
mov qword [rsp + 0x20], rax
mov r13, r11
shr r11, 0x10
shl r13, 0x30
or r13, r11
lea rsi, [r9 + r13]
mov r9, qword [rsp + 0x68]
mov rax, rsi
xor rax, r10
mov rdx, rax
add rax, rax
shr rdx, 0x3f
or rdx, rax
movzx eax, byte [r15 + 0xb]
mov qword [rsp + 0x30], rdx
mov r8, qword [rbp + rax*8 - 0x30]
mov rax, qword [rsp + 0x60]
add r8, r12
add r8, qword [rsp + 0x10]
xor rax, r8
mov r10, rax
shl rax, 0x20
shr r10, 0x20
or r10, rax
add r9, r10
mov rax, r9
xor rax, r12
mov r11, rax
shr rax, 0x18
shl r11, 0x28
or r11, rax
movzx eax, byte [r15 + 0xc]
mov rax, qword [rbp + rax*8 - 0x30]
add rax, r11
add rax, r8
xor r10, rax
mov qword [rsp + 0x28], rax
mov rbx, r10
shr r10, 0x10
shl rbx, 0x30
or rbx, r10
lea rax, [r9 + rbx]
xor r11, rax
mov qword [rsp + 0x18], rax
mov rdx, r11
shr rdx, 0x3f
lea rax, [r11 + r11]
or rdx, rax
movzx eax, byte [r15 + 0xd]
mov r9, qword [rbp - 0x80]
mov qword [rsp + 0x38], rdx
mov rdx, qword [rsp + 0x70]
mov r8, qword [rbp + rax*8 - 0x30]
mov rax, qword [rsp + 0x78]
add r8, rdx
add r8, qword [rsp + 8]
xor rax, r8
mov r10, rax
shl rax, 0x20
shr r10, 0x20
or r10, rax
movzx eax, byte [r15 + 0xe]
add r9, r10
add r15, 0x10
xor rdx, r9
mov qword [rsp], r15
mov r11, rdx
shr rdx, 0x18
shl r11, 0x28
or r11, rdx
mov rdx, qword [rbp + rax*8 - 0x30]
add rdx, r11
add r8, rdx
xor r10, r8
mov qword [rsp + 8], r8
mov rdx, r10
shr r10, 0x10
shl rdx, 0x30
or rdx, r10
mov qword [rsp + 0x10], rdx
lea r12, [r9 + rdx]
mov r9, qword [rsp + 0x18]
xor r11, r12
mov r10, r11
shr r10, 0x3f
lea rax, [r11 + r11]
or r10, rax
mov rax, r15
sub qword [rsp + 0x40], 1
jne 0x1400c5a10
xor rdi, qword [rbp - 0x78]
xor r10, r13
xor r12, qword [rbp - 0x68]
xor rdi, r9
xor r14, qword [rsp + 0x28]
xor rsi, qword [rbp - 0x58]
xor rbx, qword [rsp + 0x48]
xor rsi, r8
xor r12, qword [rsp + 0x20]
xor r14, qword [rbp - 0x60]
xor r10, qword [rbp - 0x50]
xor rbx, qword [rbp - 0x48]
mov rax, qword [rbp - 0x40]
xor rax, rdx
mov qword [rsp], rcx
mov rcx, qword [rbp - 0x70]
xor rax, qword [rsp + 0x30]
mov qword [rcx + 0x30], rax
mov rax, qword [rsp]
xor rax, qword [rsp + 0x38]
xor rax, qword [rbp - 0x38]
mov qword [rcx + 0x38], rax
mov qword [rcx], rdi
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], r14
mov qword [rcx + 0x18], rsi
mov qword [rcx + 0x20], r10
mov qword [rcx + 0x28], rbx
mov rcx, qword [rbp + 0xd0]
xor rcx, rsp
call fcn.140116030
lea r11, [rsp + 0x1e0]
mov rbx, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rdi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
push rbx
push rbp
push rsi
push rdi
sub rsp, 0x128
mov rax, qword [0x14018a240]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rsi, r9
mov rbp, r8
mov rbx, rdx
mov rdi, rcx
test r8, r8
jne 0x1400c6194
test r9, r9
jne 0x1400c61d7
test rdi, rdi
je 0x1400c61d7
lea rax, [rdx - 1]
cmp rax, 0x3f
ja 0x1400c61d7
lea rcx, [rsp + 0x20]
call fcn.1400c5770
test eax, eax
js 0x1400c61d7
mov r8, rsi
lea rcx, [rsp + 0x20]
mov rdx, rbp
call fcn.1400c5ef0
test eax, eax
js 0x1400c61d7
mov r8, rbx
lea rcx, [rsp + 0x20]
mov rdx, rdi
call fcn.1400c6040
jmp 0x1400c61dc
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.140116030
add rsp, 0x128
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rcx + 0xab0]
mov r10, rdx
mov r8d, dword [0x14018b8d8]
movdqa xmm2, xmmword [0x140171400]
add r8, rax
movdqa xmm3, xmmword [0x1401713b0]
movdqa xmm4, xmmword [0x140171420]
movdqa xmm5, xmmword [0x140171340]
cmp rax, r8
jae 0x1400c9ab0
nop dword [rax]
aesenc xmm2, xmmword [rax]
aesdec xmm3, xmmword [rax + 0x10]
aesenc xmm4, xmmword [rax + 0x20]
aesdec xmm5, xmmword [rax + 0x30]
add rax, 0x40
cmp rax, r8
jb 0x1400c9a90
movdqa xmm0, xmmword [0x140171270]
lea r8, [rcx + 0x980]
movdqa xmm1, xmmword [0x140171430]
mov edx, 0x20
aesenc xmm2, xmm0
aesdec xmm3, xmm0
aesenc xmm4, xmm0
aesdec xmm5, xmm0
aesenc xmm2, xmm1
aesdec xmm3, xmm1
aesenc xmm4, xmm1
aesdec xmm5, xmm1
movdqu xmmword [rcx + 0xa40], xmm2
mov r9d, 0x100
movdqu xmmword [rcx + 0xa50], xmm3
movdqu xmmword [rcx + 0xa60], xmm4
movdqu xmmword [rcx + 0xa70], xmm5
mov rcx, r10
jmp qword [str._a_f_]