Function at 0x41df30
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 0x41e408
vmovdqu ymm4, ymmword [0x0073db60]
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 [rsp + 0x20], ymm4
vmovdqu ymmword [rcx], ymm4
lea r12, [rsp + 0x60]
test r8, r8
je 0x41e570
lea rbp, [r8 - 1]
mov rdx, rbp
cmp rbp, 0x1e
jbe 0x41e568
vmovdqu8 ymm0, ymmword [str.66666666666666666666666666666666_r]
mov rax, rsi
vpxor ymm1, ymm0, ymmword [rbx]
shr rax, 5
vmovdqu8 ymmword [rsp + 0x60], ymm1
cmp rax, 2
je 0x41e3f0
cmp rsi, 0x20
je 0x41e180
mov eax, 0x20
mov rcx, rsi
sub rdx, rax
sub rcx, rax
cmp rdx, 0xe
jbe 0x41e056
vmovdqu8 xmm2, xmmword [rbx + rax]
lea rdx, [r12 + rax]
vpxor xmm0, xmm2, xmmword [rdx]
vmovdqu8 xmmword [rdx], xmm0
mov rdx, rcx
and rdx, 0xfffffffffffffff0
add rax, rdx
cmp rcx, rdx
je 0x41e180
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
lea rdx, [rax + 1]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 1]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 2]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 2]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 3]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 3]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 4]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 4]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 5]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 5]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 6]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 6]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 7]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 7]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 8]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 8]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 9]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 9]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xa]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 0xa]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xb]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 0xb]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xc]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 0xc]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xd]
cmp rdx, rsi
jae 0x41e180
movzx ecx, byte [rbx + rax + 0xd]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xe]
cmp rdx, rsi
jae 0x41e180
movzx eax, byte [rbx + rax + 0xe]
xor byte [rsp + rdx + 0x60], al
nop word cs:[rax + rax]
mov r8d, 0x200
mov rdx, r12
mov rcx, rdi
vzeroupper
call fcn.0041ceb0
vmovdqu ymm5, 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], ymm5
cmp rbp, 0x1e
jbe 0x41e664
vmovdqu8 ymm0, ymmword [0x0073dbc0]
mov rax, rsi
vpxor ymm1, ymm0, ymmword [rbx]
shr rax, 5
vmovdqu8 ymmword [rsp + 0x60], ymm1
cmp rax, 2
je 0x41e3e0
cmp rsi, 0x20
je 0x41e3b4
mov eax, 0x20
mov rcx, rsi
sub rbp, rax
sub rcx, rax
cmp rbp, 0xe
jbe 0x41e294
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 0x41e3b4
movzx edx, byte [rbx + rax]
xor byte [rsp + rax + 0x60], dl
lea rdx, [rax + 1]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 1]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 2]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 2]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 3]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 3]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 4]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 4]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 5]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 5]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 6]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 6]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 7]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 7]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 8]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 8]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 9]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 9]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xa]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 0xa]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xb]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 0xb]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xc]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 0xc]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xd]
cmp rdx, rsi
jae 0x41e3b4
movzx ecx, byte [rbx + rax + 0xd]
xor byte [rsp + rdx + 0x60], cl
lea rdx, [rax + 0xe]
cmp rdx, rsi
jae 0x41e3b4
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 0x41e3b4
vpxor ymm0, ymm0, ymmword [rbx + 0x20]
vmovdqu8 ymmword [rsp + 0x80], ymm0
jmp 0x41e180
vmovdqu ymm5, ymmword [0x0073db60]
lea rbp, [r8*8]
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 0
mov qword [rsp + 0x98], 0
vmovdqu ymmword [rsp + 0x20], ymm5
vmovdqu ymmword [rsp + 0x60], ymm5
cmp rbp, 0x1ff
jbe 0x41e6f9
lea rsi, [rbp - 0x200]
shr rsi, 9
inc rsi
mov dword [rsp + 0x90], 0x200
shl rsi, 6
add rsi, rdx
lea r12, [rsp + 0x60]
nop word cs:[rax + rax]
mov rdx, rbx
mov rcx, r12
add rbx, 0x40
call fcn.0041c450
cmp rsi, rbx
je 0x41e4c0
add dword [rsp + 0x90], 0x200
jne 0x41e490
inc dword [rsp + 0x94]
jmp 0x41e490
and ebp, 0x1ff
test rbp, rbp
jne 0x41e610
mov dword [rsp + 0x98], 0
lea rbx, [rsp + 0x40]
mov rdx, rbx
mov r9d, 1
mov r8d, 0x81
mov rcx, r12
call fcn.0041d120
vmovdqu ymm2, ymmword [rsp + 0x20]
movabs rdx, 0x3636363636363636
movabs rax, 0x3636363636363636
mov qword [rsp + 0x88], rdx
mov qword [rsp + 0x98], rdx
mov qword [rdi + 0x20], 0
mov qword [rdi + 0x28], 0
mov qword [rdi + 0x30], 0
mov qword [rdi + 0x38], 0
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x90], rax
vmovdqu ymmword [rdi], ymm2
mov esi, 0x20
mov edx, 0x1f
mov ebp, 0x1f
jmp 0x41dfe9
xor eax, eax
jmp 0x41e01f
mov r8d, 0x200
mov rdx, r12
vzeroupper
call fcn.0041ceb0
vmovdqu ymm3, 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], ymm3
jmp 0x41e3b4
mov rax, rbp
shr rax, 3
lea rcx, [rsp + 0xa0]
cmp eax, 0x20
jae 0x41e66b
test al, 0x10
jne 0x41e6d6
test al, 8
jne 0x41e71c
test al, 4
jne 0x41e709
test eax, eax
je 0x41e658
movzx edx, byte [rsi]
mov byte [rcx], dl
test al, 2
je 0x41e658
mov eax, eax
movzx edx, word [rsi + rax - 2]
mov word [rcx + rax - 2], dx
nop dword [rax]
mov dword [rsp + 0x98], ebp
jmp 0x41e4da
xor eax, eax
jmp 0x41e25d
mov edx, eax
lea r8, [rcx + rdx]
add rdx, rsi
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 0x41e658
and edx, 0xffffffe0
xor r8d, r8d
mov eax, r8d
mov rbx, qword [rsi + rax]
mov r11, qword [rsi + rax + 8]
mov r10, qword [rsi + rax + 0x10]
mov r9, qword [rsi + 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 0x41e6a2
jmp 0x41e658
vmovdqu8 xmm1, xmmword [rsi]
mov eax, eax
vmovdqu8 xmmword [rcx], xmm1
vmovdqu8 xmm1, xmmword [rsi + rax - 0x10]
vmovdqu8 xmmword [rcx + rax - 0x10], xmm1
jmp 0x41e658
mov rsi, rdx
lea r12, [rsp + 0x60]
vzeroupper
jmp 0x41e4c6
mov edx, dword [rsi]
mov eax, eax
mov dword [rcx], edx
mov edx, dword [rsi + rax - 4]
mov dword [rcx + rax - 4], edx
jmp 0x41e658
mov rdx, qword [rsi]
mov eax, eax
mov qword [rcx], rdx
mov rdx, qword [rsi + rax - 8]
mov qword [rcx + rax - 8], rdx
jmp 0x41e658