Function at 0x41d860
Capabilities:
Hash data using sha256

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xf8
vmovups xmmword [rsp + 0xc0], xmm6
vmovups xmmword [rsp + 0xd0], xmm7
vmovups xmmword [rsp + 0xe0], xmm8
mov r12, rcx
mov rbx, rdx
mov rsi, r8
cmp r8, 0x40
ja 0x41dd00
vmovdqu xmm7, xmmword [0x006be9b0]
vmovdqu xmm6, xmmword [0x006be9c0]
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
vpxor xmm8, xmm8, xmm8
mov qword [rcx + 0x30], 0
mov qword [rcx + 0x38], 0
lea r13, [rsp + 0x40]
vmovdqu xmmword [rcx + 0x20], xmm8
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
vmovdqu xmmword [rcx], xmm7
vmovdqu xmmword [rcx + 0x10], xmm6
test r8, r8
je 0x41de70
lea rbp, [r8 - 1]
mov rdx, rbp
cmp rbp, 0xe
jbe 0x41de63
vmovdqu xmm0, xmmword [0x006be9d0]
mov rax, rsi
vpxor xmm1, xmm0, xmmword [rbx]
shr rax, 4
vmovdqu xmmword [rsp + 0x40], xmm1
cmp rax, 1
je 0x41dac0
vpxor xmm1, xmm0, xmmword [rbx + 0x10]
vmovdqu xmmword [rsp + 0x50], xmm1
cmp rax, 2
je 0x41dac0
vpxor xmm1, xmm0, xmmword [rbx + 0x20]
vmovdqu xmmword [rsp + 0x60], xmm1
cmp rax, 4
jne 0x41dac0
vpxor xmm0, xmm0, xmmword [rbx + 0x30]
vmovdqu xmmword [rsp + 0x70], xmm0
mov rdx, r13
mov r8d, 0x200
mov rcx, r12
call fcn.0041c220
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
vpxor xmm0, xmm0, xmm0
lea r9, [r12 + 0x80]
vmovdqu xmmword [r12 + 0x80], xmm7
vmovdqu xmmword [r12 + 0x90], xmm6
vmovdqu xmmword [r12 + 0xa0], xmm0
mov qword [r12 + 0xb0], 0
mov qword [r12 + 0xb8], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
cmp rbp, 0xe
jbe 0x41df4f
vmovdqu xmm0, xmmword [0x006be9e0]
mov rax, rsi
vpxor xmm1, xmm0, xmmword [rbx]
shr rax, 4
vmovdqu xmmword [rsp + 0x40], xmm1
cmp rax, 1
je 0x41dbe0
vpxor xmm1, xmm0, xmmword [rbx + 0x10]
vmovdqu xmmword [rsp + 0x50], xmm1
cmp rax, 2
je 0x41dbe0
vpxor xmm1, xmm0, xmmword [rbx + 0x20]
vmovdqu xmmword [rsp + 0x60], xmm1
cmp rax, 4
jne 0x41dbe0
vpxor xmm0, xmm0, xmmword [rbx + 0x30]
vmovdqu xmmword [rsp + 0x70], xmm0
mov r8d, 0x200
mov rdx, r13
mov rcx, r9
call fcn.0041c220
nop
vmovups xmm6, xmmword [rsp + 0xc0]
vmovups xmm7, xmmword [rsp + 0xd0]
vmovups xmm8, xmmword [rsp + 0xe0]
add rsp, 0xf8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
mov rax, rsi
and rax, 0xfffffffffffffff0
test sil, 0xf
je 0x41d983
mov rcx, rsi
sub rdx, rax
sub rcx, rax
cmp rdx, 6
jbe 0x41db09
lea rdx, [r13 + rax]
vmovq xmm1, qword [rbx + rax]
vmovq xmm0, qword [rdx]
vpxor xmm0, xmm0, xmm1
vmovq qword [rdx], xmm0
mov rdx, rcx
and rdx, 0xfffffffffffffff8
add rax, rdx
cmp rcx, rdx
je 0x41d983
movzx edx, byte [rbx + rax]
movzx ecx, byte [rsp + rax + 0x40]
xor edx, ecx
mov byte [rsp + rax + 0x40], dl
lea rdx, [rax + 1]
cmp rsi, rdx
jbe 0x41d983
movzx ecx, byte [rbx + rax + 1]
movzx r8d, byte [rsp + rax + 0x41]
lea rdx, [rax + 2]
xor ecx, r8d
mov byte [rsp + rax + 0x41], cl
cmp rsi, rdx
jbe 0x41d983
movzx ecx, byte [rbx + rax + 2]
lea rdx, [rax + 3]
movzx r8d, byte [rsp + rax + 0x42]
xor ecx, r8d
mov byte [rsp + rax + 0x42], cl
cmp rsi, rdx
jbe 0x41d983
movzx ecx, byte [rbx + rax + 3]
lea rdx, [rax + 4]
movzx r8d, byte [rsp + rax + 0x43]
xor ecx, r8d
mov byte [rsp + rax + 0x43], cl
cmp rsi, rdx
jbe 0x41d983
movzx ecx, byte [rbx + rax + 4]
lea rdx, [rax + 5]
movzx r8d, byte [rsp + rax + 0x44]
xor ecx, r8d
mov byte [rsp + rax + 0x44], cl
cmp rsi, rdx
jbe 0x41d983
movzx ecx, byte [rbx + rax + 5]
movzx r8d, byte [rsp + rax + 0x45]
xor ecx, r8d
mov byte [rsp + rax + 0x45], cl
add rax, 6
cmp rsi, rax
jbe 0x41d983
movzx edx, byte [rbx + rax]
movzx ecx, byte [rsp + rax + 0x40]
xor edx, ecx
mov byte [rsp + rax + 0x40], dl
jmp 0x41d983
mov rax, rsi
and rax, 0xfffffffffffffff0
test sil, 0xf
je 0x41da74
mov rcx, rsi
sub rbp, rax
sub rcx, rax
cmp rbp, 6
jbe 0x41dc29
lea rdx, [r13 + rax]
vmovq xmm1, qword [rbx + rax]
vmovq xmm0, qword [rdx]
vpxor xmm0, xmm0, xmm1
vmovq qword [rdx], xmm0
mov rdx, rcx
and rdx, 0xfffffffffffffff8
add rax, rdx
cmp rcx, rdx
je 0x41da74
movzx edx, byte [rbx + rax]
movzx ecx, byte [rsp + rax + 0x40]
xor edx, ecx
mov byte [rsp + rax + 0x40], dl
lea rdx, [rax + 1]
cmp rsi, rdx
jbe 0x41da74
movzx ecx, byte [rbx + rax + 1]
movzx r8d, byte [rsp + rax + 0x41]
lea rdx, [rax + 2]
xor ecx, r8d
mov byte [rsp + rax + 0x41], cl
cmp rdx, rsi
jae 0x41da74
movzx ecx, byte [rbx + rax + 2]
lea rdx, [rax + 3]
movzx r8d, byte [rsp + rax + 0x42]
xor ecx, r8d
mov byte [rsp + rax + 0x42], cl
cmp rdx, rsi
jae 0x41da74
movzx ecx, byte [rbx + rax + 3]
lea rdx, [rax + 4]
movzx r8d, byte [rsp + rax + 0x43]
xor ecx, r8d
mov byte [rsp + rax + 0x43], cl
cmp rsi, rdx
jbe 0x41da74
movzx ecx, byte [rbx + rax + 4]
lea rdx, [rax + 5]
movzx r8d, byte [rsp + rax + 0x44]
xor ecx, r8d
mov byte [rsp + rax + 0x44], cl
cmp rsi, rdx
jbe 0x41da74
movzx ecx, byte [rbx + rax + 5]
movzx r8d, byte [rsp + rax + 0x45]
xor ecx, r8d
mov byte [rsp + rax + 0x45], cl
add rax, 6
cmp rsi, rax
jbe 0x41da74
movzx edx, byte [rbx + rax]
movzx ecx, byte [rsp + rax + 0x40]
xor edx, ecx
mov byte [rsp + rax + 0x40], dl
jmp 0x41da74
vmovdqu xmm0, xmmword [0x006be990]
lea rbp, [r8*8]
mov qword [rsp + 0x70], 0
mov qword [rsp + 0x78], 0
mov rsi, rdx
lea r13, [rsp + 0x40]
vmovdqu xmmword [rsp + 0x40], xmm0
vmovdqu xmm0, xmmword [0x006be9a0]
vmovdqu xmmword [rsp + 0x50], xmm0
vpxor xmm0, xmm0, xmm0
vmovdqu xmmword [rsp + 0x60], xmm0
cmp rbp, 0x1ff
jbe 0x41ddb6
lea rsi, [rbp - 0x200]
mov dword [rsp + 0x70], 0x200
lea r13, [rsp + 0x40]
shr rsi, 9
inc rsi
shl rsi, 6
add rsi, rdx
nop word cs:[rax + rax]
nop
mov rdx, rbx
mov rcx, r13
add rbx, 0x40
call fcn.0041b780
cmp rsi, rbx
je 0x41ddb0
add dword [rsp + 0x70], 0x200
jne 0x41dd80
inc dword [rsp + 0x74]
jmp 0x41dd80
and ebp, 0x1ff
test rbp, rbp
jne 0x41df00
mov dword [rsp + 0x78], 0
lea rbx, [rsp + 0x20]
mov r9d, 1
mov r8d, 0x81
mov rcx, r13
mov rdx, rbx
mov esi, 0x1c
mov ebp, 0x1b
call fcn.0041c400
vmovdqu xmm7, xmmword [0x006be9b0]
movabs rdx, 0x3636363636363636
movabs rax, 0x3636363636363636
vmovdqu xmm6, xmmword [0x006be9c0]
vpxor xmm0, xmm0, xmm0
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x78], rdx
vmovdqu xmmword [r12 + 0x20], xmm0
mov edx, 0x1b
mov qword [r12 + 0x30], 0
mov qword [r12 + 0x38], 0
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x70], rax
vmovdqu xmmword [r12], xmm7
vmovdqu xmmword [r12 + 0x10], xmm6
jmp 0x41d92b
xor eax, eax
jmp 0x41dad1
mov rdx, r13
mov r8d, 0x200
call fcn.0041c220
movabs rax, 0x5c5c5c5c5c5c5c5c
movabs rdx, 0x5c5c5c5c5c5c5c5c
lea r9, [r12 + 0x80]
vmovdqu xmmword [r12 + 0x80], xmm7
vmovdqu xmmword [r12 + 0x90], xmm6
vmovdqu xmmword [r12 + 0xa0], xmm8
mov qword [r12 + 0xb0], 0
mov qword [r12 + 0xb8], 0
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rdx
mov qword [rsp + 0x50], rax
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], rdx
jmp 0x41da74
mov rax, rbp
lea rdi, [rsp + 0x80]
shr rax, 3
cmp eax, 8
jb 0x41df1c
mov ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
xor edx, edx
test al, 4
je 0x41df2b
mov edx, dword [rsi]
mov dword [rdi], edx
mov edx, 4
test al, 2
je 0x41df3b
movzx ecx, word [rsi + rdx]
mov word [rdi + rdx], cx
add rdx, 2
test al, 1
je 0x41df46
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
mov dword [rsp + 0x78], ebp
jmp 0x41ddc7
xor eax, eax
jmp 0x41dbf1