Function at 0x140114d40
Capabilities:
Hash data using sha256

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa0
vmovdqu ymm1, ymmword [0x1401fa7c0]
mov rdi, rcx
mov rbx, rdx
mov rsi, r8
mov qword [rcx + 0x20], 0
vmovdqu ymmword [rcx], ymm1
cmp r8, 0x40
ja 0x1401151c0
mov eax, 0x36
lea rbp, [rsp + 0x60]
vmovd xmm0, eax
vpbroadcastb ymm0, xmm0
vmovdqu ymmword [rsp + 0x60], ymm0
vmovdqu ymmword [rsp + 0x80], ymm0
test r8, r8
je 0x140115240
lea r12, [r8 - 1]
cmp r12, 0x1e
jbe 0x14011521c
mov eax, 0x36
vmovd xmm0, eax
mov rax, rsi
vpbroadcastb ymm0, xmm0
vpxor ymm2, ymm0, ymmword [rbx]
shr rax, 5
vmovdqu ymmword [rsp + 0x60], ymm2
cmp rax, 2
je 0x140115120
cmp rsi, 0x20
je 0x14011512e
mov eax, 0x20
mov rdx, rsi
sub rdx, rax
lea rcx, [rdx - 1]
cmp rcx, 0xe
jbe 0x140114e1a
lea rcx, [rbp + rax]
vmovdqu xmm3, xmmword [rbx + rax]
vpxor xmm0, xmm3, xmmword [rcx]
vmovdqu xmmword [rcx], xmm0
mov rcx, rdx
and rcx, 0xfffffffffffffff0
add rax, rcx
and edx, 0xf
je 0x140114f40
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
lea rdx, [rax + 1]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 1]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 2]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 2]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 3]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 3]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 4]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 4]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 5]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 5]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 6]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 6]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 7]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 7]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 8]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 8]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 9]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 9]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xa]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 0xa]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xb]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 0xb]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xc]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 0xc]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xd]
cmp rdx, rsi
jae 0x140114f40
movzx ecx, byte [rbx + rax + 0xd]
add rax, 0xe
xor byte [rsp + rdx + 0x60], cl
cmp rax, rsi
jae 0x140114f40
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
nop dword [rax]
vmovdqu ymmword [rsp + 0x20], ymm1
mov r8d, 0x40
mov rdx, rbp
mov rcx, rdi
vzeroupper
call sym.SHA256_Update_Y
mov eax, 0x5c
mov qword [rdi + 0x88], 0
vmovdqu ymm1, ymmword [rsp + 0x20]
vmovd xmm0, eax
vpbroadcastb ymm0, xmm0
vmovdqu ymmword [rsp + 0x60], ymm0
vmovdqu ymmword [rsp + 0x80], ymm0
vmovdqu ymmword [rdi + 0x68], ymm1
cmp r12, 0x1e
jbe 0x140115230
vpxor ymm0, ymm0, ymmword [rbx]
mov eax, 0x20
vmovdqu ymmword [rsp + 0x60], ymm0
mov rdx, rsi
sub rdx, rax
lea rcx, [rdx - 1]
cmp rcx, 0xe
jbe 0x140114fdb
lea rcx, [rbp + rax]
vmovdqu xmm4, xmmword [rbx + rax]
vpxor xmm0, xmm4, xmmword [rcx]
vmovdqu xmmword [rcx], xmm0
mov rcx, rdx
and rcx, 0xfffffffffffffff0
add rax, rcx
and edx, 0xf
je 0x140115197
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
lea rdx, [rax + 1]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 1]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 2]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 2]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 3]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 3]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 4]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 4]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 5]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 5]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 6]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 6]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 7]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 7]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 8]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 8]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 9]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 9]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xa]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 0xa]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xb]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 0xb]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xc]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 0xc]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xd]
cmp rdx, rsi
jae 0x140115197
movzx ecx, byte [rbx + rax + 0xd]
add rax, 0xe
xor byte [rsp + rdx + 0x60], cl
cmp rax, rsi
jae 0x140115197
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
jmp 0x140115197
vpxor ymm0, ymm0, ymmword [rbx + 0x20]
vmovdqu ymmword [rsp + 0x80], ymm0
vmovdqu ymmword [rsp + 0x20], ymm1
mov r8d, 0x40
mov rdx, rbp
mov rcx, rdi
vzeroupper
call sym.SHA256_Update_Y
mov eax, 0x5c
mov qword [rdi + 0x88], 0
vmovdqu ymm1, ymmword [rsp + 0x20]
vmovd xmm0, eax
shr rsi, 5
vpbroadcastb ymm0, xmm0
vmovdqu ymmword [rsp + 0x80], ymm0
vmovdqu ymmword [rdi + 0x68], ymm1
vpxor ymm1, ymm0, ymmword [rbx]
vmovdqu ymmword [rsp + 0x60], ymm1
cmp rsi, 2
jne 0x140115197
vpxor ymm0, ymm0, ymmword [rbx + 0x20]
vmovdqu ymmword [rsp + 0x80], ymm0
lea rcx, [rdi + 0x68]
mov r8d, 0x40
mov rdx, rbp
vzeroupper
call sym.SHA256_Update_Y
nop
add rsp, 0xa0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
vmovdqu ymmword [rsp + 0x20], ymm1
lea rbx, [rsp + 0x40]
mov r12d, 0x1f
mov esi, 0x20
vzeroupper
call sym.SHA256_Update_Y
mov rdx, rdi
mov rcx, rbx
call sym.SHA256_Final_Y
vmovdqu ymm1, ymmword [rsp + 0x20]
mov eax, 0x36
mov qword [rdi + 0x20], 0
vmovd xmm0, eax
lea rbp, [rsp + 0x60]
vpbroadcastb ymm0, xmm0
vmovdqu ymmword [rsp + 0x80], ymm0
vmovdqu ymmword [rdi], ymm1
jmp 0x140114dad
xor eax, eax
jmp 0x140114de5
xor eax, eax
jmp 0x140114fa6
vmovdqu ymmword [rsp + 0x20], ymm1
mov r8d, 0x40
mov rdx, rbp
vzeroupper
call sym.SHA256_Update_Y
mov eax, 0x5c
mov qword [rdi + 0x88], 0
vmovdqu ymm1, ymmword [rsp + 0x20]
vmovd xmm0, eax
vpbroadcastb ymm0, xmm0
vmovdqu ymmword [rsp + 0x60], ymm0
vmovdqu ymmword [rdi + 0x68], ymm1
vmovdqu ymmword [rsp + 0x80], ymm0
jmp 0x140115197