Function at 0x689bf0
Capabilities:
Hash data using sha256

Disassembly:
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
movaps xmmword [rsp + 0xc0], xmm6
movaps xmmword [rsp + 0xd0], xmm7
movaps xmmword [rsp + 0xe0], xmm8
movdqa xmm7, xmmword [0x00ae9db0]
cmp r8, 0x40
mov rdi, rcx
mov rsi, rdx
mov rbx, r8
ja 0x68a0d1
pxor xmm0, xmm0
movups xmmword [rcx], xmm7
test r8, r8
movdqa xmm6, xmmword [0x00ae9dc0]
movabs rax, 0x3636363636363636
movups xmmword [rcx + 0x20], xmm0
movups xmmword [rcx + 0x10], xmm6
lea rbp, [rsp + 0x40]
mov qword [rcx + 0x30], 0
mov qword [rcx + 0x38], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
je 0x689d09
lea rax, [r8 - 1]
cmp rax, 0xe
jbe 0x68a189
lea rbp, [rsp + 0x40]
mov rax, rbx
movdqu xmm0, xmmword [rsi]
pxor xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x40], xmm0
shr rax, 4
cmp rax, 1
je 0x689f80
cmp rax, 2
movdqu xmm0, xmmword [rsi + 0x10]
pxor xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x50], xmm0
je 0x689f80
cmp rax, 4
movdqu xmm0, xmmword [rsi + 0x20]
pxor xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
jne 0x689f80
movdqu xmm0, xmmword [rsi + 0x30]
pxor xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
mov rcx, rdi
mov r8d, 0x200
mov rdx, rbp
call fcn.00689430
test rbx, rbx
pxor xmm0, xmm0
movabs rax, 0x5c5c5c5c5c5c5c5c
lea rcx, [rdi + 0x80]
movups xmmword [rdi + 0x80], xmm7
movups xmmword [rdi + 0x90], xmm6
movups xmmword [rdi + 0xa0], xmm0
mov qword [rdi + 0xb0], 0
mov qword [rdi + 0xb8], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
je 0x689ded
lea rax, [rbx - 1]
cmp rax, 0xe
jbe 0x68a195
mov rax, rbx
movdqu xmm0, xmmword [rsi]
pxor xmm0, xmmword [rsp + 0x40]
movaps xmmword [rsp + 0x40], xmm0
shr rax, 4
cmp rax, 1
je 0x689e21
cmp rax, 2
movdqu xmm0, xmmword [rsi + 0x10]
pxor xmm0, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0x50], xmm0
je 0x689e21
cmp rax, 4
movdqu xmm0, xmmword [rsi + 0x20]
pxor xmm0, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0x60], xmm0
jne 0x689e21
movdqu xmm0, xmmword [rsi + 0x30]
pxor xmm0, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0x70], xmm0
mov r8d, 0x200
mov rdx, rbp
call fcn.00689430
nop
movaps xmm6, xmmword [rsp + 0xc0]
movaps xmm7, xmmword [rsp + 0xd0]
movaps xmm8, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
ret
mov rax, rbx
and rax, 0xfffffffffffffff0
cmp rbx, rax
je 0x689ded
movzx edx, byte [rsi + rax]
xor byte [rsp + rax + 0x40], dl
lea rdx, [rax + 1]
cmp rdx, rbx
jae 0x689ded
movzx r8d, byte [rsi + rax + 1]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 2]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 2]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 3]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 3]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 4]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 4]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 5]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 5]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 6]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 6]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 7]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 7]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 8]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 8]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 9]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 9]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 0xa]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 0xa]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 0xb]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 0xb]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 0xc]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 0xc]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 0xd]
cmp rbx, rdx
jbe 0x689ded
movzx r8d, byte [rsi + rax + 0xd]
xor byte [rsp + rdx + 0x40], r8b
lea rdx, [rax + 0xe]
cmp rbx, rdx
jbe 0x689ded
movzx eax, byte [rsi + rax + 0xe]
xor byte [rsp + rdx + 0x40], al
jmp 0x689ded
mov rax, rbx
and rax, 0xfffffffffffffff0
cmp rax, rbx
je 0x689d09
movzx edx, byte [rsi + rax]
xor byte [rsp + rax + 0x40], dl
lea rdx, [rax + 1]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 1]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 2]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 2]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 3]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 3]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 4]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 4]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 5]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 5]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 6]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 6]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 7]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 7]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 8]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 8]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 9]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 9]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 0xa]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 0xa]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 0xb]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 0xb]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 0xc]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 0xc]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 0xd]
cmp rdx, rbx
jae 0x689d09
movzx ecx, byte [rsi + rax + 0xd]
xor byte [rsp + rdx + 0x40], cl
lea rdx, [rax + 0xe]
cmp rdx, rbx
jae 0x689d09
movzx eax, byte [rsi + rax + 0xe]
xor byte [rsp + rdx + 0x40], al
jmp 0x689d09
lea rbp, [rsp + 0x40]
pxor xmm8, xmm8
movaps xmmword [rsp + 0x40], xmm7
movdqa xmm6, xmmword [0x00ae9dc0]
lea r8, [r8*8]
mov rcx, rbp
mov ebx, 0x20
movaps xmmword [rsp + 0x60], xmm8
lea rsi, [rsp + 0x20]
movaps xmmword [rsp + 0x50], xmm6
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
call fcn.00689430
mov r9d, 1
mov rdx, rsi
mov rcx, rbp
mov r8d, 0x81
call fcn.006895f0
movups xmmword [rdi], xmm7
movabs rax, 0x3636363636363636
movups xmmword [rdi + 0x10], xmm6
movups xmmword [rdi + 0x20], xmm8
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x38], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rax
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rax
jmp 0x689ca5
lea rbp, [rsp + 0x40]
xor eax, eax
jmp 0x689f90
xor eax, eax
jmp 0x689e2d