Function at 0x14007a690
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xd88
vmovups xmmword [rsp + 0xd10], xmm6
vmovups xmmword [rsp + 0xd20], xmm7
vmovups xmmword [rsp + 0xd30], xmm8
vmovups xmmword [rsp + 0xd40], xmm9
vmovups xmmword [rsp + 0xd50], xmm10
vmovups xmmword [rsp + 0xd60], xmm12
vmovups xmmword [rsp + 0xd70], xmm13
vmovdqu ymm0, ymmword [0x14032bc00]
mov esi, dword [rcx + 0x8c]
mov r14d, dword [rcx + 0x1c]
movsxd rdi, dword [r9]
lea eax, [rdx - 0x10]
lea r12, [rsp + 0xbf]
vmovq xmm9, r9
mov r15, rcx
vmovd xmm10, eax
mov rax, qword [0x140386c50]
and r12, 0xffffffffffffffc0
xor r9d, r9d
mov rbx, r8
lea rdx, [rcx + 0x40]
mov r8d, 0x200
lea rcx, [r12 + 0xc40]
lea r13d, [rsi + 0xe]
lea ebp, [rsi + 0xb]
vmovdqu ymmword [r12 + 0xc40], ymm0
movzx eax, byte [rax]
mov dword [rsp + 0x20], 8
mov byte [rsp + 0x77], al
vzeroupper
call sym.blake256_transform_le
lea r10d, [rsi + 6]
lea r11d, [rsi + 8]
vpbroadcastd zmm0, dword [r12 + 0xc40]
vmovd xmm2, r10d
lea r10d, [rsi + 0xa]
vmovd xmm5, r13d
vmovd xmm4, r10d
lea r10d, [rsi + 0xc]
lea r13d, [rsi + 0xf]
lea edx, [rsi + 4]
vmovd xmm1, r10d
lea r10d, [rsi + 0xd]
vpinsrd xmm5, xmm5, r13d, 1
vpinsrd xmm4, xmm4, ebp, 1
vpinsrd xmm1, xmm1, r10d, 1
lea ecx, [rsi + 2]
lea r8d, [rsi + 5]
lea r9d, [rsi + 7]
vpunpcklqdq xmm1, xmm1, xmm5
lea eax, [rsi + 1]
vmovd xmm5, esi
vmovd xmm3, ecx
vpinsrd xmm2, xmm2, r9d, 1
lea ecx, [rsi + 3]
lea r13, [r12 + 0xc00]
mov ebp, r14d
vpinsrd xmm3, xmm3, ecx, 1
vmovdqu32 zmmword [r12 + 0x800], zmm0
vpbroadcastd zmm0, dword [r12 + 0xc44]
vmovdqu32 zmmword [r12 + 0x840], zmm0
vpbroadcastd zmm0, dword [r12 + 0xc48]
vmovdqu32 zmmword [r12 + 0x880], zmm0
vpbroadcastd zmm0, dword [r12 + 0xc4c]
vmovdqu32 zmmword [r12 + 0x8c0], zmm0
vpbroadcastd zmm0, dword [r12 + 0xc50]
vmovdqu32 zmmword [r12 + 0x900], zmm0
vpbroadcastd zmm0, dword [r12 + 0xc54]
vmovdqu32 zmmword [r12 + 0x940], zmm0
vpbroadcastd zmm0, dword [r12 + 0xc58]
vmovdqu32 zmmword [r12 + 0x980], zmm0
vpbroadcastd zmm0, dword [r12 + 0xc5c]
vmovdqu32 zmmword [r12 + 0x9c0], zmm0
vpbroadcastd zmm0, dword [r15 + 0x80]
vmovdqu32 zmmword [r12], zmm0
vpbroadcastd zmm0, dword [r15 + 0x84]
vmovdqu32 zmmword [r12 + 0x40], zmm0
vpbroadcastd zmm0, dword [r15 + 0x88]
vmovdqu32 zmmword [r12 + 0x80], zmm0
vmovd xmm0, r11d
lea r11d, [rsi + 9]
vpinsrd xmm0, xmm0, r11d, 1
vpunpcklqdq xmm0, xmm0, xmm4
vmovd xmm4, edx
vinserti128 ymm1, ymm0, xmm1, 1
vpinsrd xmm0, xmm4, r8d, 1
mov r8, r12
vpunpcklqdq xmm2, xmm0, xmm2
vpinsrd xmm0, xmm5, eax, 1
lea rax, [r12 + 0x800]
vpunpcklqdq xmm0, xmm0, xmm3
vmovq xmm8, rax
lea rax, [r12 + 0x400]
vinserti128 ymm0, ymm0, xmm2, 1
vmovq rdx, xmm8
mov rcx, rax
vmovq xmm7, rax
vinserti64x4 zmm0, zmm0, ymm1, 1
vmovdqu32 zmmword [r12 + 0xc0], zmm0
vzeroupper
call sym.blake256_16way_round0_prehash_le
lea rax, [r12 + 0xa00]
shl rdi, 7
mov qword [rsp + 0x78], rax
mov eax, 0x10
vmovq xmm6, rdi
lea rdi, [r12 + 0xa40]
vpbroadcastd zmm4, eax
vmovd xmm12, esi
vmovq xmm13, rbx
mov rbx, r12
vmovdqu32 zmmword [rsp + 0x30], zmm4
mov r12d, esi
mov rsi, rdi
nop dword [rax + rax]
mov rdi, qword [rsp + 0x78]
vmovq r8, xmm8
vmovq rdx, xmm7
mov dword [rsp + 0x20], 8
mov r9, rbx
vzeroupper
mov r14d, r12d
mov rcx, rdi
call sym.blake256_16way_final_rounds_le
jmp 0x14007a990
add rdi, 4
inc r14d
cmp rsi, rdi
je 0x14007aa40
mov eax, dword [rdi + 0x1c0]
cmp ebp, eax
jb 0x14007a980
vmovd xmm3, dword [rdi + 0x180]
vmovd xmm4, dword [rdi + 0x100]
mov rdx, r15
mov rcx, r13
vpinsrd xmm1, xmm4, dword [rdi + 0x140], 1
vmovd xmm5, dword [rdi + 0x80]
vpinsrd xmm0, xmm3, eax, 1
vmovd xmm3, dword [rdi]
vpunpcklqdq xmm1, xmm1, xmm0
vpinsrd xmm2, xmm3, dword [rdi + 0x40], 1
vpinsrd xmm0, xmm5, dword [rdi + 0xc0], 1
vpunpcklqdq xmm0, xmm2, xmm0
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rbx + 0xc00], ymm0
vzeroupper
call sym.valid_hash
test al, al
je 0x14007a980
cmp byte [rsp + 0x77], 0
jne 0x14007a980
mov dword [r15 + 0x8c], r14d
vmovq r8, xmm9
mov rdx, r13
mov rcx, r15
add rdi, 4
call sym.submit_solution
inc r14d
cmp rsi, rdi
jne 0x14007a990
nop word cs:[rax + rax]
nop dword [rax]
vmovdqu32 zmm2, zmmword [rsp + 0x30]
add r12d, 0x10
vmovd eax, xmm10
vpaddd zmm0, zmm2, zmmword [rbx + 0xc0]
vmovdqu32 zmmword [rbx + 0xc0], zmm0
cmp r12d, eax
jae 0x14007aa80
mov rax, qword [0x1403873f0]
vmovq rdx, xmm6
add rdx, qword [rax]
movzx eax, byte [rdx]
test al, al
je 0x14007a950
vmovd esi, xmm12
mov ebp, r12d
vmovq rbx, xmm13
mov dword [r15 + 0x8c], r12d
sub ebp, esi
mov eax, ebp
mov qword [rbx], rax
xor eax, eax
vzeroupper
vmovups xmm6, xmmword [rsp + 0xd10]
vmovups xmm7, xmmword [rsp + 0xd20]
vmovups xmm8, xmmword [rsp + 0xd30]
vmovups xmm9, xmmword [rsp + 0xd40]
vmovups xmm10, xmmword [rsp + 0xd50]
vmovups xmm12, xmmword [rsp + 0xd60]
vmovups xmm13, xmmword [rsp + 0xd70]
add rsp, 0xd88
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret