Function at 0x140024e20
Capabilities:
Hash data using sha256

Disassembly:
mov qword [rsp + 8], rcx
push rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x48
mov rbx, rcx
mov eax, dword [rcx]
cmp eax, 0x3f
jne 0x140024ebe
xor esi, esi
mov eax, esi
cmp dword [rcx + 4], eax
jbe 0x140024e62
nop dword [rax + rax]
mov edx, eax
movzx ecx, byte [rdx + rbx + 8]
mov byte [rdx + rbx + 0x28], cl
inc eax
cmp eax, dword [rbx + 4]
jb 0x140024e50
cmp qword [rbx + 0x20], rsi
jbe 0x140024e97
nop dword [rax + rax]
cmp eax, 0x20
jae 0x140025201
mov r8d, eax
mov edx, esi
mov rcx, qword [rbx + 0x18]
movzx edx, byte [rdx + rcx]
mov byte [r8 + rbx + 0x28], dl
inc eax
inc esi
mov ecx, esi
cmp rcx, qword [rbx + 0x20]
jb 0x140024e70
cmp eax, 0x20
jae 0x140025201
mov ecx, eax
add rcx, 0x28
add rcx, rbx
mov r8d, 0x20
sub r8d, eax
xor edx, edx
call fcn.14003f610
jmp 0x140025201
mov ecx, 6
cmp eax, ecx
cmovbe ecx, eax
mov r13d, 1
shl r13d, cl
mov dword [rsp + 0x98], r13d
mov r14d, dword [rbx + 4]
add r14d, 8
add r14, qword [rbx + 0x20]
mov r15d, r13d
imul r15, r14
mov qword [rsp + 0xa8], r15
lea rbp, [r14 + 0x40]
lea rbp, [r15 + rbp*2]
mov qword [rsp + 0x20], rbp
xor esi, esi
mov qword [rsp + 0x30], rsi
mov rdx, rbp
lea rcx, fcn.140025d00
call fcn.140025d00
mov rdi, rax
mov qword [rsp + 0x28], rax
test rax, rax
je 0x140025212
mov qword [rsp + 0x30], rbp
lea rbp, [rax + 0x80]
mov r8d, dword [rbx + 4]
lea rdx, [rbx + 8]
mov rcx, rbp
call fcn.14003ef60
mov ecx, dword [rbx + 4]
add rcx, rbp
mov r8, qword [rbx + 0x20]
mov rdx, qword [rbx + 0x18]
call fcn.14003ef60
lea rdx, [r14 - 8]
add rdx, rbp
mov qword [rsp + 0xa0], rdx
xor eax, eax
mov qword [rdx], rax
mov rax, qword [0x140064a30]
mov qword [rdi], rax
mov qword [rdi + 8], rsi
mov dword [rdi + 0x20], 0x6a09e667
mov dword [rdi + 0x24], 0xbb67ae85
mov dword [rdi + 0x28], 0x3c6ef372
mov dword [rdi + 0x2c], 0xa54ff53a
mov dword [rdi + 0x30], 0x510e527f
mov dword [rdi + 0x34], 0x9b05688c
mov dword [rdi + 0x38], 0x1f83d9ab
mov dword [rdi + 0x3c], 0x5be0cd19
cmp r13d, 1
jbe 0x140024ff3
lea r15d, [r13 - 1]
nop dword [rax + rax]
add rbp, r14
mov r8, r14
lea rdx, [rdi + 0x80]
mov rcx, rbp
call fcn.14003ef60
sub r15, 1
jne 0x140024fc0
mov rbx, qword [rsp + 0x90]
mov r15, qword [rsp + 0xa8]
mov rdx, qword [rsp + 0xa0]
mov ecx, dword [rbx]
mov eax, 1
shl eax, cl
mov dword [rsp + 0xa0], eax
mov ebp, esi
lea rbx, [rdi + 0x80]
mov esi, dword [rsp + 0x98]
mov rcx, rdx
mov eax, ebp
add ebp, esi
nop word [rax + rax]
mov dword [rcx], eax
inc eax
add rcx, r14
cmp eax, ebp
jb 0x140025020
mov r12, r15
mov r13, rbx
test r15, r15
je 0x1400250dc
mov ecx, dword [rdi + 8]
and ecx, 0x3f
add qword [rdi + 8], r15
mov edx, 0x40
sub edx, ecx
mov qword [rsp + 0x98], rdx
cmp rdx, r15
jbe 0x14002506c
add rcx, 0x40
add rcx, rdi
mov r8, r15
mov rdx, rbx
call fcn.14003ef60
jmp 0x1400250d5
test ecx, ecx
je 0x1400250a0
sub r12, rdx
add rcx, 0x40
add rcx, rdi
mov r8, rdx
mov rdx, rbx
call fcn.14003ef60
mov r13, qword [rsp + 0x98]
add r13, rbx
lea rdx, [rdi + 0x40]
mov r8d, 1
lea rcx, [rdi + 0x20]
call qword [rdi]
mov r15, r12
shr r15, 6
mov r8, r15
mov rdx, r13
lea rcx, [rdi + 0x20]
call qword [rdi]
and r12d, 0x3f
je 0x1400250cd
shl r15, 6
lea rdx, [r15 + r13]
lea rcx, [rdi + 0x40]
mov r8d, r12d
call fcn.14003ef60
mov r15, qword [rsp + 0xa8]
lea rdx, [r14 - 8]
add rdx, rbx
cmp ebp, dword [rsp + 0xa0]
jb 0x140025013
mov rbx, qword [rsp + 0x90]
add rbx, 0x28
mov ecx, dword [rdi + 8]
and ecx, 0x3f
mov byte [rcx + rdi + 0x40], 0x80
inc ecx
cmp ecx, 0x38
mov esi, 0
jbe 0x140025137
cmp ecx, 0x40
je 0x14002511d
mov byte [rcx + rdi + 0x40], sil
inc ecx
cmp ecx, 0x40
jne 0x140025111
lea rbp, [rdi + 0x40]
mov r8d, 1
mov rdx, rbp
lea r14, [rdi + 0x20]
mov rcx, r14
call qword [rdi]
mov ecx, esi
jmp 0x14002513f
lea rbp, [rdi + 0x40]
lea r14, [rdi + 0x20]
mov r8d, 0x38
sub r8d, ecx
mov eax, ecx
lea rcx, [rdi + 0x40]
add rcx, rax
xor edx, edx
call fcn.14003f610
mov rcx, qword [rdi + 8]
shl rcx, 3
mov rax, rcx
shr rax, 0x20
bswap eax
mov dword [rdi + 0x78], eax
bswap ecx
mov dword [rdi + 0x7c], ecx
mov r8d, 1
mov rdx, rbp
mov rcx, r14
call qword [rdi]
lea rdx, [rdi + 0x24]
mov r9d, 4
nop dword [rax]
mov eax, dword [rdx - 4]
mov ecx, dword [rdx]
bswap eax
mov dword [rbx], eax
bswap ecx
mov dword [rbx + 4], ecx
lea rbx, [rbx + 8]
lea rdx, [rdx + 8]
sub r9, 1
jne 0x140025190
mov qword [rdi + 8], rsi
mov dword [r14], 0x6a09e667
mov dword [rdi + 0x24], 0xbb67ae85
mov dword [rdi + 0x28], 0x3c6ef372
mov dword [rdi + 0x2c], 0xa54ff53a
mov dword [rdi + 0x30], 0x510e527f
mov dword [rdi + 0x34], 0x9b05688c
mov dword [rdi + 0x38], 0x1f83d9ab
mov dword [rdi + 0x3c], 0x5be0cd19
mov r8, qword [rsp + 0x20]
xor edx, edx
mov rcx, rdi
call fcn.14003f610
nop
mov rcx, qword [rdi - 8]
call fcn.140043748
add rsp, 0x48
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov dword [rsp + 0x90], 1
lea rdx, [0x140061e00]
lea rcx, [rsp + 0x90]
call fcn.14003fdc0
int3