Function at 0x1402f4e20
Capabilities:
Hash data using sha256

Disassembly:
mov qword [rsp + 8], rcx
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x178]
sub rsp, 0x278
movdqa xmm0, xmmword [0x1403daa60]
lea r8, [rcx + 4]
mov r13d, 1
mov dword [rbp + 0xa0], 2
movdqu xmmword [rbp + 0x90], xmm0
mov dword [rbp + 0xa4], r13d
movdqa xmm0, xmmword [0x1403daa50]
movdqu xmmword [rbp + 0xa8], xmm0
lea esi, [r13 + 0x1f]
mov dword [rbp + 0xb8], r13d
movdqa xmm0, xmmword [0x1403daa70]
movdqu xmmword [rbp + 0xc0], xmm0
mov dword [rbp + 0xbc], r13d
xorps xmm0, xmm0
mov dword [rbp + 0xd0], 3
movups xmmword [rsp + 0x78], xmm0
mov qword [rsp + 0x78], rdx
movups xmmword [rbp - 0x78], xmm0
mov byte [rbp - 0x74], 0xda
mov dword [rbp + 0xd4], 3
mov qword [rbp + 0x28], r8
xor edi, edi
mov dword [rbp + 0x34], r13d
xorps xmm0, xmm0
mov dword [rbp + 0x30], edi
xor eax, eax
mov dword [rbp + 0x38], 2
mov dword [rsp + 0x38], eax
xorps xmm1, xmm1
mov word [rsp + 0x3c], ax
xor dl, dl
mov dword [rbp + 0x78], eax
mov r14d, edi
mov dword [rsp + 0x68], eax
mov r12d, edi
mov qword [rbp + 0x160], rax
mov r15d, edi
mov word [rbp + 0x168], ax
mov ecx, edi
mov eax, edi
mov dword [rbp + 0x3c], 3
mov dword [rbp + 0x1d0], eax
mov dword [rbp + 0x40], 0xffffff
mov dword [rbp + 0x44], 0xffffff
mov dword [rbp + 0x48], 0xffffff
mov dword [rbp + 0x4c], 0xffffff
mov dword [rbp + 0x50], 0xffffff
movups xmmword [rbp + 0x58], xmm0
mov dword [rsp + 0x40], edi
movups xmmword [rbp + 0x68], xmm0
mov word [rsp + 0x3b], 0x101
movups xmmword [rsp + 0x48], xmm1
mov dword [rsp + 0x24], edi
movups xmmword [rsp + 0x58], xmm1
mov qword [rsp + 0x30], rdi
movups xmmword [rbp + 0xe0], xmm0
mov dword [rsp + 0x28], edx
movups xmmword [rbp + 0xf0], xmm0
mov qword [rbp + 0x20], r8
movups xmmword [rbp + 0x100], xmm0
movups xmmword [rbp + 0x110], xmm0
movups xmmword [rbp + 0x120], xmm0
movups xmmword [rbp + 0x130], xmm0
movups xmmword [rbp + 0x140], xmm0
movups xmmword [rbp + 0x150], xmm0
jmp 0x1402f4fc0
mov eax, dword [rbp + 0x1d0]
jmp 0x1402f4fb9
mov r12d, dword [rsp + 0x24]
mov r15, qword [rsp + 0x30]
xor edi, edi
nop dword [rax + rax]
cmp dword [rbp + 0x58], 0x2d
jl 0x1402f4fdc
cmp dword [rbp + 0x5c], 0x2d
jl 0x1402f4fdc
cmp dword [rbp + 0x60], 0x2d
jl 0x1402f4fdc
cmp dword [rbp + 0x64], 0x2d
jge 0x1402f54be
cmp eax, 0x40
jge 0x1402f54be
inc ecx
mov dword [rsp + 0x20], ecx
cmp ecx, 0x100
jg 0x1402f54be
lea rax, [rsi + 1]
cmp rax, 0x20
jbe 0x1402f5077
movups xmm0, xmmword [rsp + 0x78]
lea rdx, [rsp + 0x78]
mov dword [rbp - 0x60], 0x6a09e667
movups xmm1, xmmword [rbp - 0x78]
lea rcx, [rbp - 0x60]
mov dword [rbp - 0x5c], 0xbb67ae85
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x10], xmm1
mov dword [rbp - 0x58], 0x3c6ef372
mov dword [rbp - 0x54], 0xa54ff53a
mov dword [rbp - 0x50], 0x510e527f
mov dword [rbp - 0x4c], 0x9b05688c
mov dword [rbp - 0x48], 0x1f83d9ab
mov qword [rbp - 0x44], 0x5be0cd19
mov qword [rbp - 0x28], 0x100
mov qword [rbp - 0x30], 0
mov qword [rbp - 0x38], 0
mov dword [rbp - 0x3c], edi
call fcn.1402a1be0
mov rsi, rdi
movzx ebx, byte [rsp + rsi + 0x78]
inc rsi
movzx r8d, bl
and r8b, 7
cmp r8b, 5
jne 0x1402f512e
lea rax, [rsi + 1]
cmp rax, 0x20
jbe 0x1402f5111
movups xmm0, xmmword [rsp + 0x78]
lea rdx, [rsp + 0x78]
mov dword [rbp - 0x60], 0x6a09e667
movups xmm1, xmmword [rbp - 0x78]
lea rcx, [rbp - 0x60]
mov dword [rbp - 0x5c], 0xbb67ae85
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x10], xmm1
mov dword [rbp - 0x58], 0x3c6ef372
mov dword [rbp - 0x54], 0xa54ff53a
mov dword [rbp - 0x50], 0x510e527f
mov dword [rbp - 0x4c], 0x9b05688c
mov dword [rbp - 0x48], 0x1f83d9ab
mov qword [rbp - 0x44], 0x5be0cd19
mov qword [rbp - 0x28], 0x100
mov qword [rbp - 0x30], 0
mov qword [rbp - 0x38], 0
mov dword [rbp - 0x3c], edi
call fcn.1402a1be0
mov rsi, rdi
lea rax, [rsp + 0x78]
add rax, rsi
inc rsi
movzx r8d, byte [rax]
sar r8b, 7
and r8b, 1
add r8b, 3
jmp 0x1402f5187
cmp r8b, 6
jb 0x1402f515f
movzx eax, bl
mov r8b, 5
shr al, 3
and al, 3
movzx r15d, al
shr bl, 5
mov ecx, r15d
movzx r13d, bl
mov r9d, r15d
mov edx, r13d
mov dword [rbp + 0x1d8], r15d
mov eax, r13d
jmp 0x1402f51ce
cmp r8b, 2
ja 0x1402f5183
movzx eax, bl
xor r8b, r8b
shr al, 3
and al, 3
movzx r9d, al
shr bl, 5
movzx eax, bl
mov byte [rbp + 0x1d8], r9b
jmp 0x1402f51d7
add r8b, 0xfe
movzx r15d, bl
shr bl, 5
shr r15b, 3
and r15b, 3
movzx r13d, bl
movzx ecx, r15b
mov edx, r13d
mov dword [rbp + 0x1d8], r15d
mov r9d, ecx
mov eax, r13d
cmp r8b, 1
je 0x1402f51ce
mov dword [rbp + 0x1d8], r15d
cmp r8b, 2
je 0x1402f51ce
mov dword [rbp + 0x1d8], r15d
cmp r8b, 5
jne 0x1402f51db
cmp ecx, edx
jne 0x1402f51db
mov eax, 8
movzx r13d, al
movzx ebx, r8b
mov r10d, r9d
mov qword [rbp + 0x80], r10
movzx edi, byte [rsp + rbx + 0x38]
test dil, dil
je 0x1402f5208
cmp byte [rsp + r10 + 0x40], 0
mov ecx, dword [rsp + 0x20]
mov r15, qword [rsp + 0x30]
jne 0x1402f4fa7
mov edx, eax
test r8b, r8b
je 0x1402f5241
movzx ecx, byte [rbp + rdx*4 + 0x30]
mov r15, qword [rsp + 0x30]
shl ecx, 0x10
movzx eax, r8b
shl eax, 8
add ecx, eax
mov eax, dword [rbp + r10*4 + 0x30]
and eax, 0xffff00
cmp eax, ecx
mov eax, dword [rbp + 0x1d0]
mov ecx, dword [rsp + 0x20]
je 0x1402f4fb9
mov ecx, dword [rbp + r10*4 + 0x58]
lea r12, [rdx*4]
mov eax, dword [rbp + r12 + 0x58]
mov r11d, ecx
cmp ecx, eax
mov qword [rbp + 0x88], r12
mov dword [rsp + 0x74], ecx
mov r15d, 0xffffffff
cmovle r11d, eax
cmp r11d, 0x2d
jge 0x1402f531f
movsxd rcx, dword [rbp + rbx*4 + 0xc0]
movsxd r9, r11d
lea r12, [rcx - 1]
dec ecx
mov dword [rsp + 0x70], ecx
nop dword [rax]
mov r10d, ecx
mov rdx, r12
test r12, r12
js 0x1402f52fd
lea rax, [rbp + 0xe0]
add rax, r9
lea rbx, [rax + r9*2]
nop dword [rax]
cmp byte [rbx + rdx], 0
jne 0x1402f52e6
cmp r8b, 1
jne 0x1402f52cd
lea rcx, [rdx + r9*2]
add rcx, r9
cmp byte [rbp + rcx + 0xe3], 0
jne 0x1402f52e6
test dil, dil
je 0x1402f52f1
movzx ecx, r8b
mov eax, r14d
imul eax, dword [rbp + rcx*4 + 0x90]
cmp r11d, eax
jge 0x1402f52f1
dec r10d
sub rdx, 1
jns 0x1402f52b0
jmp 0x1402f52f4
mov r15d, r10d
test r15d, r15d
jns 0x1402f5309
mov ecx, dword [rsp + 0x70]
inc r11d
inc r9
cmp r9, 0x2d
jl 0x1402f5290
mov ecx, dword [rsp + 0x74]
mov r10, qword [rbp + 0x80]
mov r12, qword [rbp + 0x88]
movzx ebx, r8b
lea eax, [rcx + 7]
mov ecx, dword [rsp + 0x20]
cmp r11d, eax
mov eax, dword [rbp + 0x1d0]
jg 0x1402f4faf
mov ecx, dword [rbp + rbx*4 + 0x90]
add r11d, ecx
cmp r11d, 0x2d
jg 0x1402f54ad
test dil, dil
je 0x1402f5351
inc r14d
mov byte [rsp + r10 + 0x40], dil
mov eax, r11d
sub eax, ecx
mov dword [rbp + r10*4 + 0x58], r11d
movsxd rdx, eax
mov eax, dword [rsp + r12 + 0x48]
movsxd r9, r15d
lea rcx, [r9 + rdx*2]
add rcx, rdx
mov byte [rbp + rcx + 0xe0], 1
mov ecx, dword [rsp + r10*4 + 0x48]
cmp ecx, eax
cmovle ecx, eax
movzx eax, byte [rbp + r12 + 0x30]
add ecx, dword [rbp + rbx*4 + 0xa8]
xor edi, edi
mov rbx, qword [rbp + 0x20]
mov r12d, dword [rsp + 0x24]
mov dword [rsp + r10*4 + 0x48], ecx
shl eax, 0x10
add eax, r12d
movzx ecx, r8b
shl ecx, 8
add ecx, eax
mov byte [rbx - 4], r8b
mov eax, dword [rbp + 0x1d8]
cmp r13b, 8
mov dword [rbp + r10*4 + 0x30], ecx
mov r10d, dword [rsp + 0x28]
mov byte [rbx - 3], al
mov eax, 1
movzx r10d, r10b
cmove r10d, eax
mov byte [rbx - 2], r13b
mov dword [rsp + 0x28], r10d
mov dword [rbx], edi
cmp r8b, al
jne 0x1402f547b
lea rcx, [r9 + rdx*2]
add rcx, rdx
mov byte [rbp + rcx + 0xe3], al
lea rax, [rsi + 4]
cmp rax, 0x20
jbe 0x1402f5471
movups xmm0, xmmword [rsp + 0x78]
lea rdx, [rsp + 0x78]
mov dword [rbp - 0x60], 0x6a09e667
movups xmm1, xmmword [rbp - 0x78]
lea rcx, [rbp - 0x60]
mov dword [rbp - 0x5c], 0xbb67ae85
movaps xmmword [rbp - 0x20], xmm0
movaps xmmword [rbp - 0x10], xmm1
mov dword [rbp - 0x58], 0x3c6ef372
mov dword [rbp - 0x54], 0xa54ff53a
mov dword [rbp - 0x50], 0x510e527f
mov dword [rbp - 0x4c], 0x9b05688c
mov dword [rbp - 0x48], 0x1f83d9ab
mov qword [rbp - 0x44], 0x5be0cd19
mov qword [rbp - 0x28], 0x100
mov qword [rbp - 0x30], rdi
mov qword [rbp - 0x38], rdi
mov dword [rbp - 0x3c], edi
call fcn.1402a1be0
mov esi, edi
mov eax, dword [rsp + rsi + 0x78]
add rsi, 4
mov dword [rbx], eax
mov r15, qword [rsp + 0x30]
inc r12d
inc r15
mov dword [rsp + 0x24], r12d
add rbx, 8
mov qword [rsp + 0x30], r15
mov qword [rbp + 0x20], rbx
cmp r15, 0x3c
jge 0x1402f54be
mov eax, dword [rbp + 0x1d0]
mov ecx, dword [rsp + 0x20]
jmp 0x1402f4fc0
mov ecx, dword [rsp + 0x20]
inc eax
mov dword [rbp + 0x1d0], eax
jmp 0x1402f4faf
mov r13d, 1
cmp r15, 0x46
jge 0x1402f561f
mov rbx, qword [rbp + 0x1c0]
add rbx, 2
xor r14d, r14d
lea rbx, [rbx + r15*8]
cmp dword [rsp + 0x48], 0x2d
jge 0x1402f5622
cmp dword [rsp + 0x4c], 0x2d
jge 0x1402f5622
cmp dword [rsp + 0x50], 0x2d
jge 0x1402f5622
cmp dword [rsp + 0x54], 0x2d
jge 0x1402f5622
mov r11d, r14d
lea r9, [rsp + 0x54]
mov r10d, r14d
mov eax, r13d
nop word [rax + rax]
mov r8d, dword [r9 - 8]
mov edx, eax
movsxd rcx, r11d
cmp r8d, dword [rsp + rcx*4 + 0x48]
movsxd rcx, r10d
cmovge edx, r11d
movsxd r11, edx
mov edx, eax
cmp r8d, dword [rsp + rcx*4 + 0x48]
cmovle edx, r10d
movsxd r10, edx
mov edx, dword [r9 - 4]
cmp edx, dword [rsp + r11*4 + 0x48]
jge 0x1402f5555
lea r11d, [rax + 1]
cmp edx, dword [rsp + r10*4 + 0x48]
jle 0x1402f5560
lea r10d, [rax + 1]
mov edx, dword [r9]
movsxd rcx, r11d
cmp edx, dword [rsp + rcx*4 + 0x48]
jge 0x1402f5570
lea r11d, [rax + 2]
movsxd rcx, r10d
cmp edx, dword [rsp + rcx*4 + 0x48]
jle 0x1402f557d
lea r10d, [rax + 2]
add eax, 3
add r9, 0xc
cmp eax, 4
jl 0x1402f5520
mov ecx, edi
mov word [rbp + 0x1c8], 3
mov eax, 0x55555556
mov byte [rbp + 0x1ca], r14b
imul edi
mov byte [rbx - 1], r11b
inc r12d
mov eax, edx
mov byte [rbx], r10b
shr eax, 0x1f
inc edi
add edx, eax
mov dword [rbx + 2], r14d
inc r15
lea eax, [rdx + rdx*2]
sub ecx, eax
movsxd rax, ecx
movzx r9d, byte [rbp + rax + 0x1c8]
movsxd rax, r10d
mov byte [rbx - 2], r9b
add rbx, 8
lea rcx, [r9*4]
lea r8, [rax*4]
movsxd rax, r11d
lea rdx, [rax*4]
mov eax, dword [rbp + rcx + 0x90]
add eax, dword [rbp + r8 + 0x58]
mov dword [rbp + rdx + 0x58], eax
mov eax, dword [rbp + rcx + 0xa8]
add eax, dword [rsp + r8 + 0x48]
mov dword [rsp + rdx + 0x48], eax
cmp r15, 0x46
jl 0x1402f54e0
jmp 0x1402f5622
xor r14d, r14d
mov edx, dword [rsp + 0x28]
mov r8, qword [rbp + 0x28]
test dl, dl
je 0x1402f4eca
lea ecx, [r12 - 0x3c]
cmp ecx, 0xa
ja 0x1402f4eca
mov r9, qword [rbp + 0x1c0]
mov eax, r12d
movsxd rcx, r12d
mov word [r9 + rcx*8], 6
mov byte [r9 + rcx*8 + 2], 0
mov dword [r9 + rcx*8 + 4], r14d
add rsp, 0x278
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret