Function at 0x140145170
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xc38
vmovups xmmword [rsp + 0xc20], xmm6
lea rax, [rdx + 0xc0]
movsxd rsi, ecx
mov r14, rdx
mov dword [rsp + 0xc90], r8d
mov qword [rsp + 0x48], rax
mov eax, dword [rdx + 0x4c]
mov qword [rsp + 0xc98], r9
lea rbx, [rsp + 0x12f]
lea rdi, [r14 + 0x40]
shl rsi, 7
and rbx, 0xffffffffffffff80
mov dword [rsp + 0x68], eax
mov eax, dword [rdx + 0xdc]
mov dword [rsp + 0x6c], eax
call sym.sha256_use_8way
mov qword [rsp + 0x40], rdi
mov qword [rsp + 0x60], rsi
test eax, eax
jne 0x140146113
call sym.sha256_use_4way
mov dword [rsp + 0x5c], eax
test eax, eax
jne 0x1401457a0
vmovdqu ymm6, ymmword [r14 + 0x40]
mov eax, dword [rsp + 0x68]
lea r12d, [rax - 1]
mov rax, qword [rsp + 0x40]
vmovdqu ymmword [rbx], ymm6
mov r8d, dword [rbx + 4]
vmovdqu ymm6, ymmword [rax + 0x20]
rorx ecx, r8d, 7
vmovdqu ymmword [rbx + 0x20], ymm6
mov edi, dword [rbx + 0x38]
mov r13d, dword [rbx + 0x24]
vmovdqu ymmword [rsp + 0x20], ymm6
mov ebp, dword [rbx + 0x3c]
mov r15d, dword [rbx + 0x28]
mov r11d, dword [rbx + 0x30]
mov r10d, dword [rbx + 0x34]
rorx eax, edi, 0x11
rorx edx, edi, 0x13
xor edx, eax
mov eax, edi
shr eax, 0xa
rorx r9d, ebp, 0x13
xor edx, eax
rorx eax, r8d, 0x12
xor eax, ecx
mov ecx, r8d
add r8d, r15d
shr ecx, 3
xor eax, ecx
mov ecx, dword [rbx + 8]
add eax, edx
mov edx, dword [rbx]
rorx esi, ecx, 7
add edx, r13d
add eax, edx
rorx edx, ebp, 0x11
xor r9d, edx
mov edx, ebp
mov dword [rbx + 0x40], eax
shr edx, 0xa
xor r9d, edx
rorx edx, ecx, 0x12
xor edx, esi
mov esi, ecx
add ecx, dword [rbx + 0x2c]
shr esi, 3
xor edx, esi
add edx, r9d
lea esi, [rdx + r8]
rorx edx, eax, 0x11
rorx r8d, eax, 0x13
xor r8d, edx
mov edx, eax
rorx r9d, esi, 0x11
mov dword [rbx + 0x44], esi
shr edx, 0xa
xor edx, r8d
mov r8d, dword [rbx + 0x10]
add edx, ecx
mov dword [rbx + 0x48], edx
rorx ecx, r8d, 7
rorx edx, r8d, 0x12
xor edx, ecx
mov ecx, r8d
shr ecx, 3
xor edx, ecx
rorx ecx, esi, 0x13
xor ecx, r9d
mov r9d, esi
add edx, r11d
shr r9d, 0xa
xor ecx, r9d
add edx, ecx
mov ecx, dword [rbx + 0x14]
mov dword [rbx + 0x4c], edx
rorx r9d, ecx, 0x12
rorx edx, ecx, 7
xor r9d, edx
mov edx, ecx
shr edx, 3
xor edx, r9d
add r8d, r10d
add ecx, edi
add edx, r8d
mov dword [rbx + 0x50], edx
mov edx, dword [rbx + 0x18]
rorx r8d, edx, 7
rorx r9d, edx, 0x12
xor r9d, r8d
mov r8d, edx
add edx, ebp
shr r8d, 3
xor r8d, r9d
add r8d, ecx
mov ecx, dword [rbx + 0x1c]
mov dword [rbx + 0x54], r8d
rorx r9d, ecx, 0x12
rorx r8d, ecx, 7
xor r9d, r8d
mov r8d, ecx
shr r8d, 3
xor r8d, r9d
add r8d, edx
mov dword [rbx + 0x58], r8d
mov r8d, dword [rbx + 0x20]
rorx r9d, r8d, 7
rorx edx, r8d, 0x12
xor edx, r9d
mov r9d, r8d
shr r9d, 3
xor edx, r9d
add edx, ecx
rorx ecx, r13d, 7
add edx, eax
mov dword [rbx + 0x5c], edx
rorx edx, r13d, 0x12
xor edx, ecx
mov ecx, r13d
shr ecx, 3
xor edx, ecx
rorx ecx, r15d, 7
add edx, r8d
add edx, esi
mov esi, 3
mov dword [rbx + 0x60], edx
rorx edx, r15d, 0x12
xor edx, ecx
mov ecx, r15d
shr ecx, 3
xor edx, ecx
add edx, r13d
mov dword [rbx + 0x64], edx
rorx ecx, dword [rbx + 0x2c], 7
rorx edx, dword [rbx + 0x2c], 0x12
xor edx, ecx
shrx ecx, dword [rbx + 0x2c], esi
xor edx, ecx
rorx ecx, r11d, 7
vmovdqu ymm6, ymmword [0x1401fbc80]
add edx, r15d
mov dword [rbx + 0x68], edx
rorx edx, r11d, 0x12
xor edx, ecx
mov ecx, r11d
shr ecx, 3
xor edx, ecx
add edx, dword [rbx + 0x2c]
rorx ecx, r10d, 7
xor r8d, r8d
vmovdqu ymmword [rbx + 0x900], ymm6
mov dword [rbx + 0x6c], edx
rorx edx, r10d, 0x12
xor edx, ecx
mov ecx, r10d
shr ecx, 3
xor edx, ecx
rorx ecx, edi, 7
add edx, r11d
mov dword [rbx + 0x70], edx
rorx edx, edi, 0x12
xor edx, ecx
mov ecx, edi
shr ecx, 3
xor edx, ecx
rorx ecx, ebp, 7
add edx, r10d
mov dword [rbx + 0x74], edx
rorx edx, ebp, 0x12
xor edx, ecx
mov ecx, ebp
shr ecx, 3
xor edx, ecx
rorx ecx, eax, 0x12
add edx, edi
mov dword [rbx + 0x78], edx
rorx edx, eax, 7
shr eax, 3
xor edx, ecx
xor eax, edx
mov rdx, r14
add eax, ebp
mov dword [rbx + 0x7c], eax
lea rax, [rbx + 0x900]
mov qword [rsp + 0x50], rax
mov rcx, rax
vzeroupper
call sym.sha256_transform
mov qword [rsp + 0xc88], r14
mov rdi, qword [rbx + 0x910]
mov r11, qword [rbx + 0x918]
mov r15, qword [rbx + 0x908]
mov r8, qword [rbx + 0x900]
mov r13d, dword [rsp + 0x6c]
rorx eax, edi, 6
mov r10, rdi
rorx edx, edi, 0xb
mov ecx, edi
shr r10, 0x20
xor edx, eax
rorx eax, edi, 0x19
mov ebp, r15d
xor edx, eax
and ecx, r10d
andn eax, edi, r11d
mov rsi, r8
or eax, ecx
rorx ecx, r8d, 2
shr rsi, 0x20
mov qword [rbx + 0x810], rdi
add eax, edx
mov rdx, r11
mov qword [rbx + 0x800], r8
shr rdx, 0x20
lea r9d, [rax + rdx + 0x428a2f98]
add r9d, dword [r14 + 0x40]
mov rdx, r15
rorx eax, r8d, 0xd
shr rdx, 0x20
add edx, r9d
xor eax, ecx
rorx ecx, r8d, 0x16
and ebp, esi
xor eax, ecx
mov ecx, r15d
mov dword [rbx + 0x80c], edx
or ecx, esi
and ecx, r8d
or ecx, ebp
add eax, ecx
andn ecx, edx, r10d
add eax, r9d
mov r9d, edx
and r9d, edi
rorx ebp, eax, 2
mov dword [rbx + 0x81c], eax
or ecx, r9d
add ecx, dword [r14 + 0x44]
rorx r9d, edx, 6
lea r11d, [rcx + r11 + 0x71374491]
rorx ecx, edx, 0xb
xor ecx, r9d
rorx r9d, edx, 0x19
xor edx, edi
xor ecx, r9d
add r11d, ecx
rorx ecx, eax, 0xd
lea r9d, [r11 + r15]
xor ecx, ebp
rorx ebp, eax, 0x16
mov r15d, r8d
and edx, r9d
xor ecx, ebp
mov ebp, r8d
and r15d, esi
xor edx, edi
add edx, dword [r14 + 0x48]
or ebp, esi
mov r14, rbx
and ebp, eax
or ebp, r15d
mov r15d, dword [rsp + 0xc90]
add ecx, ebp
rorx ebp, r9d, 6
add ecx, r11d
lea edi, [rdx + r10 - 0x4a3f0431]
rorx edx, r9d, 0xb
mov dword [rbx + 0x818], ecx
xor edx, ebp
rorx ebp, r9d, 0x19
xor edx, ebp
mov rbp, qword [0x1401fd8b0]
add edx, edi
add esi, edx
vmovd xmm6, esi
rorx esi, ecx, 0xd
vpinsrd xmm0, xmm6, r9d, 1
rorx r9d, ecx, 2
xor esi, r9d
rorx r9d, ecx, 0x16
vmovq qword [rbx + 0x804], xmm0
xor r9d, esi
mov esi, eax
and eax, r8d
or esi, r8d
and esi, ecx
or esi, eax
lea eax, [r9 + rsi]
lea rsi, [rbx + 0xa00]
add eax, edx
mov dword [rbx + 0x814], eax
lea rax, [rbx + 0x800]
mov rbx, qword [rsp + 0x60]
mov qword [rsp + 0x20], rax
jmp 0x14014568b
cmp r12d, r15d
jae 0x1401460d0
mov rax, qword [rbp]
add rax, rbx
movzx eax, byte [rax]
test al, al
jne 0x1401460d0
mov r9, qword [rsp + 0x20]
mov r8, qword [rsp + 0x50]
mov edi, r12d
inc r12d
mov dword [r14 + 0xc], r12d
mov rdx, r14
mov rcx, rsi
call sym.sha256d_ms
movbe eax, dword [r14 + 0xa1c]
cmp r13d, eax
jb 0x140145670
vmovdqu ymm3, ymmword [0x1401fbc80]
mov rdx, qword [rsp + 0xc88]
xor r8d, r8d
mov eax, dword [r14 + 0xc]
mov dword [rdx + 0x4c], eax
lea rax, [rsp + 0x70]
mov qword [rsp + 0x60], rax
mov rcx, rax
vmovdqu ymmword [rsp + 0x70], ymm3
vzeroupper
call sym.sha256_transform
xor r8d, r8d
mov rdx, qword [rsp + 0x40]
mov rcx, qword [rsp + 0x60]
call sym.sha256_transform
vmovdqu ymm1, ymmword [0x1401fbc60]
xor r8d, r8d
mov rcx, rsi
vmovdqu ymm3, ymmword [0x1401fbc80]
mov rdx, qword [rsp + 0x60]
vmovdqu ymmword [rsp + 0x90], ymm1
vmovdqu ymmword [r14 + 0xa00], ymm3
vzeroupper
call sym.sha256_transform
mov rcx, rsi
vmovdqu ymm6, ymmword [r14 + 0xa00]
mov rdx, qword [rsp + 0x48]
vpshufb ymm0, ymm6, ymmword [0x1401fbcc0]
vmovdqu ymmword [r14 + 0xa00], ymm0
vzeroupper
call sym.fulltest
test al, al
je 0x140145670
mov r14, qword [rsp + 0xc88]
mov rdx, rsi
mov rcx, r14
call dbg.work_set_target_ratio
lea eax, [rdi + 2]
mov edi, dword [rsp + 0x68]
mov dword [rsp + 0x5c], 1
sub eax, edi
mov rdi, qword [rsp + 0xc98]
mov qword [rdi], rax
jmp 0x1401460f2
mov eax, dword [r14 + 0x4c]
vmovdqu ymm1, ymmword [r14 + 0x40]
mov r13d, 3
mov r12d, dword [r14 + 0xdc]
mov dword [rsp + 0x5c], eax
lea edi, [rax - 1]
mov rax, qword [rsp + 0x40]
vmovdqu ymmword [rbx], ymm1
vmovdqu ymm1, ymmword [rax + 0x20]
mov r11d, dword [rbx + 4]
mov esi, dword [rbx + 8]
mov r15d, dword [rbx + 0x10]
rorx r8d, r11d, 7
rorx r9d, esi, 7
vmovdqu ymmword [rbx + 0x20], ymm1
rorx eax, dword [rbx + 0x38], 0x11
rorx edx, dword [rbx + 0x38], 0x13
xor edx, eax
vmovdqu ymmword [rsp + 0x20], ymm1
mov eax, 0xa
vmovq xmm1, qword [rbx + 0x38]
shrx eax, dword [rbx + 0x38], eax
xor edx, eax
rorx eax, r11d, 0x12
mov ebp, dword [rbx + 0x24]
xor eax, r8d
mov r8d, r11d
add r11d, dword [rbx + 0x28]
mov r10d, dword [rbx + 0x20]
shr r8d, 3
xor eax, r8d
add eax, edx
mov edx, dword [rbx]
vpextrd ecx, xmm1, 1
vpslld xmm2, xmm1, 0x19
vpslld xmm3, xmm1, 0xe
vpsrld xmm0, xmm1, 7
add edx, ebp
rorx r8d, ecx, 0x13
vpor xmm0, xmm0, xmm2
vpsrld xmm2, xmm1, 0x12
add eax, edx
rorx edx, ecx, 0x11
vpor xmm2, xmm2, xmm3
xor r8d, edx
mov edx, ecx
vpxor xmm0, xmm0, xmm2
vpsrld xmm2, xmm1, 3
shr edx, 0xa
vpxor xmm0, xmm0, xmm2
vmovq xmm2, qword [rbx + 0x34]
xor r8d, edx
rorx edx, esi, 0x12
xor edx, r9d
mov r9d, esi
add esi, dword [rbx + 0x2c]
shr r9d, 3
xor edx, r9d
rorx r9d, eax, 0x13
add edx, r8d
rorx r8d, eax, 0x11
xor r9d, r8d
mov r8d, eax
add edx, r11d
rorx r11d, r15d, 7
shr r8d, 0xa
xor r8d, r9d
rorx r9d, r15d, 0x12
vpaddd xmm0, xmm0, xmm2
vmovdqu xmm2, xmmword [rbx + 0x28]
xor r9d, r11d
mov r11d, r15d
add esi, r8d
shr r11d, 3
xor r9d, r11d
add r9d, dword [rbx + 0x30]
rorx r11d, edx, 0x11
mov r8d, r9d
rorx r9d, edx, 0x13
vpslld xmm3, xmm2, 0x19
vpslld xmm4, xmm2, 0xe
xor r9d, r11d
mov r11d, edx
vpsrld xmm1, xmm2, 7
vpor xmm1, xmm1, xmm3
shr r11d, 0xa
vpsrld xmm3, xmm2, 0x12
vpor xmm3, xmm3, xmm4
vmovd xmm4, esi
xor r9d, r11d
rorx r11d, dword [rbx + 0x14], 7
vpxor xmm1, xmm1, xmm3
vpsrld xmm3, xmm2, 3
add r8d, r9d
rorx r9d, dword [rbx + 0x14], 0x12
xor r9d, r11d
shrx r11d, dword [rbx + 0x14], r13d
xor r9d, r11d
vpextrd r11d, xmm2, 3
vpxor xmm1, xmm1, xmm3
vpaddd xmm1, xmm1, xmmword [rbx + 0x24]
add r11d, r15d
vpinsrd xmm4, xmm4, r8d, 1
rorx r8d, ebp, 0x12
lea esi, [r9 + r11]
rorx r11d, dword [rbx + 0x18], 0x12
rorx r9d, ebp, 7
shr ebp, 3
vmovd xmm2, esi
rorx esi, dword [rbx + 0x18], 7
xor r11d, esi
shrx esi, dword [rbx + 0x18], r13d
xor esi, r11d
mov r11d, dword [rbx + 0x38]
add r11d, dword [rbx + 0x14]
xor r8d, r9d
xor ebp, r8d
rorx r8d, eax, 0x12
vmovq qword [rbx + 0x74], xmm0
add ebp, r10d
vmovdqu xmmword [rbx + 0x64], xmm1
lea r15d, [rsi + r11]
rorx r11d, dword [rbx + 0x1c], 7
rorx esi, dword [rbx + 0x1c], 0x12
xor esi, r11d
shrx r11d, dword [rbx + 0x1c], r13d
xor r11d, esi
mov esi, dword [rbx + 0x18]
vpinsrd xmm2, xmm2, r15d, 1
add esi, ecx
add esi, r11d
rorx r11d, r10d, 0x12
vmovd xmm3, esi
rorx esi, r10d, 7
xor r11d, esi
mov esi, r10d
shr esi, 3
xor esi, r11d
add esi, dword [rbx + 0x1c]
add esi, eax
vpinsrd xmm3, xmm3, esi, 1
vpunpcklqdq xmm2, xmm2, xmm3
vmovd xmm3, eax
vpinsrd xmm3, xmm3, edx, 1
add edx, ebp
mov dword [rbx + 0x60], edx
rorx edx, eax, 7
shr eax, 3
vpunpcklqdq xmm3, xmm3, xmm4
xor edx, r8d
vinserti128 ymm2, ymm3, xmm2, 1
xor eax, edx
vmovdqu ymmword [rbx + 0x40], ymm2
lea rdx, [rbx + 0x7c]
add eax, ecx
mov dword [rbx + 0x7c], eax
lea rax, [rbx + 0x1f0]
nop
mov ecx, dword [rdx]
mov r8, rdx
sub rax, 0x10
sub rdx, 4
mov dword [rax + 0x10], ecx
mov dword [rax + 0x14], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x18], ecx
mov dword [rax + 0x1c], ecx
cmp rbx, r8
jne 0x140145a40
vmovdqu ymm4, ymmword [0x1401fbc80]
lea rax, [rbx + 0x900]
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x50], rax
mov rcx, rax
vmovdqu ymmword [rbx + 0x900], ymm4
vzeroupper
call sym.sha256_transform
vmovdqu ymm5, ymmword [rbx + 0x900]
vmovq xmm0, qword [rbx + 0x918]
vmovdqu ymmword [rsp + 0x20], ymm5
mov eax, dword [rsp + 0x30]
mov r9, qword [rsp + 0x30]
vpshufd xmm0, xmm0, 0xe5
mov r13d, dword [rsp + 0x38]
vmovq qword [rbx + 0x974], xmm0
vmovdqu ymmword [rbx + 0x800], ymm5
mov esi, dword [rsp + 0x20]
mov r15d, dword [rsp + 0x28]
rorx ecx, eax, 0xb
rorx edx, eax, 6
shr r9, 0x20
mov r8d, eax
xor edx, ecx
rorx ecx, eax, 0x19
and r8d, r9d
mov r10, qword [rsp + 0x20]
xor edx, ecx
andn ecx, eax, r13d
or ecx, r8d
mov r11d, r15d
add edx, ecx
mov rcx, qword [rsp + 0x38]
shr r10, 0x20
and r11d, r10d
shr rcx, 0x20
lea r8d, [rdx + rcx + 0x428a2f98]
mov rdx, qword [rsp + 0x28]
add r8d, dword [r14 + 0x40]
rorx ecx, esi, 2
shr rdx, 0x20
lea ebp, [r8 + rdx]
rorx edx, esi, 0xd
xor edx, ecx
rorx ecx, esi, 0x16
xor edx, ecx
mov ecx, r15d
or ecx, r10d
and ecx, esi
or ecx, r11d
add edx, ecx
rorx ecx, ebp, 6
lea r11d, [rdx + r8]
mov edx, eax
xor edx, r9d
vmovd xmm4, r11d
mov dword [rbx + 0x87c], r11d
and edx, ebp
vpshufd xmm0, xmm4, 0xe0
xor edx, r9d
add edx, dword [r14 + 0x44]
vmovq qword [rbx + 0x874], xmm0
vpshufd xmm0, xmmword [rbx + 0x910], 0xea
lea r8d, [r13 + rdx + 0x71374491]
rorx edx, ebp, 0xb
mov r13d, esi
xor edx, ecx
rorx ecx, ebp, 0x19
xor edx, ecx
rorx ecx, r11d, 2
add r8d, edx
rorx edx, r11d, 0xd
vmovdqu xmmword [rbx + 0x964], xmm0
xor edx, ecx
rorx ecx, r11d, 0x16
add r15d, r8d
xor edx, ecx
mov ecx, esi
vmovd xmm6, r15d
or ecx, r10d
and ecx, r11d
and r13d, r10d
or ecx, r13d
add edx, ecx
add r8d, edx
mov edx, ebp
xor edx, eax
vmovd xmm5, r8d
and edx, r15d
vpinsrd xmm2, xmm5, r8d, 1
vpinsrd xmm0, xmm5, r11d, 1
xor edx, eax
add edx, dword [r14 + 0x48]
rorx eax, r15d, 0xb
vpunpcklqdq xmm0, xmm2, xmm0
vmovdqu xmmword [rbx + 0x864], xmm0
vmovdqu ymm0, ymmword [0x1401fbe00]
vpermd ymm0, ymm0, ymmword [rsp + 0x20]
lea ecx, [rdx + r9 - 0x4a3f0431]
rorx edx, r15d, 6
xor eax, edx
rorx edx, r15d, 0x19
xor eax, edx
rorx edx, r8d, 2
add ecx, eax
lea eax, [rcx + r10]
vmovd xmm1, eax
rorx eax, r8d, 0xd
xor eax, edx
rorx edx, r8d, 0x16
vpunpckldq xmm2, xmm1, xmm1
xor eax, edx
mov edx, r11d
or edx, esi
and esi, r11d
and edx, r8d
or edx, esi
lea rsi, [rbx + 0xa00]
add eax, edx
mov edx, dword [rbx + 0x91c]
vmovdqu ymmword [rbx + 0x904], ymm0
vmovdqu ymm0, ymmword [0x1401fbe20]
vpermd ymm0, ymm0, ymmword [rsp + 0x20]
add eax, ecx
vmovd xmm3, eax
lea rax, [rbx + 0x800]
mov dword [rbx + 0x97c], edx
vmovdqu ymmword [rbx + 0x924], ymm0
vmovdqu ymm0, ymmword [0x1401fbe40]
vpermd ymm0, ymm0, ymmword [rsp + 0x20]
vmovdqu ymmword [rbx + 0x944], ymm0
vmovd xmm4, dword [rsp + 0x20]
vpinsrd xmm0, xmm1, r15d, 1
vmovd xmm5, dword [rsp + 0x30]
vpunpcklqdq xmm2, xmm2, xmm0
mov qword [rsp + 0x20], rax
vpunpckldq xmm1, xmm4, xmm1
vpunpckldq xmm0, xmm4, xmm4
vpunpcklqdq xmm0, xmm0, xmm1
vmovd xmm1, ebp
vinserti128 ymm0, ymm0, xmm2, 1
vpinsrd xmm2, xmm1, ebp, 1
vmovdqu ymmword [rbx + 0x804], ymm0
vpinsrd xmm0, xmm1, dword [rsp + 0x30], 1
vpinsrd xmm1, xmm6, ebp, 1
mov rbp, rbx
vpunpcklqdq xmm2, xmm2, xmm0
vpinsrd xmm0, xmm6, r15d, 1
vmovdqu xmm6, xmmword [0x1401fbde0]
mov r15d, dword [rsp + 0xc90]
vpunpcklqdq xmm0, xmm0, xmm1
vpunpckldq xmm1, xmm3, xmm3
vinserti128 ymm0, ymm0, xmm2, 1
vpunpckldq xmm2, xmm5, xmm3
vmovdqu ymmword [rbx + 0x824], ymm0
vpinsrd xmm0, xmm3, r8d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpunpckldq xmm0, xmm5, xmm5
vpunpcklqdq xmm0, xmm0, xmm2
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rbx + 0x844], ymm0
mov rbx, qword [rsp + 0x60]
vzeroupper
jmp 0x140145dc4
movbe eax, dword [rbp + 0xa74]
cmp r12d, eax
jae 0x140146020
movbe eax, dword [rbp + 0xa78]
cmp r12d, eax
jae 0x140145ec9
movbe eax, dword [rbp + 0xa7c]
cmp r12d, eax
jae 0x140145f78
cmp edi, r15d
jae 0x140146961
mov rax, qword [0x1401fd8b0]
mov rdx, qword [rax]
add rdx, rbx
movzx eax, byte [rdx]
test al, al
jne 0x140146961
vmovd xmm4, edi
mov r9, qword [rsp + 0x20]
mov r8, qword [rsp + 0x50]
mov rdx, rbp
vpshufd xmm0, xmm4, 0
mov rcx, rsi
add edi, 4
vpaddd xmm0, xmm0, xmm6
vmovdqu xmmword [rbp + 0x30], xmm0
call sym.sha256d_ms_4way
movbe eax, dword [rbp + 0xa70]
cmp r12d, eax
jb 0x140145d70
vmovdqu ymm3, ymmword [0x1401fbc80]
mov eax, dword [rbp + 0x30]
lea r13, [rsp + 0x70]
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [r14 + 0x4c], eax
vmovdqu ymmword [rsp + 0x70], ymm3
vzeroupper
call sym.sha256_transform
xor r8d, r8d
mov rcx, r13
mov rdx, qword [rsp + 0x40]
call sym.sha256_transform
vmovdqu ymm1, ymmword [0x1401fbc60]
xor r8d, r8d
mov rdx, r13
vmovdqu ymm3, ymmword [0x1401fbc80]
mov rcx, rsi
vmovdqu ymmword [rsp + 0x90], ymm1
vmovdqu ymmword [rbp + 0xa00], ymm3
vzeroupper
call sym.sha256_transform
mov rcx, rsi
vmovdqu ymm1, ymmword [rbp + 0xa00]
mov rdx, qword [rsp + 0x48]
vpshufb ymm0, ymm1, ymmword [0x1401fbcc0]
vmovdqu ymmword [rbp + 0xa00], ymm0
vzeroupper
call sym.fulltest
test al, al
je 0x140145d70
mov rdx, rsi
mov rcx, r14
call dbg.work_set_target_ratio
mov eax, dword [rsp + 0x5c]
mov dword [rsp + 0x5c], 1
sub edi, eax
lea eax, [rdi + 1]
mov rdi, qword [rsp + 0xc98]
mov qword [rdi], rax
jmp 0x1401460f2
vmovdqu ymm4, ymmword [0x1401fbc80]
mov eax, dword [rbp + 0x38]
lea r13, [rsp + 0x70]
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [r14 + 0x4c], eax
vmovdqu ymmword [rsp + 0x70], ymm4
vzeroupper
call sym.sha256_transform
xor r8d, r8d
mov rcx, r13
mov rdx, qword [rsp + 0x40]
call sym.sha256_transform
vmovdqu ymm1, ymmword [0x1401fbc60]
xor r8d, r8d
mov rdx, r13
vmovdqu ymm3, ymmword [0x1401fbc80]
mov rcx, rsi
vmovdqu ymmword [rsp + 0x90], ymm1
vmovdqu ymmword [rbp + 0xa00], ymm3
vzeroupper
call sym.sha256_transform
mov rcx, rsi
vmovdqu ymm4, ymmword [rbp + 0xa00]
mov rdx, qword [rsp + 0x48]
vpshufb ymm0, ymm4, ymmword [0x1401fbcc0]
vmovdqu ymmword [rbp + 0xa00], ymm0
vzeroupper
call sym.fulltest
test al, al
jne 0x140145e9d
movbe eax, dword [rbp + 0xa7c]
cmp r12d, eax
jb 0x140145da3
vmovdqu ymm5, ymmword [0x1401fbc80]
mov eax, dword [rbp + 0x3c]
lea r13, [rsp + 0x70]
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [r14 + 0x4c], eax
vmovdqu ymmword [rsp + 0x70], ymm5
vzeroupper
call sym.sha256_transform
xor r8d, r8d
mov rcx, r13
mov rdx, qword [rsp + 0x40]
call sym.sha256_transform
vmovdqu ymm1, ymmword [0x1401fbc60]
xor r8d, r8d
mov rdx, r13
vmovdqu ymm3, ymmword [0x1401fbc80]
mov rcx, rsi
vmovdqu ymmword [rsp + 0x90], ymm1
vmovdqu ymmword [rbp + 0xa00], ymm3
vzeroupper
call sym.sha256_transform
mov rcx, rsi
vmovdqu ymm4, ymmword [rbp + 0xa00]
mov rdx, qword [rsp + 0x48]
vpshufb ymm0, ymm4, ymmword [0x1401fbcc0]
vmovdqu ymmword [rbp + 0xa00], ymm0
vzeroupper
call sym.fulltest
test al, al
je 0x140145da3
jmp 0x140145e9d
vmovdqu ymm3, ymmword [0x1401fbc80]
mov eax, dword [rbp + 0x34]
lea r13, [rsp + 0x70]
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [r14 + 0x4c], eax
vmovdqu ymmword [rsp + 0x70], ymm3
vzeroupper
call sym.sha256_transform
xor r8d, r8d
mov rcx, r13
mov rdx, qword [rsp + 0x40]
call sym.sha256_transform
vmovdqu ymm4, ymmword [0x1401fbc60]
xor r8d, r8d
mov rdx, r13
vmovdqu ymm1, ymmword [0x1401fbc80]
mov rcx, rsi
vmovdqu ymmword [rsp + 0x90], ymm4
vmovdqu ymmword [rbp + 0xa00], ymm1
vzeroupper
call sym.sha256_transform
mov rcx, rsi
vmovdqu ymm3, ymmword [rbp + 0xa00]
mov rdx, qword [rsp + 0x48]
vpshufb ymm0, ymm3, ymmword [0x1401fbcc0]
vmovdqu ymmword [rbp + 0xa00], ymm0
vzeroupper
call sym.fulltest
test al, al
je 0x140145d81
jmp 0x140145e9d
mov edi, dword [rsp + 0x68]
mov eax, r12d
mov r14, qword [rsp + 0xc88]
sub eax, edi
mov rdi, qword [rsp + 0xc98]
inc eax
mov qword [rdi], rax
mov dword [r14 + 0x4c], r12d
vmovups xmm6, xmmword [rsp + 0xc20]
mov eax, dword [rsp + 0x5c]
add rsp, 0xc38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, dword [r14 + 0x4c]
vmovdqu ymm6, ymmword [r14 + 0x40]
mov r12d, dword [r14 + 0xdc]
mov dword [rsp + 0x68], eax
lea edi, [rax - 1]
mov rax, qword [rsp + 0x40]
vmovdqu ymmword [rbx], ymm6
vmovdqu ymm6, ymmword [rax + 0x20]
mov r11d, dword [rbx + 4]
mov esi, dword [rbx + 8]
mov r15d, dword [rbx + 0x10]
rorx r8d, r11d, 7
rorx r9d, esi, 7
vmovdqu ymmword [rbx + 0x20], ymm6
rorx eax, dword [rbx + 0x38], 0x11
rorx edx, dword [rbx + 0x38], 0x13
xor edx, eax
vmovq xmm1, qword [rbx + 0x38]
mov eax, 0xa
shrx eax, dword [rbx + 0x38], eax
xor edx, eax
rorx eax, r11d, 0x12
mov ebp, dword [rbx + 0x24]
mov r10d, dword [rbx + 0x20]
vmovdqu ymmword [rsp + 0x20], ymm6
xor eax, r8d
mov r8d, r11d
add r11d, dword [rbx + 0x28]
shr r8d, 3
xor eax, r8d
add eax, edx
mov edx, dword [rbx]
vpextrd ecx, xmm1, 1
vpslld xmm2, xmm1, 0x19
vpslld xmm3, xmm1, 0xe
vpsrld xmm0, xmm1, 7
add edx, ebp
rorx r8d, ecx, 0x13
vpor xmm0, xmm0, xmm2
vpsrld xmm2, xmm1, 0x12
add eax, edx
rorx edx, ecx, 0x11
vpor xmm2, xmm2, xmm3
xor r8d, edx
mov edx, ecx
vpxor xmm0, xmm0, xmm2
vpsrld xmm2, xmm1, 3
shr edx, 0xa
vpxor xmm0, xmm0, xmm2
vmovq xmm2, qword [rbx + 0x34]
vmovd xmm6, eax
xor r8d, edx
rorx edx, esi, 0x12
xor edx, r9d
mov r9d, esi
add esi, dword [rbx + 0x2c]
shr r9d, 3
xor edx, r9d
rorx r9d, eax, 0x13
add edx, r8d
rorx r8d, eax, 0x11
xor r9d, r8d
mov r8d, eax
add edx, r11d
rorx r11d, r15d, 7
shr r8d, 0xa
xor r8d, r9d
rorx r9d, r15d, 0x12
vpaddd xmm0, xmm0, xmm2
vmovdqu xmm2, xmmword [rbx + 0x28]
xor r9d, r11d
mov r11d, r15d
add esi, r8d
shr r11d, 3
xor r9d, r11d
add r9d, dword [rbx + 0x30]
rorx r11d, edx, 0x11
mov r8d, r9d
rorx r9d, edx, 0x13
vpslld xmm3, xmm2, 0x19
vpslld xmm4, xmm2, 0xe
xor r9d, r11d
mov r11d, edx
vpsrld xmm1, xmm2, 7
vpor xmm1, xmm1, xmm3
shr r11d, 0xa
vpsrld xmm3, xmm2, 0x12
vpor xmm3, xmm3, xmm4
vmovd xmm4, esi
xor r9d, r11d
rorx r11d, dword [rbx + 0x14], 7
vpxor xmm1, xmm1, xmm3
vpsrld xmm3, xmm2, 3
lea r13d, [r8 + r9]
rorx r9d, dword [rbx + 0x14], 0x12
xor r9d, r11d
mov r8d, 3
shrx r11d, dword [rbx + 0x14], r8d
xor r9d, r11d
vpextrd r11d, xmm2, 3
vpxor xmm1, xmm1, xmm3
add r11d, r15d
vpaddd xmm1, xmm1, xmmword [rbx + 0x24]
mov r15d, r8d
vpinsrd xmm4, xmm4, r13d, 1
lea esi, [r9 + r11]
rorx r11d, dword [rbx + 0x18], 0x12
vmovd xmm2, esi
rorx esi, dword [rbx + 0x18], 7
xor r11d, esi
shrx esi, dword [rbx + 0x18], r15d
xor esi, r11d
mov r11d, dword [rbx + 0x38]
add r11d, dword [rbx + 0x14]
rorx r8d, dword [rbx + 0x1c], 7
vmovq qword [rbx + 0x74], xmm0
lea r9d, [rsi + r11]
rorx r11d, dword [rbx + 0x1c], 0x12
xor r11d, r8d
shrx r8d, dword [rbx + 0x1c], r15d
xor r8d, r11d
mov r11d, dword [rbx + 0x18]
vpinsrd xmm2, xmm2, r9d, 1
rorx r9d, ebp, 7
vmovdqu xmmword [rbx + 0x64], xmm1
add r11d, ecx
lea esi, [r8 + r11]
rorx r11d, r10d, 7
rorx r8d, r10d, 0x12
xor r8d, r11d
mov r11d, r10d
vmovd xmm3, esi
shr r11d, 3
xor r11d, r8d
add r11d, dword [rbx + 0x1c]
rorx r8d, ebp, 0x12
shr ebp, 3
xor r8d, r9d
xor ebp, r8d
rorx r8d, eax, 0x12
add ebp, r10d
add r11d, eax
vpinsrd xmm3, xmm3, r11d, 1
vpunpcklqdq xmm2, xmm2, xmm3
vpinsrd xmm3, xmm6, edx, 1
add edx, ebp
mov dword [rbx + 0x60], edx
rorx edx, eax, 7
shr eax, 3
vpunpcklqdq xmm3, xmm3, xmm4
xor edx, r8d
vinserti128 ymm2, ymm3, xmm2, 1
xor eax, edx
vmovdqu ymmword [rbx + 0x40], ymm2
lea rdx, [rbx + 0x7c]
add eax, ecx
mov dword [rbx + 0x7c], eax
lea rax, [rbx + 0x3e0]
nop dword [rax + rax]
mov ecx, dword [rdx]
mov r8, rdx
sub rax, 0x20
sub rdx, 4
mov dword [rax + 0x20], ecx
mov dword [rax + 0x24], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x28], ecx
mov dword [rax + 0x2c], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x30], ecx
mov dword [rax + 0x34], ecx
mov ecx, dword [rdx + 4]
mov dword [rax + 0x38], ecx
mov dword [rax + 0x3c], ecx
cmp rbx, r8
jne 0x1401463c0
vmovdqu ymm6, ymmword [0x1401fbc80]
lea rax, [rbx + 0x900]
xor r8d, r8d
mov rdx, r14
mov qword [rsp + 0x50], rax
mov rcx, rax
vmovdqu ymmword [rbx + 0x900], ymm6
vzeroupper
call sym.sha256_transform
vmovdqu ymm6, ymmword [rbx + 0x900]
vmovq xmm2, qword [rbx + 0x918]
vpshufd xmm3, xmmword [rbx + 0x910], 0xff
vmovdqu ymmword [rsp + 0x20], ymm6
mov ecx, dword [rsp + 0x30]
mov r13, qword [rsp + 0x30]
vmovdqu ymmword [rbx + 0x800], ymm6
vpshufd xmm2, xmm2, 0xe5
vmovdqu xmmword [rbx + 0x9e4], xmm3
mov ebp, dword [rsp + 0x38]
vmovq qword [rbx + 0x9f4], xmm2
mov esi, dword [rsp + 0x28]
shr r13, 0x20
rorx edx, ecx, 0xb
rorx eax, ecx, 6
xor eax, edx
mov r8d, r13d
rorx edx, ecx, 0x19
and r8d, ecx
xor eax, edx
andn edx, ecx, ebp
or edx, r8d
mov r8, qword [rsp + 0x28]
mov r15d, esi
add eax, edx
mov rdx, qword [rsp + 0x38]
shr r8, 0x20
shr rdx, 0x20
lea r11d, [rax + rdx + 0x428a2f98]
add r11d, dword [r14 + 0x40]
mov edx, dword [rsp + 0x20]
mov rax, qword [rsp + 0x20]
rorx r9d, edx, 2
lea r10d, [r11 + r8]
rorx r8d, edx, 0xd
shr rax, 0x20
xor r8d, r9d
rorx r9d, edx, 0x16
and r15d, eax
vmovd xmm4, r10d
xor r8d, r9d
mov r9d, esi
or r9d, eax
and r9d, edx
or r9d, r15d
add r8d, r9d
rorx r9d, r10d, 6
lea r15d, [r8 + r11]
mov r8d, r13d
xor r8d, ecx
vmovd xmm6, r15d
mov dword [rbx + 0x8fc], r15d
and r8d, r10d
vpshufd xmm2, xmm6, 0xe0
vpshufd xmm3, xmm6, 0
xor r8d, r13d
add r8d, dword [r14 + 0x44]
vmovq qword [rbx + 0x8f4], xmm2
vmovdqu ymm2, ymmword [0x1401fbd00]
vpermd ymm2, ymm2, ymmword [rsp + 0x20]
vmovdqu xmmword [rbx + 0x8e4], xmm3
lea r11d, [rbp + r8 + 0x71374491]
rorx r8d, r10d, 0xb
xor r8d, r9d
rorx r9d, r10d, 0x19
xor r8d, r9d
rorx r9d, r15d, 2
add r11d, r8d
rorx r8d, r15d, 0xd
xor r8d, r9d
rorx r9d, r15d, 0x16
lea ebp, [r11 + rsi]
mov esi, edx
xor r8d, r9d
mov r9d, edx
and esi, eax
vmovd xmm5, ebp
or r9d, eax
and r9d, r15d
or r9d, esi
lea rsi, [rbx + 0xa00]
add r8d, r9d
rorx r9d, ebp, 6
add r11d, r8d
mov r8d, r10d
xor r8d, ecx
and r8d, ebp
xor r8d, ecx
add r8d, dword [r14 + 0x48]
rorx ecx, ebp, 0xb
xor ecx, r9d
rorx r9d, ebp, 0x19
xor ecx, r9d
rorx r9d, r11d, 2
lea r8d, [r8 + r13 - 0x4a3f0431]
add r8d, ecx
rorx ecx, r11d, 0xd
xor ecx, r9d
rorx r9d, r11d, 0x16
add eax, r8d
xor ecx, r9d
mov r9d, r15d
vmovd xmm0, eax
or r9d, edx
and edx, r15d
and r9d, r11d
or r9d, edx
mov edx, dword [rbx + 0x91c]
vmovdqu ymmword [rbx + 0x904], ymm2
vmovdqu ymm2, ymmword [0x1401fbd20]
vpermd ymm2, ymm2, ymmword [rsp + 0x20]
add ecx, r9d
lea eax, [rcx + r8]
vmovd xmm1, eax
lea rax, [rbx + 0x800]
mov dword [rbx + 0x9fc], edx
vmovdqu ymmword [rbx + 0x924], ymm2
vmovdqu ymm2, ymmword [0x1401fbd40]
vpermd ymm2, ymm2, ymmword [rsp + 0x20]
vmovdqu ymmword [rbx + 0x944], ymm2
vmovdqu ymm2, ymmword [0x1401fbd60]
vmovd xmm6, dword [rsp + 0x20]
mov dword [rsp + 0x5c], edi
vpermd ymm2, ymm2, ymmword [rsp + 0x20]
vpunpckldq xmm3, xmm6, xmm6
vmovdqu ymmword [rbx + 0x964], ymm2
vmovdqu ymm2, ymmword [0x1401fbd80]
vpermd ymm2, ymm2, ymmword [rsp + 0x20]
vmovdqu ymmword [rbx + 0x984], ymm2
vmovdqu ymm2, ymmword [0x1401fbda0]
vpermd ymm2, ymm2, ymmword [rsp + 0x20]
vmovdqu ymmword [rbx + 0x9a4], ymm2
vmovdqu ymm2, ymmword [0x1401fbdc0]
vpermd ymm2, ymm2, ymmword [rsp + 0x20]
mov qword [rsp + 0x20], rax
vmovdqu ymmword [rbx + 0x9c4], ymm2
vpunpckldq xmm2, xmm6, xmm0
vpunpcklqdq xmm3, xmm3, xmm2
vpshufd xmm2, xmm6, 0
vmovd xmm6, r11d
vinserti128 ymm2, ymm2, xmm3, 1
vpinsrd xmm3, xmm0, ebp, 1
vmovdqu ymmword [rbx + 0x804], ymm2
vpunpckldq xmm2, xmm0, xmm0
vpshufd xmm0, xmm0, 0
vpunpcklqdq xmm2, xmm2, xmm3
vmovd xmm3, dword [rsp + 0x30]
vinserti128 ymm0, ymm0, xmm2, 1
vpinsrd xmm2, xmm5, ebp, 1
lea rbp, [rbx + 0xae0]
vmovdqu ymmword [rbx + 0x824], ymm0
vpinsrd xmm0, xmm5, r10d, 1
vpunpcklqdq xmm2, xmm2, xmm0
vpshufd xmm0, xmm5, 0
vinserti128 ymm0, ymm0, xmm2, 1
vpinsrd xmm2, xmm4, r10d, 1
vmovdqu ymmword [rbx + 0x844], ymm0
vpinsrd xmm0, xmm4, dword [rsp + 0x30], 1
vpunpcklqdq xmm2, xmm2, xmm0
vpshufd xmm0, xmm4, 0
vinserti128 ymm0, ymm0, xmm2, 1
vpunpckldq xmm2, xmm3, xmm3
vmovdqu ymmword [rbx + 0x864], ymm0
vpunpckldq xmm0, xmm3, xmm1
vpunpcklqdq xmm2, xmm2, xmm0
vpshufd xmm0, xmm3, 0
vinserti128 ymm0, ymm0, xmm2, 1
vpunpckldq xmm2, xmm1, xmm1
vmovdqu ymmword [rbx + 0x884], ymm0
vpinsrd xmm0, xmm1, r11d, 1
vpunpcklqdq xmm2, xmm2, xmm0
vpshufd xmm0, xmm1, 0
vmovd xmm1, r11d
vinserti128 ymm0, ymm0, xmm2, 1
vmovdqu ymmword [rbx + 0x8a4], ymm0
vpinsrd xmm0, xmm1, r15d, 1
vpinsrd xmm1, xmm1, r11d, 1
vpunpcklqdq xmm1, xmm1, xmm0
vpshufd xmm0, xmm6, 0
vinserti128 ymm0, ymm0, xmm1, 1
vmovdqu ymmword [rbx + 0x8c4], ymm0
nop word cs:[rax + rax]
nop
mov eax, dword [rsp + 0x5c]
mov rdx, rbx
mov rcx, rsi
lea r13, [rbx + 0x60]
mov r9, qword [rsp + 0x20]
mov r8, qword [rsp + 0x50]
mov rdi, r13
vmovd xmm0, eax
add eax, 8
vpbroadcastd ymm0, xmm0
vpaddd ymm0, ymm0, ymmword [0x1401fbde0]
mov dword [rsp + 0x5c], eax
vmovdqu ymmword [rbx + 0x60], ymm0
vzeroupper
call sym.sha256d_ms_8way
xor r15d, r15d
jmp 0x14014682e
add r15, 4
cmp r15, 0x20
je 0x140146910
movbe eax, dword [rbp + r15]
cmp r12d, eax
jb 0x140146820
vmovdqu ymm5, ymmword [0x1401fbc80]
mov eax, dword [rdi + r15]
lea r13, [rsp + 0x70]
xor r8d, r8d
mov rdx, r14
mov rcx, r13
mov dword [r14 + 0x4c], eax
vmovdqu ymmword [rsp + 0x70], ymm5
vzeroupper
call sym.sha256_transform
xor r8d, r8d
mov rcx, r13
mov rdx, qword [rsp + 0x40]
call sym.sha256_transform
vmovdqu ymm6, ymmword [0x1401fbc60]
xor r8d, r8d
mov rdx, r13
vmovdqu ymm4, ymmword [0x1401fbc80]
mov rcx, rsi
vmovdqu ymmword [rsp + 0x90], ymm6
vmovdqu ymmword [rbx + 0xa00], ymm4
vzeroupper
call sym.sha256_transform
mov rcx, rsi
vmovdqu ymm5, ymmword [rbx + 0xa00]
mov rdx, qword [rsp + 0x48]
vpshufb ymm0, ymm5, ymmword [0x1401fbcc0]
vmovdqu ymmword [rbx + 0xa00], ymm0
vzeroupper
call sym.fulltest
test al, al
je 0x140146820
mov edi, dword [rsp + 0x5c]
mov rdx, rsi
mov rcx, r14
call dbg.work_set_target_ratio
mov dword [rsp + 0x5c], 1
mov eax, edi
mov edi, dword [rsp + 0x68]
sub eax, edi
mov rdi, qword [rsp + 0xc98]
inc eax
mov qword [rdi], rax
jmp 0x1401460f2
mov eax, dword [rsp + 0x5c]
cmp eax, dword [rsp + 0xc90]
jae 0x140146937
mov rax, qword [0x1401fd8b0]
mov rdi, qword [rsp + 0x60]
add rdi, qword [rax]
movzx eax, byte [rdi]
test al, al
je 0x1401467d0
mov edi, dword [rsp + 0x5c]
mov esi, dword [rsp + 0x68]
mov eax, edi
sub eax, esi
mov rsi, qword [rsp + 0xc98]
mov dword [rsp + 0x5c], 0
inc eax
mov qword [rsi], rax
mov dword [r14 + 0x4c], edi
jmp 0x1401460f2
mov esi, dword [rsp + 0x5c]
mov eax, edi
jmp 0x140146941