Function at 0x41d180
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
vmovdqu xmm7, xmmword [0x006be990]
mov r12, rcx
mov rbx, rdx
mov rsi, r8
cmp r8, 0x40
ja 0x41d620
vmovdqu xmm6, xmmword [0x006be9a0]
movabs rax, 0x3636363636363636
movabs rdx, 0x3636363636363636
vpxor xmm8, xmm8, xmm8
vmovdqu xmmword [rcx], xmm7
vmovdqu xmmword [rcx + 0x20], xmm8
lea r13, [rsp + 0x40]
mov qword [rcx + 0x30], 0
mov qword [rcx + 0x38], 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
vmovdqu xmmword [rcx + 0x10], xmm6
test r8, r8
je 0x41d770
lea rbp, [r8 - 1]
mov rdx, rbp
cmp rbp, 0xe
jbe 0x41d763
vmovdqu xmm0, xmmword [0x006be9d0]
mov rax, rsi
vpxor xmm1, xmm0, xmmword [rbx]
shr rax, 4
vmovdqu xmmword [rsp + 0x40], xmm1
cmp rax, 1
je 0x41d3e0
vpxor xmm1, xmm0, xmmword [rbx + 0x10]
vmovdqu xmmword [rsp + 0x50], xmm1
cmp rax, 2
je 0x41d3e0
vpxor xmm1, xmm0, xmmword [rbx + 0x20]
vmovdqu xmmword [rsp + 0x60], xmm1
cmp rax, 4
jne 0x41d3e0
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 0x41d84f
vmovdqu xmm0, xmmword [0x006be9e0]
mov rax, rsi
vpxor xmm1, xmm0, xmmword [rbx]
shr rax, 4
vmovdqu xmmword [rsp + 0x40], xmm1
cmp rax, 1
je 0x41d500
vpxor xmm1, xmm0, xmmword [rbx + 0x10]
vmovdqu xmmword [rsp + 0x50], xmm1
cmp rax, 2
je 0x41d500
vpxor xmm1, xmm0, xmmword [rbx + 0x20]
vmovdqu xmmword [rsp + 0x60], xmm1
cmp rax, 4
jne 0x41d500
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 0x41d2a3
mov rcx, rsi
sub rdx, rax
sub rcx, rax
cmp rdx, 6
jbe 0x41d429
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 0x41d2a3
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 0x41d2a3
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 0x41d2a3
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 0x41d2a3
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 0x41d2a3
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 0x41d2a3
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 0x41d2a3
movzx edx, byte [rbx + rax]
movzx ecx, byte [rsp + rax + 0x40]
xor edx, ecx
mov byte [rsp + rax + 0x40], dl
jmp 0x41d2a3
mov rax, rsi
and rax, 0xfffffffffffffff0
test sil, 0xf
je 0x41d394
mov rcx, rsi
sub rbp, rax
sub rcx, rax
cmp rbp, 6
jbe 0x41d549
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 0x41d394
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 0x41d394
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 0x41d394
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 0x41d394
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 0x41d394
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 0x41d394
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 0x41d394
movzx edx, byte [rbx + rax]
movzx ecx, byte [rsp + rax + 0x40]
xor edx, ecx
mov byte [rsp + rax + 0x40], dl
jmp 0x41d394
vmovdqu xmm6, xmmword [0x006be9a0]
vpxor xmm0, xmm0, xmm0
lea rbp, [r8*8]
vmovdqu xmmword [rsp + 0x40], xmm7
vmovdqu xmmword [rsp + 0x60], xmm0
mov qword [rsp + 0x70], 0
mov rsi, rdx
lea r13, [rsp + 0x40]
mov qword [rsp + 0x78], 0
vmovdqu xmmword [rsp + 0x50], xmm6
cmp rbp, 0x1ff
jbe 0x41d6c6
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 dword [rax + rax]
mov rdx, rbx
mov rcx, r13
add rbx, 0x40
call fcn.0041b780
cmp rsi, rbx
je 0x41d6c0
add dword [rsp + 0x70], 0x200
jne 0x41d690
inc dword [rsp + 0x74]
jmp 0x41d690
and ebp, 0x1ff
test rbp, rbp
jne 0x41d800
mov dword [rsp + 0x78], 0
lea rbx, [rsp + 0x20]
mov r9d, 1
mov r8d, 0x81
mov rcx, r13
mov rdx, rbx
mov esi, 0x20
mov ebp, 0x1f
call fcn.0041c400
movabs rdx, 0x3636363636363636
movabs rax, 0x3636363636363636
vpxor xmm0, xmm0, xmm0
mov qword [rsp + 0x58], rdx
mov qword [rsp + 0x68], rdx
mov qword [rsp + 0x78], rdx
vmovdqu xmmword [r12], xmm7
mov edx, 0x1f
vmovdqu xmmword [r12 + 0x10], xmm6
vmovdqu xmmword [r12 + 0x20], xmm0
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
jmp 0x41d24b
xor eax, eax
jmp 0x41d3f1
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 0x41d394
mov rax, rbp
lea rdi, [rsp + 0x80]
shr rax, 3
cmp eax, 8
jb 0x41d81c
mov ecx, eax
shr ecx, 3
rep movsq qword [rdi], qword [rsi]
xor edx, edx
test al, 4
je 0x41d82b
mov edx, dword [rsi]
mov dword [rdi], edx
mov edx, 4
test al, 2
je 0x41d83b
movzx ecx, word [rsi + rdx]
mov word [rdi + rdx], cx
add rdx, 2
test al, 1
je 0x41d846
movzx eax, byte [rsi + rdx]
mov byte [rdi + rdx], al
mov dword [rsp + 0x78], ebp
jmp 0x41d6d7
xor eax, eax
jmp 0x41d511