Function at 0x1400f7900
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xb8
pxor xmm0, xmm0
lea rdi, [r8*8]
mov qword [rsp + 0x108], rdx
mov r13, rcx
movups xmmword [rsp + 0x50], xmm0
cmp rdi, 0x1ff
jbe 0x1400f7e30
sub rdi, 0x200
mov rsi, rdx
xor r14d, r14d
xor ebx, ebx
mov r15, rdi
movdqu xmm0, xmmword [0x14045ddf0]
lea r12, [rsp + 0x30]
movdqu xmm1, xmmword [0x14045dde0]
shr r15, 9
lea rbp, [r15 + 1]
shl rbp, 6
add rbp, rdx
nop word [rax + rax]
add ebx, 0x200
mov rdx, rsi
mov rcx, r12
movups xmmword [rsp + 0x30], xmm1
cmp ebx, 1
movups xmmword [rsp + 0x40], xmm0
adc r14d, 0
add rsi, 0x40
mov dword [rsp + 0x60], ebx
mov dword [rsp + 0x64], r14d
mov qword [rsp + 0x68], 0
call fcn.1400f64b0
movdqu xmm1, xmmword [rsp + 0x30]
movdqu xmm0, xmmword [rsp + 0x40]
cmp rbp, rsi
jne 0x1400f7978
mov rdx, r15
lea ecx, [r15 + 1]
shl rdx, 9
shl ecx, 9
sub rdi, rdx
jne 0x1400f7b90
mov r11d, ecx
mov edx, ecx
mov r10d, ecx
mov eax, r14d
shr r11d, 0x10
and edx, 0xff00
mov r9d, r14d
movzx ebx, ah
movzx r11d, r11b
shr r10d, 0x18
mov r8d, r14d
mov byte [rsp + 0x26], 0x81
or rdx, r11
movzx r10d, r10b
shr r9d, 0x10
mov byte [rsp + 0x27], 1
shl rdx, 8
movzx r9d, r9b
shr r8d, 0x18
or rdx, r10
movzx r10d, r14b
movzx r8d, r8b
shl rdx, 8
or rdx, r10
xor r10d, r10d
shl rdx, 8
or rdx, rbx
shl rdx, 8
or rdx, r9
shl rdx, 8
or rdx, r8
mov qword [rsp + 0x28], rdx
sub ecx, 0x1b8
xor eax, eax
test r10d, r10d
mov r8d, 0x1b8
sete al
sub r8d, r10d
mov dword [rsp + 0x60], ecx
lea rdx, [0x14045dc80]
movsxd r8, r8d
mov rcx, r12
mov dword [rsp + 0x6c], eax
movups xmmword [rsp + 0x30], xmm1
movups xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x64], r14d
mov dword [rsp + 0x68], r10d
call fcn.1400f6ed0
movdqu xmm2, xmmword [rsp + 0x30]
movdqu xmm1, xmmword [rsp + 0x40]
mov rax, qword [rsp + 0x60]
movq xmm0, qword [rsp + 0x68]
lea rdx, [rsp + 0x27]
mov rcx, r12
mov r8d, 8
mov qword [rsp + 0x60], rax
movups xmmword [rsp + 0x40], xmm1
movq qword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x30], xmm2
call fcn.1400f6ed0
mov eax, dword [rsp + 0x60]
movdqu xmm1, xmmword [rsp + 0x30]
movdqu xmm0, xmmword [rsp + 0x40]
mov ecx, dword [rsp + 0x64]
mov rdx, qword [rsp + 0x68]
sub eax, 8
sub eax, 0x40
mov dword [rsp + 0x64], ecx
mov rcx, r12
mov r8d, 0x40
mov qword [rsp + 0x68], rdx
lea rdx, [rsp + 0x28]
mov dword [rsp + 0x60], eax
movups xmmword [rsp + 0x30], xmm1
movups xmmword [rsp + 0x40], xmm0
call fcn.1400f6ed0
mov ebx, dword [rsp + 0x30]
mov r11d, dword [rsp + 0x34]
mov r10d, dword [rsp + 0x38]
mov r9d, dword [rsp + 0x3c]
mov r8d, dword [rsp + 0x40]
mov ecx, dword [rsp + 0x44]
bswap ebx
bswap r11d
mov edx, dword [rsp + 0x48]
mov eax, dword [rsp + 0x4c]
bswap r10d
bswap r9d
bswap r8d
bswap ecx
mov dword [r13], ebx
bswap edx
bswap eax
mov dword [r13 + 4], r11d
mov dword [r13 + 8], r10d
mov dword [r13 + 0xc], r9d
mov dword [r13 + 0x10], r8d
mov dword [r13 + 0x14], ecx
mov dword [r13 + 0x18], edx
mov dword [r13 + 0x1c], eax
add rsp, 0xb8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x108]
shl r15, 6
mov rdx, qword [rsp + 0x44]
mov r9d, ecx
movdqu xmm2, xmmword [rsp + 0x34]
lea rax, [rax + r15 + 0x40]
mov qword [rsp + 0x108], rax
mov rcx, rax
mov qword [rsp + 0x44], rdx
mov rdx, rdi
lea r8, [rsp + 0x70]
movups xmmword [rsp + 0x34], xmm2
shr rdx, 3
pshufd xmm2, xmm0, 0xff
mov r10, r8
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x64], r14d
mov qword [rsp + 0x68], 0
movd dword [rsp + 0x4c], xmm2
cmp edx, 8
jae 0x1400f7da8
xor r8d, r8d
test dl, 4
jne 0x1400f7e10
test dl, 2
jne 0x1400f7df0
and edx, 1
jne 0x1400f7de0
xor edx, edx
mov r10d, edi
add edi, r9d
setb dl
mov r15d, edi
mov ecx, edi
shr r15d, 8
test edx, edx
je 0x1400f7e6a
lea edx, [r14 + 1]
xor ebp, ebp
mov eax, edx
mov r11d, edx
movzx ebx, dh
movzx esi, dl
shr eax, 0x18
shr r11d, 0x10
mov r8d, eax
xor eax, eax
movzx edx, dil
movzx r15d, r15b
movzx eax, al
movzx ebp, bpl
shl rdx, 8
movzx ebx, bl
movzx r11d, r11b
movzx r8d, r8b
or rdx, r15
mov byte [rsp + 0x26], 0x81
shl rdx, 8
mov byte [rsp + 0x27], 1
or rdx, rax
shl rdx, 8
or rdx, rbp
shl rdx, 8
or rdx, rsi
shl rdx, 8
or rdx, rbx
shl rdx, 8
or rdx, r11
shl rdx, 8
or rdx, r8
mov qword [rsp + 0x28], rdx
cmp r10d, 0x1b8
je 0x1400f7d50
cmp r10d, 0x1b7
jle 0x1400f7a4e
mov r8d, 0x200
lea rdx, [0x14045dc80]
mov rcx, r12
sub edi, 0x200
sub r8d, r10d
movups xmmword [rsp + 0x30], xmm1
movsxd r8, r8d
movups xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x68], r10d
mov dword [rsp + 0x60], edi
mov dword [rsp + 0x64], r14d
mov dword [rsp + 0x6c], 0
call fcn.1400f6ed0
lea rdx, [0x14045dc81]
mov rcx, r12
mov r8d, 0x1b8
sub dword [rsp + 0x60], 0x1b8
call fcn.1400f6ed0
movd xmm0, dword [rsp + 0x68]
mov edx, 1
movdqu xmm2, xmmword [rsp + 0x30]
movd xmm3, edx
movdqu xmm1, xmmword [rsp + 0x40]
mov rax, qword [rsp + 0x60]
punpckldq xmm0, xmm3
jmp 0x1400f7aaa
sub r9d, 8
lea rdx, [rsp + 0x26]
mov rcx, r12
mov r8d, 8
movups xmmword [rsp + 0x30], xmm1
movups xmmword [rsp + 0x40], xmm0
mov dword [rsp + 0x60], r9d
mov dword [rsp + 0x64], r14d
mov qword [rsp + 0x68], 0x1b8
call fcn.1400f6ed0
movdqu xmm1, xmmword [rsp + 0x30]
movdqu xmm0, xmmword [rsp + 0x40]
mov eax, dword [rsp + 0x60]
mov ecx, dword [rsp + 0x64]
mov rdx, qword [rsp + 0x68]
jmp 0x1400f7aee
mov r11d, edx
xor ecx, ecx
and r11d, 0xfffffff8
mov rax, qword [rsp + 0x108]
mov r10d, ecx
add ecx, 8
mov rbx, qword [rax + r10]
mov qword [r8 + r10], rbx
cmp ecx, r11d
jb 0x1400f7db1
lea r10, [r8 + rcx]
add rcx, rax
jmp 0x1400f7bfa
movzx edx, byte [rcx + r8]
mov byte [r10 + r8], dl
jmp 0x1400f7c18
movzx r11d, word [rcx + r8]
mov word [r10 + r8], r11w
add r8, 2
and edx, 1
je 0x1400f7c18
jmp 0x1400f7de0
mov r8d, dword [rcx]
mov dword [r10], r8d
mov r8d, 4
test dl, 2
je 0x1400f7c0f
jmp 0x1400f7df0
test rdi, rdi
jne 0x1400f7e98
mov byte [rsp + 0x26], 0x81
xor ecx, ecx
xor r10d, r10d
xor r14d, r14d
mov byte [rsp + 0x27], 1
movdqu xmm1, xmmword [0x14045dde0]
lea r12, [rsp + 0x30]
mov qword [rsp + 0x28], 0
movdqu xmm0, xmmword [0x14045ddf0]
jmp 0x1400f7a4e
mov eax, edi
mov esi, r14d
mov r11d, r14d
mov ebx, r14d
shr eax, 0x18
shr esi, 0x18
movzx ebx, bh
mov ebp, eax
mov eax, edi
mov r8d, esi
shr r11d, 0x10
shr eax, 0x10
movzx esi, r14b
jmp 0x1400f7c51
movdqu xmm0, xmmword [0x14045ddf0]
movdqu xmm1, xmmword [0x14045dde0]
xor r9d, r9d
xor r14d, r14d
mov rdx, qword [0x14045de20]
movdqu xmm2, xmmword [0x14045de30]
lea r12, [rsp + 0x30]
mov rcx, qword [rsp + 0x108]
jmp 0x1400f7bba