Function at 0x41ad50
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x1d8
xor eax, eax
lea r12, [rsp + 0x60]
mov word [rsp + 0x30], ax
mov rbp, rcx
xor eax, eax
mov ecx, 0x2e
mov rdi, r12
mov r14, rdx
mov qword [rsp + 0x20], 0x1010014
rep stosq qword [rdi], rax
lea rsi, [rsp + 0x20]
xor edx, edx
movabs rdi, 0xbb67ae8584caa73b
movabs rax, 0x6a09e667f3bcc908
mov qword [rsp + 0x68], rdi
movabs rdi, 0x3c6ef372fe94f82b
mov qword [rsp + 0x70], rdi
movabs rdi, 0xa54ff53a5f1d36f1
mov qword [rsp + 0x78], rdi
movabs rdi, 0x510e527fade682d1
mov qword [rsp + 0x80], rdi
movabs rdi, 0x9b05688c2b3e6c1f
mov qword [rsp + 0x88], rdi
movabs rdi, 0x1f83d9abfb41bd6b
mov qword [rsp + 0x90], rdi
movabs rdi, 0x5be0cd19137e2179
mov qword [rsp + 0x28], 0
mov qword [rsp + 0x32], 0
mov qword [rsp + 0x60], rax
mov dword [rsi + 0x1a], 0
mov word [rsi + 0x1e], dx
mov qword [rsp + 0x98], rdi
mov qword [rsp + 0x40], 0
mov qword [rsi + 0x28], 0
mov qword [rsp + 0x50], 0
mov qword [rsi + 0x38], 0
jmp 0x41ae64
mov rax, qword [r12 + rcx*8]
xor rax, qword [rsi + rcx*8]
mov qword [r12 + rcx*8], rax
add rcx, 1
cmp rcx, 8
jne 0x41ae60
mov r13d, r8d
test r13, r13
je 0x41b1d2
xor ecx, ecx
mov r15d, 0x100
mov edi, 0x100
lea rbx, [r12 + 0x60]
cmp r13, 0x100
ja 0x41aebf
jmp 0x41b1e0
mov r15, rdi
sub r15, rcx
cmp r15, r13
jae 0x41b140
add rcx, rbx
mov rdx, r14
mov r8, r15
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0xa0]
mov rdx, rbx
mov rcx, r12
add qword [rsp + 0x1c0], r15
sub rax, 0xffffffffffffff80
cmp rax, 0x7f
mov qword [rsp + 0xa0], rax
setbe al
add r14, r15
movzx eax, al
add qword [rsp + 0xa8], rax
call fcn.00418b80
mov rdx, qword [r12 + 0xe0]
sub r13, r15
mov rax, qword [r12 + 0x158]
mov qword [rbx], rdx
mov rdx, qword [r12 + 0xe8]
mov qword [rbx + 8], rdx
mov rdx, qword [r12 + 0xf0]
mov qword [rbx + 0x10], rdx
mov rdx, qword [r12 + 0xf8]
mov qword [rbx + 0x18], rdx
mov rdx, qword [r12 + 0x100]
mov qword [rbx + 0x20], rdx
mov rdx, qword [r12 + 0x108]
mov qword [rbx + 0x28], rdx
mov rdx, qword [r12 + 0x110]
mov qword [rbx + 0x30], rdx
mov rdx, qword [r12 + 0x118]
mov qword [rbx + 0x38], rdx
mov rdx, qword [r12 + 0x120]
mov qword [rbx + 0x40], rdx
mov rdx, qword [r12 + 0x128]
mov qword [rbx + 0x48], rdx
mov rdx, qword [r12 + 0x130]
mov qword [rbx + 0x50], rdx
mov rdx, qword [r12 + 0x138]
mov qword [rbx + 0x58], rdx
mov rdx, qword [r12 + 0x140]
mov qword [rbx + 0x60], rdx
mov rdx, qword [r12 + 0x148]
mov qword [rbx + 0x68], rdx
mov rdx, qword [r12 + 0x150]
mov qword [rbx + 0x78], rax
mov qword [rbx + 0x70], rdx
mov rax, qword [rsp + 0x1c0]
lea rcx, [rax - 0x80]
mov qword [rsp + 0x1c0], rcx
jne 0x41aeb0
mov rdx, qword [rsp + 0xb0]
xor eax, eax
mov ecx, 8
mov rdi, rsi
rep stosq qword [rdi], rax
test rdx, rdx
jne 0x41b100
mov rax, qword [rsp + 0x1c0]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
cmp rax, 0x80
ja 0x41b160
add rdx, rax
mov qword [rsp + 0xa0], rdx
setb dl
movzx edx, dl
add rdx, rcx
cmp byte [rsp + 0x1c8], 0
mov qword [rsp + 0xa8], rdx
jne 0x41b120
lea rbx, [r12 + 0x60]
xor edx, edx
mov r8d, 0x100
mov qword [rsp + 0xb0], 0xffffffffffffffff
lea rcx, [rbx + rax]
sub r8, rax
mov rdi, rsi
call sub.msvcrt.dll_memset
mov rcx, r12
mov rdx, rbx
call fcn.00418b80
lea rcx, [rsi + 0x40]
nop dword [rax + rax]
mov rax, qword [r12]
add rdi, 8
add r12, 8
mov rdx, rax
mov byte [rdi - 8], al
shr rdx, 8
mov byte [rdi - 7], dl
mov rdx, rax
shr rdx, 0x10
mov byte [rdi - 6], dl
mov rdx, rax
shr rdx, 0x18
mov byte [rdi - 5], dl
mov rdx, rax
shr rdx, 0x20
mov byte [rdi - 4], dl
mov rdx, rax
shr rdx, 0x28
mov byte [rdi - 3], dl
mov rdx, rax
shr rax, 0x38
shr rdx, 0x30
mov byte [rdi - 1], al
mov byte [rdi - 2], dl
cmp rdi, rcx
jne 0x41b090
mov rax, qword [rsp + 0x20]
mov qword [rbp], rax
mov rax, qword [rsp + 0x28]
mov qword [rbp + 8], rax
mov eax, dword [rsp + 0x30]
mov dword [rbp + 0x10], eax
add rsp, 0x1d8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov qword [rsp + 0xb8], 0xffffffffffffffff
jmp 0x41b051
add rcx, rbx
mov r8, r13
mov rdx, r14
call sub.msvcrt.dll_memcpy
add qword [rsp + 0x1c0], r13
jmp 0x41afe5
lea rbx, [r12 + 0x60]
sub rdx, 0xffffffffffffff80
cmp rdx, 0x7f
mov qword [rsp + 0xa0], rdx
setbe dl
movzx edx, dl
add rdx, rcx
mov rcx, r12
mov qword [rsp + 0xa8], rdx
mov rdx, rbx
call fcn.00418b80
mov rax, qword [rsp + 0x1c0]
lea rdx, [r12 + 0xe0]
mov rcx, rbx
lea r8, [rax - 0x80]
mov qword [rsp + 0x1c0], r8
call sub.msvcrt.dll_memcpy
mov rax, qword [rsp + 0x1c0]
mov rdx, qword [rsp + 0xa0]
mov rcx, qword [rsp + 0xa8]
jmp 0x41b027
mov rdi, rsi
mov rax, r13
rep stosq qword [rdi], rax
jmp 0x41b003
mov rcx, rbx
jmp 0x41b143