Function at 0x14004047c
Capabilities:
Hash data using sha256 via x86 extensions

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x198
movaps xmmword [rsp + 0x180], xmm13
movaps xmmword [rsp + 0x170], xmm12
movaps xmmword [rsp + 0x160], xmm11
movdqa xmmword [rsp + 0x150], xmm10
movdqa xmmword [rsp + 0x140], xmm9
movaps xmmword [rsp + 0x130], xmm8
movdqa xmmword [rsp + 0x120], xmm7
movaps xmmword [rsp + 0x110], xmm6
mov r13, r8
mov rbx, rdx
mov r12, rcx
mov al, byte [0x140125001]
cmp al, 1
je 0x14003f3db
movzx eax, al
cmp eax, 0xff
jne 0x14003f449
lea rsi, [rsp + 0x40]
mov rcx, rsi
call fcn.1400136c9
lea rcx, [rsp + 0xb0]
call fcn.1400136eb
mov ebp, dword [rsi + 8]
mov eax, ebp
not eax
test eax, 0xc000000
jne 0x14003f442
mov r14d, dword [rsp + 0x4c]
mov r15d, dword [rsp + 0xb4]
call fcn.140005270
mov rdi, rax
shr r15d, 0x1d
call fcn.140005270
mov rsi, rax
shr r14d, 0x1a
and esi, edi
shr esi, 1
and esi, r15d
and esi, r14d
call fcn.140005270
shr eax, 1
mov edi, ebp
shr edi, 9
and edi, eax
call fcn.140005270
and eax, 2
shr eax, 1
shr ebp, 0x13
and ebp, eax
and ebp, edi
and ebp, esi
mov byte [0x140125001], bpl
je 0x14003f449
mov rcx, r12
mov rdx, rbx
mov r8, r13
movaps xmm6, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x120]
movaps xmm8, xmmword [rsp + 0x130]
movaps xmm9, xmmword [rsp + 0x140]
movaps xmm10, xmmword [rsp + 0x150]
movaps xmm11, xmmword [rsp + 0x160]
movaps xmm12, xmmword [rsp + 0x170]
movaps xmm13, xmmword [rsp + 0x180]
add rsp, 0x198
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp 0x14004047c
mov byte [0x140125001], 0
xorps xmm0, xmm0
movaps xmmword [rsp + 0xe0], xmm0
movaps xmmword [rsp + 0xd0], xmm0
movaps xmmword [rsp + 0xc0], xmm0
movaps xmmword [rsp + 0xb0], xmm0
movdqu xmm6, xmmword [r12]
mov qword [rsp + 0xf8], r12
movdqu xmm0, xmmword [r12 + 0x10]
test r13, r13
je 0x14004020e
shl r13, 6
add r13, rbx
mov qword [rsp + 0x100], r13
xor eax, eax
mov ecx, dword [rbx + rax*4]
bswap ecx
mov dword [rsp + rax*4 + 0xb0], ecx
lea rcx, [rax + 1]
mov rax, rcx
cmp rcx, 0x10
jne 0x14003f49b
add rbx, 0x40
pshufd xmm1, xmm0, 0x55
movdqa xmm11, xmm6
punpcklqdq xmm11, xmm0
mov r12d, dword [rsp + 0xbc]
mov esi, dword [rsp + 0xb8]
mov eax, dword [rsp + 0xb0]
mov r9d, dword [rsp + 0xb4]
movd xmm2, eax
movd xmm3, r9d
punpckldq xmm3, xmm2
movd xmm2, esi
movd xmm10, r12d
punpckldq xmm10, xmm2
punpcklqdq xmm10, xmm3
mov edx, dword [rsp + 0xcc]
mov dword [rsp + 0x88], edx
mov ebp, dword [rsp + 0xc8]
mov r15d, dword [rsp + 0xc4]
mov ecx, dword [rsp + 0xc0]
mov qword [rsp + 0x70], rcx
movd xmm2, ecx
movd xmm3, r15d
punpckldq xmm3, xmm2
movd xmm2, ebp
movd xmm9, edx
punpckldq xmm9, xmm2
punpcklqdq xmm9, xmm3
mov edx, dword [rsp + 0xdc]
mov dword [rsp + 0x8c], edx
mov r8d, dword [rsp + 0xd8]
mov dword [rsp + 0x90], r8d
mov r10d, dword [rsp + 0xd4]
mov dword [rsp + 0x94], r10d
mov ecx, dword [rsp + 0xd0]
mov qword [rsp + 0x108], rcx
movd xmm2, ecx
movd xmm3, r10d
punpckldq xmm3, xmm2
movd xmm2, r8d
movd xmm8, edx
punpckldq xmm8, xmm2
punpcklqdq xmm8, xmm3
mov edx, dword [rsp + 0xe8]
mov dword [rsp + 0x9c], edx
mov r8d, dword [rsp + 0xe4]
mov dword [rsp + 0x80], r8d
mov ecx, dword [rsp + 0xe0]
mov qword [rsp + 0x78], rcx
movd xmm2, ecx
movd xmm3, r8d
punpckldq xmm3, xmm2
movd xmm2, edx
mov ecx, dword [rsp + 0xec]
mov dword [rsp + 0x98], ecx
movd xmm7, ecx
punpckldq xmm7, xmm2
pshufd xmm2, xmm0, 0xee
punpcklqdq xmm7, xmm3
movdqa xmm3, xmm6
punpckhqdq xmm3, xmm0
movdqa xmmword [rsp + 0x50], xmm3
pshufd xmm3, xmm0, 0xff
add r12d, 0xe9b5dba5
add esi, 0xb5c0fbcf
add r9d, 0x71374491
add eax, 0x428a2f98
movdqa xmmword [rsp + 0x40], xmm11
movd dword [rsp + 0xa0], xmm0
movd dword [rsp + 0xa4], xmm1
movd dword [rsp + 0xa8], xmm2
movd dword [rsp + 0xac], xmm3
mov dword [rsp + 0x20], eax
lea r13, [rsp + 0x30]
mov rcx, r13
lea r14, [rsp + 0x50]
mov rdx, r14
lea rdi, [rsp + 0x40]
mov r8, rdi
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], esi
mov rcx, r13
mov rdx, r14
mov rsi, r14
mov r8, rdi
mov r9d, r12d
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
mov r14d, dword [rsp + 0x88]
add r14d, 0xab1c5ed5
add ebp, 0x923f82a4
add r15d, 0x59f111f1
mov rax, qword [rsp + 0x70]
add eax, 0x3956c25b
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], eax
mov rcx, r13
mov rdx, rsi
mov r8, rdi
mov r9d, r15d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], ebp
mov rcx, r13
mov r15, r13
mov rdx, rsi
mov r8, rdi
mov r9d, r14d
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
mov ebp, dword [rsp + 0x8c]
add ebp, 0x550c7dc3
mov r12d, dword [rsp + 0x90]
add r12d, 0x243185be
mov r9d, dword [rsp + 0x94]
add r9d, 0x12835b01
mov r14, qword [rsp + 0x108]
lea eax, [r14 - 0x27f85568]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], eax
mov rcx, r13
mov rdx, rsi
mov r8, rdi
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], r12d
mov rcx, r13
mov rdx, rsi
mov r8, rdi
mov r9d, ebp
call fcn.140040279
movaps xmm13, xmmword [rsp + 0x30]
mov ebp, dword [rsp + 0x98]
add ebp, 0xc19bf174
mov r12d, dword [rsp + 0x9c]
add r12d, 0x9bdc06a7
mov r9d, dword [rsp + 0x80]
add r9d, 0x80deb1fe
mov rax, qword [rsp + 0x78]
add eax, 0x72be5d74
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm13
mov dword [rsp + 0x20], eax
mov rcx, r13
mov rdx, rsi
mov r8, rdi
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm13
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r12d
mov rcx, r13
mov rdx, rsi
mov r8, rdi
mov r9d, ebp
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm10
movdqa xmmword [rsp + 0x50], xmm8
movdqa xmmword [rsp + 0x40], xmm7
mov qword [rsp + 0x20], rdi
mov r13, rdi
lea rdi, [rsp + 0x60]
mov rcx, rdi
mov rdx, r15
mov r8, qword [rsp + 0x70]
mov r12, rsi
mov r9, rsi
call fcn.140040371
movdqa xmm10, xmmword [rsp + 0x60]
mov esi, dword [rsp + 0x60]
mov eax, 0x240ca1cc
add esi, eax
pshufd xmm0, xmm10, 0x55
movd ebp, xmm0
add ebp, 0xfc19dc6
pshufd xmm0, xmm10, 0xee
movd r9d, xmm0
add r9d, 0xefbe4786
pshufd xmm0, xmm10, 0xff
movd eax, xmm0
mov qword [rsp + 0x70], rax
add eax, 0xe49b69c1
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], ebp
mov rcx, r15
mov rdx, r12
mov r8, r13
mov r9d, esi
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x50], xmm7
movdqa xmmword [rsp + 0x40], xmm10
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, r15
mov r8d, r14d
mov r9, r12
call fcn.140040371
movdqa xmm9, xmmword [rsp + 0x60]
mov ebp, dword [rsp + 0x60]
mov eax, 0x76f988da
add ebp, eax
pshufd xmm0, xmm9, 0x55
movd r14d, xmm0
add r14d, 0x5cb0a9dc
pshufd xmm0, xmm9, 0xee
movd r9d, xmm0
add r9d, 0x4a7484aa
pshufd xmm0, xmm9, 0xff
movd eax, xmm0
mov qword [rsp + 0x80], rax
add eax, 0x2de92c6f
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r14d
mov rcx, r15
mov rdx, r12
mov r8, r13
mov r9d, ebp
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmmword [rsp + 0x50], xmm10
movdqa xmmword [rsp + 0x40], xmm9
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rsi, r15
mov rdx, r15
mov r8, qword [rsp + 0x78]
mov r9, r12
call fcn.140040371
movdqa xmm8, xmmword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov eax, 0xbf597fc7
add r14d, eax
pshufd xmm0, xmm8, 0x55
movd r15d, xmm0
add r15d, 0xb00327c8
pshufd xmm0, xmm8, 0xee
movd r9d, xmm0
add r9d, 0xa831c66d
pshufd xmm0, xmm8, 0xff
movd ebp, xmm0
lea eax, [rbp - 0x67c1aeae]
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov rdx, r12
mov r8, r13
mov r9d, r14d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm7
movdqa xmmword [rsp + 0x50], xmm9
movdqa xmmword [rsp + 0x40], xmm8
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8, qword [rsp + 0x70]
mov r9, r12
call fcn.140040371
movdqa xmm7, xmmword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov eax, 0x14292967
add r14d, eax
pshufd xmm0, xmm7, 0x55
movd r15d, xmm0
add r15d, 0x6ca6351
pshufd xmm0, xmm7, 0xee
movd r9d, xmm0
add r9d, 0xd5a79147
pshufd xmm0, xmm7, 0xff
movd eax, xmm0
mov qword [rsp + 0x78], rax
add eax, 0xc6e00bf3
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov rdx, r12
mov r8, r13
mov r9d, r14d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm10
movdqa xmmword [rsp + 0x50], xmm8
movdqa xmmword [rsp + 0x40], xmm7
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8, qword [rsp + 0x80]
mov r9, r12
call fcn.140040371
movdqa xmm10, xmmword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov eax, 0x53380d13
add r14d, eax
pshufd xmm0, xmm10, 0x55
movd r15d, xmm0
add r15d, 0x4d2c6dfc
pshufd xmm0, xmm10, 0xee
movd r9d, xmm0
add r9d, 0x2e1b2138
pshufd xmm0, xmm10, 0xff
movd eax, xmm0
mov qword [rsp + 0x70], rax
add eax, 0x27b70a85
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov rdx, r12
mov r8, r13
mov r9d, r14d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x50], xmm7
movdqa xmmword [rsp + 0x40], xmm10
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8d, ebp
mov r9, r12
call fcn.140040371
movdqa xmm9, xmmword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov eax, 0x92722c85
add r14d, eax
pshufd xmm0, xmm9, 0x55
movd r15d, xmm0
add r15d, 0x81c2c92e
pshufd xmm0, xmm9, 0xee
movd r9d, xmm0
add r9d, 0x766a0abb
pshufd xmm0, xmm9, 0xff
movd ebp, xmm0
lea eax, [rbp + 0x650a7354]
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov rdx, r12
mov r8, r13
mov r9d, r14d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmmword [rsp + 0x50], xmm10
movdqa xmmword [rsp + 0x40], xmm9
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8, qword [rsp + 0x78]
mov r9, r12
call fcn.140040371
movdqa xmm8, xmmword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov eax, 0xc76c51a3
add r14d, eax
pshufd xmm0, xmm8, 0x55
movd r15d, xmm0
add r15d, 0xc24b8b70
pshufd xmm0, xmm8, 0xee
movd r9d, xmm0
add r9d, 0xa81a664b
pshufd xmm0, xmm8, 0xff
movd eax, xmm0
mov qword [rsp + 0x78], rax
add eax, 0xa2bfe8a1
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov rdx, r12
mov r8, r13
mov r9d, r14d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm7
movdqa xmmword [rsp + 0x50], xmm9
movdqa xmmword [rsp + 0x40], xmm8
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8, qword [rsp + 0x70]
mov r9, r12
call fcn.140040371
movdqa xmm7, xmmword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov eax, 0x106aa070
add r14d, eax
pshufd xmm0, xmm7, 0x55
movd r15d, xmm0
add r15d, 0xf40e3585
pshufd xmm0, xmm7, 0xee
movd r9d, xmm0
add r9d, 0xd6990624
pshufd xmm0, xmm7, 0xff
movd eax, xmm0
mov qword [rsp + 0x70], rax
add eax, 0xd192e819
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r15d
mov rcx, rsi
mov rdx, r12
mov r8, r13
mov r9d, r14d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm10
movdqa xmmword [rsp + 0x50], xmm8
movdqa xmmword [rsp + 0x40], xmm7
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
mov r8d, ebp
mov r9, r12
call fcn.140040371
movdqa xmm10, xmmword [rsp + 0x60]
mov r14d, dword [rsp + 0x60]
mov eax, 0x34b0bcb5
add r14d, eax
pshufd xmm0, xmm10, 0x55
movd r15d, xmm0
add r15d, 0x2748774c
pshufd xmm0, xmm10, 0xee
movd r9d, xmm0
add r9d, 0x1e376c08
pshufd xmm0, xmm10, 0xff
movd ebp, xmm0
lea eax, [rbp + 0x19a4c116]
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, rsi
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r15d
mov r15, rsi
mov rcx, rsi
mov rdx, r12
mov r8, r13
mov r9d, r14d
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm9
movdqa xmmword [rsp + 0x50], xmm7
movdqa xmmword [rsp + 0x40], xmm10
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rsi, rdi
mov rdx, r15
mov r8, qword [rsp + 0x78]
mov r9, r12
call fcn.140040371
movdqa xmm9, xmmword [rsp + 0x60]
mov edi, dword [rsp + 0x60]
mov eax, 0x682e6ff3
add edi, eax
pshufd xmm0, xmm9, 0x55
movd r14d, xmm0
add r14d, 0x5b9cca4f
pshufd xmm0, xmm9, 0xee
movd r9d, xmm0
add r9d, 0x4ed8aa4a
pshufd xmm0, xmm9, 0xff
movd eax, xmm0
add eax, 0x391c0cb3
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], r14d
mov rcx, r15
mov rdx, r12
mov r8, r13
mov r9d, edi
call fcn.140040279
movaps xmm12, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm8
movdqa xmmword [rsp + 0x50], xmm10
movdqa xmmword [rsp + 0x40], xmm9
mov qword [rsp + 0x20], r13
mov rcx, rsi
mov rdx, r15
mov r14, r15
mov r8, qword [rsp + 0x70]
mov r9, r12
call fcn.140040371
movdqa xmm10, xmmword [rsp + 0x60]
mov esi, dword [rsp + 0x60]
mov eax, 0x8cc70208
add esi, eax
pshufd xmm0, xmm10, 0x55
movd edi, xmm0
add edi, 0x84c87814
pshufd xmm0, xmm10, 0xee
movd r9d, xmm0
add r9d, 0x78a5636f
pshufd xmm0, xmm10, 0xff
movd eax, xmm0
add eax, 0x748f82ee
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm12
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.140040279
movaps xmm11, xmmword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm12
movaps xmmword [rsp + 0x40], xmm11
mov dword [rsp + 0x20], edi
mov rcx, r15
mov rdx, r12
mov r8, r13
mov r9d, esi
call fcn.140040279
movaps xmm8, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x30], xmm7
movdqa xmmword [rsp + 0x50], xmm9
movdqa xmmword [rsp + 0x40], xmm10
mov qword [rsp + 0x20], r13
lea rcx, [rsp + 0x60]
mov rdx, r15
mov r8d, ebp
mov r9, r12
call fcn.140040371
movdqa xmm0, xmmword [rsp + 0x60]
mov esi, dword [rsp + 0x60]
mov eax, 0xc67178f2
add esi, eax
pshufd xmm1, xmm0, 0x55
movd ebp, xmm1
add ebp, 0xbef9a3f7
pshufd xmm1, xmm0, 0xee
movd r9d, xmm1
add r9d, 0xa4506ceb
pshufd xmm0, xmm0, 0xff
movd eax, xmm0
add eax, 0x90befffa
movaps xmmword [rsp + 0x50], xmm11
movaps xmmword [rsp + 0x40], xmm8
mov dword [rsp + 0x20], eax
mov rcx, r15
mov rdx, r12
mov r8, r13
call fcn.140040279
movdqa xmm7, xmmword [rsp + 0x30]
pshufd xmm0, xmm6, 0xee
movd edi, xmm0
add edi, dword [rsp + 0x30]
movaps xmmword [rsp + 0x50], xmm8
movdqa xmmword [rsp + 0x40], xmm7
mov dword [rsp + 0x20], ebp
mov rcx, r15
mov rdx, r12
mov r8, r13
mov r9d, esi
call fcn.140040279
movdqa xmm0, xmmword [rsp + 0x30]
movd eax, xmm6
add eax, dword [rsp + 0x30]
pshufd xmm1, xmm0, 0x55
movd ecx, xmm1
pshufd xmm1, xmm0, 0xee
movd edx, xmm1
add edx, dword [rsp + 0xa0]
pshufd xmm0, xmm0, 0xff
movd r8d, xmm0
add r8d, dword [rsp + 0xa4]
pshufd xmm0, xmm7, 0x55
movd r9d, xmm0
pshufd xmm0, xmm7, 0xee
movd r10d, xmm0
add r10d, dword [rsp + 0xa8]
pshufd xmm0, xmm7, 0xff
movd r11d, xmm0
add r11d, dword [rsp + 0xac]
pshufd xmm0, xmm6, 0x55
movd esi, xmm0
add esi, ecx
pshufd xmm0, xmm6, 0xff
movd ecx, xmm0
add ecx, r9d
movd xmm0, r11d
movd xmm1, r10d
punpckldq xmm1, xmm0
movd xmm2, r8d
movd xmm0, edx
punpckldq xmm0, xmm2
punpcklqdq xmm0, xmm1
movd xmm1, ecx
movd xmm2, edi
punpckldq xmm2, xmm1
movd xmm1, esi
movd xmm6, eax
punpckldq xmm6, xmm1
punpcklqdq xmm6, xmm2
mov r13, qword [rsp + 0x100]
cmp rbx, r13
jne 0x14003f499
mov rax, qword [rsp + 0xf8]
movdqu xmmword [rax], xmm6
movdqu xmmword [rax + 0x10], xmm0
movaps xmm6, xmmword [rsp + 0x110]
movaps xmm7, xmmword [rsp + 0x120]
movaps xmm8, xmmword [rsp + 0x130]
movaps xmm9, xmmword [rsp + 0x140]
movaps xmm10, xmmword [rsp + 0x150]
movaps xmm11, xmmword [rsp + 0x160]
movaps xmm12, xmmword [rsp + 0x170]
movaps xmm13, xmmword [rsp + 0x180]
add rsp, 0x198
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x3f8
movdqa xmmword [rsp + 0x3e0], xmm15
movdqa xmmword [rsp + 0x3d0], xmm14
movdqa xmmword [rsp + 0x3c0], xmm13
movdqa xmmword [rsp + 0x3b0], xmm12
movaps xmmword [rsp + 0x3a0], xmm11
movaps xmmword [rsp + 0x390], xmm10
movdqa xmmword [rsp + 0x380], xmm9
movdqa xmmword [rsp + 0x370], xmm8
movaps xmmword [rsp + 0x360], xmm7
movaps xmmword [rsp + 0x350], xmm6
movdqu xmm0, xmmword [rcx]
mov qword [rsp + 0x48], rcx
movdqu xmm1, xmmword [rcx + 0x10]
pshufd xmm0, xmm0, 0xb1
pshufd xmm10, xmm1, 0x1b
movdqa xmm11, xmm0
palignr xmm11, xmm10, 8
pblendw xmm10, xmm0, 0xf0
test r8, r8
je 0x140040b79
mov rdi, r8
mov rbx, rdx
shl rdi, 6
add rdi, rdx
movdqa xmm8, xmmword [0x1400b2b00]
lea r14, [rsp + 0x30]
lea r12, [rsp + 0x2e0]
lea r13, [rsp + 0x2f0]
lea rbp, [rsp + 0x310]
lea rsi, [rsp + 0x320]
lea r15, [rsp + 0x330]
movdqa xmm12, xmmword [0x1400b2c00]
movdqa xmm6, xmm10
movdqa xmm7, xmm11
movdqu xmm0, xmmword [rbx]
movdqu xmm15, xmmword [rbx + 0x10]
movdqu xmm14, xmmword [rbx + 0x20]
movdqu xmm13, xmmword [rbx + 0x30]
pshufb xmm0, xmm8
pshufb xmm15, xmm8
pshufb xmm14, xmm8
pshufb xmm13, xmm8
movdqa xmmword [rsp + 0x50], xmm0
paddd xmm0, xmmword [0x1400b2b10]
sha256rnds2 xmm6, xmm11, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmm0, xmm15
paddd xmm0, xmmword [0x1400b2b20]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmm0, xmm14
paddd xmm0, xmmword [0x1400b2b30]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmm0, xmm13
paddd xmm0, xmmword [0x1400b2b40]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x60], xmm15
movdqa xmmword [rsp + 0x70], xmm14
movdqa xmmword [rsp + 0x80], xmm13
lea rax, [rsp + 0x80]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x50]
lea r8, [rsp + 0x60]
lea r9, [rsp + 0x70]
call fcn.140040c17
movdqa xmm9, xmmword [rsp + 0x30]
movdqa xmm0, xmm9
paddd xmm0, xmmword [0x1400b2b50]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x90], xmm15
movdqa xmmword [rsp + 0xa0], xmm14
movdqa xmmword [rsp + 0xb0], xmm13
movdqa xmmword [rsp + 0xc0], xmm9
lea rax, [rsp + 0xc0]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x90]
lea r8, [rsp + 0xa0]
lea r9, [rsp + 0xb0]
call fcn.140040c17
movdqa xmm15, xmmword [rsp + 0x30]
movdqa xmm0, xmm15
paddd xmm0, xmmword [0x1400b2b60]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0xd0], xmm14
movdqa xmmword [rsp + 0xe0], xmm13
movdqa xmmword [rsp + 0xf0], xmm9
movdqa xmmword [rsp + 0x100], xmm15
lea rax, [rsp + 0x100]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0xd0]
lea r8, [rsp + 0xe0]
lea r9, [rsp + 0xf0]
call fcn.140040c17
movdqa xmm14, xmmword [rsp + 0x30]
movdqa xmm0, xmm14
paddd xmm0, xmmword [0x1400b2b70]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x110], xmm13
movdqa xmmword [rsp + 0x120], xmm9
movdqa xmmword [rsp + 0x130], xmm15
movdqa xmmword [rsp + 0x140], xmm14
lea rax, [rsp + 0x140]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x110]
lea r8, [rsp + 0x120]
lea r9, [rsp + 0x130]
call fcn.140040c17
movdqa xmm13, xmmword [rsp + 0x30]
movdqa xmm0, xmm13
paddd xmm0, xmmword [0x1400b2b80]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x150], xmm9
movdqa xmmword [rsp + 0x160], xmm15
movdqa xmmword [rsp + 0x170], xmm14
movdqa xmmword [rsp + 0x180], xmm13
lea rax, [rsp + 0x180]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x150]
lea r8, [rsp + 0x160]
lea r9, [rsp + 0x170]
call fcn.140040c17
movdqa xmm9, xmmword [rsp + 0x30]
movdqa xmm0, xmm9
paddd xmm0, xmmword [0x1400b2b90]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x190], xmm15
movdqa xmmword [rsp + 0x1a0], xmm14
movdqa xmmword [rsp + 0x1b0], xmm13
movdqa xmmword [rsp + 0x1c0], xmm9
lea rax, [rsp + 0x1c0]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x190]
lea r8, [rsp + 0x1a0]
lea r9, [rsp + 0x1b0]
call fcn.140040c17
movdqa xmm15, xmmword [rsp + 0x30]
movdqa xmm0, xmm15
paddd xmm0, xmmword [0x1400b2ba0]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x1d0], xmm14
movdqa xmmword [rsp + 0x1e0], xmm13
movdqa xmmword [rsp + 0x1f0], xmm9
movdqa xmmword [rsp + 0x200], xmm15
lea rax, [rsp + 0x200]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x1d0]
lea r8, [rsp + 0x1e0]
lea r9, [rsp + 0x1f0]
call fcn.140040c17
movdqa xmm14, xmmword [rsp + 0x30]
movdqa xmm0, xmm14
paddd xmm0, xmmword [0x1400b2bb0]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x210], xmm13
movdqa xmmword [rsp + 0x220], xmm9
movdqa xmmword [rsp + 0x230], xmm15
movdqa xmmword [rsp + 0x240], xmm14
lea rax, [rsp + 0x240]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x210]
lea r8, [rsp + 0x220]
lea r9, [rsp + 0x230]
call fcn.140040c17
movdqa xmm13, xmmword [rsp + 0x30]
movdqa xmm0, xmm13
paddd xmm0, xmmword [0x1400b2bc0]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x250], xmm9
movdqa xmmword [rsp + 0x260], xmm15
movdqa xmmword [rsp + 0x270], xmm14
movdqa xmmword [rsp + 0x280], xmm13
lea rax, [rsp + 0x280]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x250]
lea r8, [rsp + 0x260]
lea r9, [rsp + 0x270]
call fcn.140040c17
movdqa xmm9, xmmword [rsp + 0x30]
movdqa xmm0, xmm9
paddd xmm0, xmmword [0x1400b2bd0]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x290], xmm15
movdqa xmmword [rsp + 0x2a0], xmm14
movdqa xmmword [rsp + 0x2b0], xmm13
movdqa xmmword [rsp + 0x2c0], xmm9
lea rax, [rsp + 0x2c0]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x290]
lea r8, [rsp + 0x2a0]
lea r9, [rsp + 0x2b0]
call fcn.140040c17
movdqa xmm15, xmmword [rsp + 0x30]
movdqa xmm0, xmm15
paddd xmm0, xmmword [0x1400b2be0]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x2d0], xmm14
movdqa xmmword [rsp + 0x2e0], xmm13
movdqa xmmword [rsp + 0x2f0], xmm9
movdqa xmmword [rsp + 0x300], xmm15
lea rax, [rsp + 0x300]
mov qword [rsp + 0x20], rax
mov rcx, r14
lea rdx, [rsp + 0x2d0]
mov r8, r12
mov r9, r13
call fcn.140040c17
movdqa xmm0, xmmword [rsp + 0x30]
movdqa xmmword [rsp + 0x340], xmm0
paddd xmm0, xmmword [0x1400b2bf0]
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
movdqa xmmword [rsp + 0x310], xmm13
movdqa xmmword [rsp + 0x320], xmm9
movdqa xmmword [rsp + 0x330], xmm15
lea rax, [rsp + 0x340]
mov qword [rsp + 0x20], rax
mov rcx, r14
mov rdx, rbp
mov r8, rsi
mov r9, r15
call fcn.140040c17
movdqa xmm0, xmmword [rsp + 0x30]
paddd xmm0, xmm12
sha256rnds2 xmm6, xmm7, xmm0
pshufd xmm0, xmm0, 0xe
sha256rnds2 xmm7, xmm6, xmm0
paddd xmm7, xmm11
paddd xmm6, xmm10
add rbx, 0x40
movdqa xmm11, xmm7
movdqa xmm10, xmm6
cmp rbx, rdi
jne 0x140040578
jmp 0x140040b83
movdqa xmm6, xmm10
movdqa xmm7, xmm11
pshufd xmm0, xmm7, 0x1b
pshufd xmm1, xmm6, 0xb1
movdqa xmm2, xmm0
pblendw xmm2, xmm1, 0xf0
palignr xmm1, xmm0, 8
mov rax, qword [rsp + 0x48]
movdqu xmmword [rax], xmm2
movdqu xmmword [rax + 0x10], xmm1
movaps xmm6, xmmword [rsp + 0x350]
movaps xmm7, xmmword [rsp + 0x360]
movaps xmm8, xmmword [rsp + 0x370]
movaps xmm9, xmmword [rsp + 0x380]
movaps xmm10, xmmword [rsp + 0x390]
movaps xmm11, xmmword [rsp + 0x3a0]
movaps xmm12, xmmword [rsp + 0x3b0]
movaps xmm13, xmmword [rsp + 0x3c0]
movaps xmm14, xmmword [rsp + 0x3d0]
movaps xmm15, xmmword [rsp + 0x3e0]
add rsp, 0x3f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret