Function at 0x1801515b0
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 - 0x50]
sub rsp, 0x150
mov rax, qword [0x1804be628]
xor rax, rsp
mov qword [rbp + 0x40], rax
mov rax, qword [rcx]
lea r11, [0x180430241]
movups xmm0, xmmword [rdx]
mov rbx, qword [rcx + 0x48]
mov rdi, rax
movups xmm1, xmmword [rdx + 0x10]
mov r13, qword [rcx + 0x50]
movabs r9, 0x6a09e667f3bcc908
mov r14, qword [rcx + 0x40]
mov r15, qword [rcx + 0x58]
mov qword [rsp + 0x70], rax
mov rax, qword [rcx + 8]
mov qword [rbp - 0x80], rax
mov r12, rax
mov rax, qword [rcx + 0x10]
mov qword [rbp - 0x78], rax
mov rsi, rax
mov rax, qword [rcx + 0x18]
mov qword [rbp - 0x70], rax
mov qword [rsp + 0x18], rax
mov rax, qword [rcx + 0x20]
mov qword [rbp - 0x68], rax
mov r10, rax
mov rax, qword [rcx + 0x28]
mov qword [rbp - 0x60], rax
mov qword [rsp + 0x48], rax
mov rax, qword [rcx + 0x30]
mov qword [rsp + 0x10], rax
mov qword [rbp - 0x58], rax
mov rax, qword [rcx + 0x38]
mov qword [rbp - 0x50], rax
mov qword [rsp + 8], rax
movabs rax, 0xbb67ae8584caa73b
mov qword [rsp + 0x20], rax
movabs rax, 0x3c6ef372fe94f82b
mov qword [rsp + 0x38], rax
movabs rax, 0xa54ff53a5f1d36f1
movups xmmword [rbp - 0x40], xmm0
mov qword [rsp + 0x40], rax
movabs rax, 0x9b05688c2b3e6c1f
movups xmm0, xmmword [rdx + 0x20]
xor rbx, rax
movabs rax, 0x1f83d9abfb41bd6b
movups xmmword [rbp - 0x30], xmm1
xor r13, rax
movabs rax, 0x5be0cd19137e2179
movups xmm1, xmmword [rdx + 0x30]
mov qword [rsp + 0x78], rcx
mov rcx, qword [rsp + 0x10]
movups xmmword [rbp - 0x20], xmm0
mov qword [rsp], r11
movups xmm0, xmmword [rdx + 0x40]
mov qword [rsp + 0x50], send
movups xmmword [rbp - 0x10], xmm1
movups xmm1, xmmword [rdx + 0x50]
movups xmmword [rbp], xmm0
movups xmm0, xmmword [rdx + 0x60]
movups xmmword [rbp + 0x10], xmm1
movups xmm1, xmmword [rdx + 0x70]
movabs rdx, 0x510e527fade682d1
xor r14, rdx
xor r15, rax
movups xmmword [rbp + 0x20], xmm0
movups xmmword [rbp + 0x30], xmm1
jmp 0x180151725
mov r15, qword [rsp + 0x30]
movzx eax, byte [r11 - 1]
mov r8, qword [rbp + rax*8 - 0x40]
movzx eax, byte [r11]
add r8, r10
add r8, rdi
xor r14, r8
ror r14, 0x20
add r9, r14
mov qword [rsp + 0x30], r14
mov r14, qword [rbp + rax*8 - 0x40]
xor r10, r9
ror r10, 0x18
add r14, r10
add r14, r8
mov rax, r14
xor rax, qword [rsp + 0x30]
ror rax, 0x10
mov qword [rsp + 0x28], rax
add rax, r9
mov r9, qword [rsp + 0x20]
mov qword [rsp + 0x10], rax
xor rax, r10
rol rax, 1
mov qword [rsp + 0x58], rax
movzx eax, byte [r11 + 1]
mov r8, qword [rbp + rax*8 - 0x40]
add r8, qword [rsp + 0x48]
add r8, r12
mov r10, r8
xor r10, rbx
mov rbx, qword [rsp]
ror r10, 0x20
add r9, r10
mov r11, r9
xor r11, qword [rsp + 0x48]
movzx eax, byte [rbx + 2]
ror r11, 0x18
mov r12, qword [rbp + rax*8 - 0x40]
add r12, r11
add r12, r8
mov rax, r12
xor rax, r10
ror rax, 0x10
mov qword [rsp + 0x20], rax
add rax, r9
mov r9, qword [rsp + 0x38]
mov rdi, rax
mov qword [rsp + 0x68], rax
xor rdi, r11
movzx eax, byte [rbx + 3]
rol rdi, 1
mov r8, qword [rbp + rax*8 - 0x40]
movzx eax, byte [rbx + 4]
add r8, rcx
add r8, rsi
mov r10, r8
xor r10, r13
mov r13, qword [rbp + rax*8 - 0x40]
ror r10, 0x20
add r9, r10
mov r11, r9
xor r11, rcx
mov rcx, rbx
ror r11, 0x18
add r13, r11
add r13, r8
mov rax, r13
xor rax, r10
mov r10, qword [rsp + 8]
ror rax, 0x10
mov qword [rsp + 0x60], rax
lea rbx, [rax + r9]
movzx eax, byte [rcx + 5]
mov rsi, rbx
xor rsi, r11
rol rsi, 1
mov r8, qword [rbp + rax*8 - 0x40]
add r8, r10
add r8, qword [rsp + 0x18]
xor r15, r8
ror r15, 0x20
movzx eax, byte [rcx + 6]
mov r9, qword [rsp + 0x40]
add r9, r15
xor r10, r9
mov rax, qword [rbp + rax*8 - 0x40]
ror r10, 0x18
add rax, r10
mov qword [rsp + 8], r10
add rax, r8
mov r10, rax
mov qword [rsp + 0x18], rax
movzx eax, byte [rcx + 7]
xor r10, r15
ror r10, 0x10
mov r8, qword [rbp + rax*8 - 0x40]
movzx eax, byte [rcx + 8]
lea r11, [r10 + r9]
add r8, rdi
mov r15, r11
xor r15, qword [rsp + 8]
add r8, r14
mov r9, r8
rol r15, 1
xor r9, r10
ror r9, 0x20
lea r10, [r9 + rbx]
mov rbx, r10
xor rbx, rdi
mov rdi, qword [rbp + rax*8 - 0x40]
ror rbx, 0x18
add rdi, rbx
add rdi, r8
mov rax, rdi
xor rax, r9
ror rax, 0x10
mov qword [rsp + 0x30], rax
add rax, r10
mov r10, qword [rsp + 0x28]
xor rbx, rax
mov qword [rsp + 0x38], rax
movzx eax, byte [rcx + 9]
rol rbx, 1
mov qword [rsp + 0x48], rbx
mov r8, qword [rbp + rax*8 - 0x40]
movzx eax, byte [rcx + 0xa]
add r8, rsi
add r8, r12
xor r10, r8
ror r10, 0x20
mov r12, qword [rbp + rax*8 - 0x40]
lea r9, [r11 + r10]
mov r11, qword [rsp]
xor rsi, r9
ror rsi, 0x18
add r12, rsi
add r12, r8
mov r14, r12
xor r14, r10
mov r10, qword [rsp + 0x20]
ror r14, 0x10
lea rax, [r14 + r9]
mov r9, qword [rsp + 0x10]
mov rcx, rax
mov qword [rsp + 0x40], rax
movzx eax, byte [r11 + 0xb]
xor rcx, rsi
rol rcx, 1
mov r8, qword [rbp + rax*8 - 0x40]
movzx eax, byte [r11 + 0xc]
add r8, r15
add r8, r13
xor r10, r8
ror r10, 0x20
mov rsi, qword [rbp + rax*8 - 0x40]
add r9, r10
xor r15, r9
ror r15, 0x18
add rsi, r15
add rsi, r8
mov rbx, rsi
xor rbx, r10
mov r10, qword [rsp + 0x60]
ror rbx, 0x10
lea rax, [rbx + r9]
mov r9, qword [rsp + 0x68]
mov qword [rsp + 0x28], rax
xor rax, r15
rol rax, 1
mov qword [rsp + 8], rax
movzx eax, byte [r11 + 0xd]
mov r11, qword [rsp + 0x58]
mov r8, qword [rbp + rax*8 - 0x40]
add r8, qword [rsp + 0x18]
mov rax, qword [rsp]
add r8, r11
xor r10, r8
ror r10, 0x20
add r9, r10
movzx eax, byte [rax + 0xe]
xor r11, r9
ror r11, 0x18
mov rdx, qword [rbp + rax*8 - 0x40]
add rdx, r11
add rdx, r8
mov r13, rdx
mov qword [rsp + 0x18], rdx
xor r13, r10
ror r13, 0x10
lea rax, [r9 + r13]
mov r9, qword [rsp + 0x28]
mov r10, rax
mov qword [rsp + 0x20], rax
xor r10, r11
mov r11, qword [rsp]
add r11, 0x10
rol r10, 1
sub qword [rsp + 0x50], 1
mov qword [rsp], r11
jne 0x180151720
xor r12, qword [rbp - 0x80]
xor rdi, qword [rsp + 0x70]
xor r12, rax
xor rsi, qword [rbp - 0x78]
xor rdi, r9
xor r10, qword [rbp - 0x68]
xor rbx, qword [rbp - 0x60]
xor r10, r14
xor rsi, qword [rsp + 0x38]
xor rbx, qword [rsp + 0x48]
mov rax, qword [rbp - 0x70]
xor rax, rdx
mov qword [rsp + 0x10], rcx
mov rcx, qword [rsp + 0x78]
xor rax, qword [rsp + 0x40]
mov qword [rcx + 0x18], rax
mov rax, qword [rsp + 0x10]
xor rax, qword [rbp - 0x58]
xor rax, r13
mov qword [rcx], rdi
mov qword [rcx + 0x30], rax
mov rax, qword [rbp - 0x50]
xor rax, qword [rsp + 0x30]
xor rax, qword [rsp + 8]
mov qword [rcx + 0x38], rax
mov qword [rcx + 8], r12
mov qword [rcx + 0x10], rsi
mov qword [rcx + 0x20], r10
mov qword [rcx + 0x28], rbx
mov rcx, qword [rbp + 0x40]
xor rcx, rsp
call fcn.18031edb0
lea r11, [rsp + 0x150]
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 [0x1804be628]
xor rax, rsp
mov qword [rsp + 0x110], rax
mov rsi, r9
mov rbp, r8
mov rbx, rdx
mov rdi, rcx
test r8, r8
jne 0x180151d64
test r9, r9
jne 0x180151da7
test rdi, rdi
je 0x180151da7
lea rax, [rdx - 1]
cmp rax, 0x3f
ja 0x180151da7
lea rcx, [rsp + 0x20]
call fcn.180151490
test eax, eax
js 0x180151da7
mov r8, rsi
lea rcx, [rsp + 0x20]
mov rdx, rbp
call fcn.180151ad0
test eax, eax
js 0x180151da7
mov r8, rbx
lea rcx, [rsp + 0x20]
mov rdx, rdi
call fcn.180151c10
jmp 0x180151dac
mov eax, 0xffffffff
mov rcx, qword [rsp + 0x110]
xor rcx, rsp
call fcn.18031edb0
add rsp, 0x128
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov rax, qword [rcx + 0xab0]
mov r10, rdx
mov r8d, dword [0x18075b218]
movdqa xmm2, xmmword [0x180487a50]
add r8, rax
movdqa xmm3, xmmword [0x180487a00]
movdqa xmm4, xmmword [0x180487a70]
movdqa xmm5, xmmword [0x180487970]
cmp rax, r8
jae 0x180155c00
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 0x180155be0
movdqa xmm0, xmmword [0x1804878a0]
lea r8, [rcx + 0x980]
movdqa xmm1, xmmword [0x180487a80]
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 [case.0x180155c6d.0]