Function at 0x41fb90
Capabilities:
Hash data using sha256

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x1e0
mov rdi, r8
mov rbx, rdx
mov rsi, rcx
lea r14, [rsp + 0x48]
xorps xmm0, xmm0
movups xmmword [rsp + 0x48], xmm0
movups xmmword [rsp + 0x58], xmm0
movups xmmword [rsp + 0x68], xmm0
movups xmmword [rsp + 0x78], xmm0
mov byte [rsp + 0x88], 0
movups xmm0, xmmword [0x00504db8]
movaps xmmword [rsp + 0x20], xmm0
movups xmm0, xmmword [0x00504dc8]
movaps xmmword [rsp + 0x30], xmm0
mov qword [rsp + 0x40], 0
cmp r8, 0x3f
jbe 0x41fc41
mov r8, rdi
shr r8, 6
mov eax, r8d
and eax, 0x40
mov r15, r8
or r15, 0x40
imul r15, rax
xor rax, 0x40
mov rcx, r8
and rcx, 0xffffffffffffffbf
imul rcx, rax
add r15, rcx
sub rdi, r15
mov qword [rsp + 0x40], r8
lea rcx, [rsp + 0x20]
mov rdx, rbx
call fcn.004b1be3
cmp rdi, 0x41
jae 0x420070
add rbx, r15
mov rcx, r14
mov rdx, rbx
mov r8, rdi
call sub.msvcrt.dll_memcpy
mov byte [rsp + 0x88], dil
mov rax, qword [rsp + 0x80]
mov qword [rsp + 0xf0], rax
movzx eax, byte [rsp + 0x88]
mov byte [rsp + 0xf8], al
mov eax, dword [rsp + 0x89]
mov dword [rsp + 0xf9], eax
movzx eax, word [rsp + 0x8d]
mov word [rsp + 0xfd], ax
movzx eax, byte [rsp + 0x8f]
mov byte [rsp + 0xff], al
movdqa xmm0, xmmword [rsp + 0x20]
movaps xmm1, xmmword [rsp + 0x30]
movaps xmm2, xmmword [rsp + 0x40]
movaps xmm3, xmmword [rsp + 0x50]
movaps xmmword [rsp + 0xb0], xmm2
movaps xmm2, xmmword [rsp + 0x70]
movaps xmmword [rsp + 0xe0], xmm2
movaps xmm2, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xd0], xmm2
movaps xmmword [rsp + 0xc0], xmm3
movaps xmmword [rsp + 0xa0], xmm1
movdqa xmmword [rsp + 0x90], xmm0
lea rdi, [rsp + 0xb8]
movzx ebx, byte [rsp + 0xf8]
mov r14, qword [rsp + 0xb0]
mov eax, r14d
and eax, 0x40
mov rcx, r14
or r14, 0x40
imul r14, rax
xor rax, 0x40
and rcx, 0xffffffffffffffbf
imul rcx, rax
add r14, rcx
or r14, rbx
mov eax, ebx
and eax, 8
mov rcx, r14
or r14, 8
imul r14, rax
xor rax, 8
and rcx, 0xfffffffffffffff7
imul rcx, rax
add r14, rcx
mov byte [rsp + rbx + 0xb8], pe_nt_image_headers64
mov r8, rbx
xor r8, 0x3f
je 0x41fd6c
lea rcx, [rbx + rdi]
inc rcx
xor edx, edx
call sub.msvcrt.dll_memset
bswap r14
not ebx
test bl, 0x38
jne 0x41fde2
lea rbx, [rsp + 0x90]
mov r8d, 1
mov rcx, rbx
mov rdx, rdi
call fcn.004b1be3
pxor xmm0, xmm0
movdqa xmmword [rsp + 0x130], xmm0
movdqa xmmword [rsp + 0x150], xmm0
movdqa xmmword [rsp + 0x160], xmm0
movdqa xmmword [rsp + 0x170], xmm0
mov rax, qword [rsp + 0x130]
mov qword [rsp + 0x180], rax
mov qword [rsp + 0x188], r14
lea rdx, [rsp + 0x150]
mov r8d, 1
mov rcx, rbx
jmp 0x41fdfb
mov qword [rsp + 0xf0], r14
lea rcx, [rsp + 0x90]
mov r8d, 1
mov rdx, rdi
call fcn.004b1be3
pxor xmm0, xmm0
movdqa xmm1, xmmword [rsp + 0x90]
movdqa xmm2, xmmword [rsp + 0xa0]
movdqa xmm3, xmm1
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm1, xmm0
pshuflw xmm1, xmm1, 0x1b
pshufhw xmm1, xmm1, 0x1b
packuswb xmm1, xmm3
movdqa xmm3, xmm2
punpckhbw xmm3, xmm0
pshuflw xmm3, xmm3, 0x1b
pshufhw xmm3, xmm3, 0x1b
punpcklbw xmm2, xmm0
pshuflw xmm0, xmm2, 0x1b
pshufhw xmm0, xmm0, 0x1b
packuswb xmm0, xmm3
movdqa xmmword [rsp + 0x90], xmm1
movdqa xmmword [rsp + 0xa0], xmm0
mov qword [rsi], 0
mov qword [rsi + 8], 1
mov qword [rsi + 0x10], 0
xor r15d, r15d
mov r8d, 0x40
mov rcx, rsi
xor edx, edx
call fcn.00405f50
mov ebx, 0x110000
lea r12, str.0123456789abcdef
lea rdi, [rsp + 0x100]
cmp ebx, 0x110000
je 0x41ff00
jmp 0x41fed8
mov rax, qword [rsi + 8]
mov byte [rax + rdx], bl
inc rdx
mov qword [rsi + 0x10], rdx
mov ebx, ebp
cmp ebx, 0x110000
je 0x41ff00
mov ebp, 0x110000
cmp ebx, 0x80
jae 0x41ff32
mov rdx, qword [rsi + 0x10]
cmp rdx, qword [rsi]
jne 0x41fec0
mov rcx, rsi
call fcn.00405b10
mov rdx, qword [rsi + 0x10]
jmp 0x41fec0
cmp r15, 0x20
je 0x42005e
movzx eax, byte [rsp + r15 + 0x90]
inc r15
mov rcx, rax
shr rcx, 4
movzx ebx, byte [rcx + r12]
and eax, 0xf
movzx ebp, byte [rax + r12]
cmp ebx, 0x80
jb 0x41fee5
mov dword [rsp + 0x100], 0
mov eax, ebx
cmp ebx, 0x800
jae 0x41ff70
shr eax, 6
or al, 0xc0
mov byte [rsp + 0x100], al
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x101], bl
mov ebx, 2
jmp 0x42000f
cmp ebx, 0x10000
jae 0x41ffc0
shr eax, 0xc
or al, 0xe0
mov byte [rsp + 0x100], al
mov eax, ebx
shr eax, 6
mov ecx, eax
not ecx
or ecx, 0x3f
add ecx, eax
inc cl
mov eax, ecx
and al, 0x7f
add cl, cl
sub cl, al
add cl, 0x80
mov byte [rsp + 0x101], cl
and bl, 0x3f
or bl, 0x80
mov byte [rsp + 0x102], bl
mov ebx, 3
jmp 0x42000f
shr eax, 0x12
or al, 0xf0
mov byte [rsp + 0x100], al
mov eax, ebx
shr eax, 0xc
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x101], al
mov eax, ebx
shr eax, 6
and al, 0x3f
or al, 0x80
mov byte [rsp + 0x102], al
mov eax, ebx
xor eax, 0xc0
or ebx, 0x3f
and ebx, eax
mov eax, ebx
and al, 0x7f
add bl, bl
sub bl, al
add bl, 0x80
mov byte [rsp + 0x103], bl
mov ebx, 4
mov rax, qword [rsi]
mov r14, qword [rsi + 0x10]
sub rax, r14
cmp rax, rbx
jb 0x42004a
mov rcx, qword [rsi + 8]
add rcx, r14
mov rdx, rdi
mov r8, rbx
call sub.msvcrt.dll_memcpy
add r14, rbx
mov qword [rsi + 0x10], r14
mov ebx, ebp
cmp ebx, 0x110000
jne 0x41fed8
jmp 0x41ff00
mov rcx, rsi
mov rdx, r14
mov r8, rbx
call fcn.00405f50
mov r14, qword [rsi + 0x10]
jmp 0x42001e
add rsp, 0x1e0
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
lea r8, [0x00504d80]
mov edx, 0x40
mov rcx, rdi
call fcn.00430740
ud2