Function at 0x41e740
Capabilities:
Hash data using sha256

Disassembly:
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xe0
mov rdi, rcx
mov rbx, rdx
mov rsi, r8
cmp r8, 0x40
ja 0x41ec08
vmovdqu ymm1, ymmword [0x0073db80]
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
mov qword [rcx + 0x20], 0
mov qword [rcx + 0x28], 0
mov qword [rcx + 0x30], 0
mov qword [rcx + 0x38], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdx
vmovdqu ymmword [rcx], ymm1
lea r12, [rsp + 0x60]
test r8, r8
je 0x41ed70
lea rbp, [r8 - 1]
mov rdx, rbp
cmp rbp, 0x1e
jbe 0x41ed69
vmovdqu8 ymm0, ymmword [str.66666666666666666666666666666666_r]
mov rax, r8
vpxor ymm2, ymm0, ymmword [rbx]
shr rax, 5
vmovdqu8 ymmword [rsp + 0x60], ymm2
cmp rax, 2
je 0x41ebf0
cmp r8, 0x20
je 0x41e980
mov eax, 0x20
mov rcx, rsi
sub rdx, rax
sub rcx, rax
cmp rdx, 0xe
jbe 0x41e860
vmovdqu8 xmm3, xmmword [rbx + rax]
lea rdx, [r12 + rax]
vpxor xmm0, xmm3, xmmword [rdx]
vmovdqu8 xmmword [rdx], xmm0
mov rdx, rcx
and rdx, 0xfffffffffffffff0
add rax, rdx
cmp rcx, rdx
je 0x41e980
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
lea rdx, [rax + 1]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 1]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 2]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 2]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 3]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 3]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 4]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 4]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 5]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 5]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 6]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 6]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 7]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 7]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 8]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 8]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 9]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 9]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xa]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 0xa]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xb]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 0xb]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xc]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 0xc]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xd]
cmp rdx, rsi
jae 0x41e980
movzx ecx, byte [rbx + rax + 0xd]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xe]
cmp rdx, rsi
jae 0x41e980
movzx eax, byte [rbx + rax + 0xe]
xor byte [rsp + rdx + 0x60], al
mov r8d, 0x200
mov rdx, r12
mov rcx, rdi
vmovdqu ymmword [rsp + 0x20], ymm1
vzeroupper
call fcn.0041ceb0
vmovdqu ymm1, ymmword [rsp + 0x20]
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [rdi + 0xa0], 0
mov qword [rdi + 0xa8], 0
mov qword [rdi + 0xb0], 0
mov qword [rdi + 0xb8], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdx
lea r9, [rdi + 0x80]
vmovdqu ymmword [rdi + 0x80], ymm1
cmp rbp, 0x1e
jbe 0x41ee6c
vmovdqu8 ymm0, ymmword [0x0073dbc0]
mov rax, rsi
vpxor ymm1, ymm0, ymmword [rbx]
shr rax, 5
vmovdqu8 ymmword [rsp + 0x60], ymm1
cmp rax, 2
je 0x41ebe0
cmp rsi, 0x20
je 0x41ebba
mov eax, 0x20
mov rcx, rsi
sub rbp, rax
sub rcx, rax
cmp rbp, 0xe
jbe 0x41ea9a
vmovdqu8 xmm4, xmmword [rbx + rax]
lea rdx, [r12 + rax]
vpxor xmm0, xmm4, xmmword [rdx]
vmovdqu8 xmmword [rdx], xmm0
mov rdx, rcx
and rdx, 0xfffffffffffffff0
add rax, rdx
cmp rcx, rdx
je 0x41ebba
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
lea rdx, [rax + 1]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 1]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 2]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 2]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 3]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 3]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 4]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 4]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 5]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 5]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 6]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 6]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 7]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 7]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 8]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 8]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 9]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 9]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xa]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 0xa]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xb]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 0xb]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xc]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 0xc]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xd]
cmp rdx, rsi
jae 0x41ebba
movzx ecx, byte [rbx + rax + 0xd]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xe]
cmp rdx, rsi
jae 0x41ebba
movzx eax, byte [rbx + rax + 0xe]
xor byte [rsp + rdx + 0x60], al
mov r8d, 0x200
mov rdx, r12
mov rcx, r9
vzeroupper
call fcn.0041ceb0
nop
add rsp, 0xe0
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
ret
vpxor ymm0, ymm0, ymmword [rbx + 0x20]
vmovdqu8 ymmword [rsp + 0x80], ymm0
jmp 0x41ebba
vpxor ymm0, ymm0, ymmword [rbx + 0x20]
vmovdqu8 ymmword [rsp + 0x80], ymm0
jmp 0x41e980
vmovdqu ymm0, ymmword [0x0073db60]
shl rsi, 3
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
vmovdqu ymmword [rsp + 0x60], ymm0
cmp rsi, 0x1ff
jbe 0x41ef03
lea rbp, [rsi - 0x200]
shr rbp, 9
inc rbp
mov dword [rsp + 0x90], 0x200
shl rbp, 6
add rbp, rdx
lea r12, [rsp + 0x60]
nop dword [rax]
mov rdx, rbx
mov rcx, r12
add rbx, 0x40
call fcn.0041c450
cmp rbp, rbx
je 0x41ecb0
add dword [rsp + 0x90], 0x200
jne 0x41ec80
inc dword [rsp + 0x94]
jmp 0x41ec80
and esi, 0x1ff
test rsi, rsi
jne 0x41ee18
mov dword [rsp + 0x98], 0
lea rbx, [rsp + 0x40]
mov rdx, rbx
mov r9d, 1
mov r8d, 0x81
mov rcx, r12
call fcn.0041d120
movabs rax, 0x3636363636363636
vmovdqu ymm1, ymmword [0x0073db80]
mov qword [rdi + 0x20], 0
mov qword [rdi + 0x28], 0
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x38], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x90], rax
movabs rdx, 0x3636363636363636
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x98], rdx
vmovdqu ymmword [rdi], ymm1
mov esi, 0x1c
mov edx, 0x1b
mov ebp, 0x1b
xor eax, eax
jmp 0x41e829
mov r8d, 0x200
mov rdx, r12
vmovdqu ymmword [rsp + 0x20], ymm1
vzeroupper
call fcn.0041ceb0
vmovdqu ymm1, ymmword [rsp + 0x20]
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
mov qword [rdi + 0xa0], 0
mov qword [rdi + 0xa8], 0
mov qword [rdi + 0xb0], 0
mov qword [rdi + 0xb8], 0
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x98], rdx
lea r9, [rdi + 0x80]
vmovdqu ymmword [rdi + 0x80], ymm1
jmp 0x41ebba
mov rax, rsi
shr rax, 3
lea rcx, [rsp + 0xa0]
cmp eax, 0x20
jae 0x41ee73
test al, 0x10
jne 0x41eedf
test al, 8
jne 0x41ef27
test al, 4
jne 0x41ef13
test eax, eax
je 0x41ee60
movzx edx, byte [rbp]
mov byte [rcx], dl
test al, 2
je 0x41ee60
mov eax, eax
movzx edx, word [rbp + rax - 2]
mov word [rcx + rax - 2], dx
nop
mov dword [rsp + 0x98], esi
jmp 0x41ecca
xor eax, eax
jmp 0x41ea63
mov edx, eax
lea r8, [rcx + rdx]
add rdx, rbp
mov r9, qword [rdx - 0x20]
mov qword [r8 - 0x20], r9
mov r9, qword [rdx - 0x18]
mov qword [r8 - 0x18], r9
mov r9, qword [rdx - 0x10]
mov qword [r8 - 0x10], r9
mov rdx, qword [rdx - 8]
mov qword [r8 - 8], rdx
lea edx, [rax - 1]
cmp edx, 0x20
jb 0x41ee60
and edx, 0xffffffe0
xor r8d, r8d
mov eax, r8d
mov rbx, qword [rbp + rax]
mov r11, qword [rbp + rax + 8]
mov r10, qword [rbp + rax + 0x10]
mov r9, qword [rbp + rax + 0x18]
add r8d, 0x20
mov qword [rcx + rax], rbx
mov qword [rcx + rax + 8], r11
mov qword [rcx + rax + 0x10], r10
mov qword [rcx + rax + 0x18], r9
cmp r8d, edx
jb 0x41eeaa
jmp 0x41ee60
vmovdqu8 xmm5, xmmword [rbp]
mov eax, eax
vmovdqu8 xmmword [rcx], xmm5
vmovdqu8 xmm5, xmmword [rbp + rax - 0x10]
vmovdqu8 xmmword [rcx + rax - 0x10], xmm5
jmp 0x41ee60
mov rbp, rdx
lea r12, [rsp + 0x60]
vzeroupper
jmp 0x41ecb6
mov edx, dword [rbp]
mov eax, eax
mov dword [rcx], edx
mov edx, dword [rbp + rax - 4]
mov dword [rcx + rax - 4], edx
jmp 0x41ee60
mov rdx, qword [rbp]
mov eax, eax
mov qword [rcx], rdx
mov rdx, qword [rbp + rax - 8]
mov qword [rcx + rax - 8], rdx
jmp 0x41ee60