Function at 0x527d60
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x228
mov qword [rsp + 0x120], r9
mov qword [rsp + 0xf8], r8
mov qword [rsp + 0x128], rdx
mov rax, qword [rsp + 0x298]
mov qword [rsp + 0x158], rax
mov r14, qword [rsp + 0x290]
movzx ebx, byte [rsp + 0x2a8]
movzx edi, byte [rsp + 0x2a0]
cmp cl, 2
jne 0x527deb
mov byte [rsp + 0x30], bl
mov byte [rsp + 0x28], dil
mov qword [rsp + 0x20], rax
mov rcx, qword [rsp + 0x128]
mov rdx, qword [rsp + 0xf8]
mov r8, qword [rsp + 0x120]
mov r9, r14
call fcn.005299b0
jmp 0x529966
mov rax, qword [rsp + 0x120]
mov rcx, qword [rax]
mov qword [rsp + 0x110], rcx
mov rcx, qword [rax + 8]
mov qword [rsp + 0x100], rcx
mov rcx, qword [rax + 0x10]
mov qword [rsp + 0x118], rcx
mov rcx, qword [rax + 0x18]
mov qword [rsp + 0x108], rcx
mov r8, qword [rax + 0x20]
mov r15, qword [rax + 0x28]
mov rcx, qword [rax + 0x30]
mov qword [rsp + 0xe8], rcx
mov rax, qword [rax + 0x38]
mov qword [rsp + 0xf0], rax
xor r9d, r9d
mov rax, qword [rsp + 0xf8]
mov rcx, rax
sub rcx, 1
cmovae r9, rcx
and r9, 0xffffffffffffff80
xorps xmm0, xmm0
movaps xmmword [rsp + 0x210], xmm0
movaps xmmword [rsp + 0x200], xmm0
movaps xmmword [rsp + 0x1f0], xmm0
movaps xmmword [rsp + 0x1e0], xmm0
movaps xmmword [rsp + 0x1d0], xmm0
movaps xmmword [rsp + 0x1c0], xmm0
movaps xmmword [rsp + 0x1b0], xmm0
movaps xmmword [rsp + 0x1a0], xmm0
cmp r9, rax
mov rsi, rax
mov qword [rsp + 0x150], r9
cmovb rsi, r9
sub rax, rsi
add rsi, qword [rsp + 0x128]
cmp rax, 0x7f
jbe 0x527ed1
mov eax, pe_nt_image_headers64
mov qword [rsp + 0x148], rax
jmp 0x527f02
lea r12, [rsp + 0x1a0]
mov rcx, r12
mov rdx, rsi
mov qword [rsp + 0xe0], r8
mov qword [rsp + 0x148], rax
mov r8, rax
call sub.msvcrt.dll_memcpy
mov r8, qword [rsp + 0xe0]
mov rsi, r12
xor bl, 1
not dil
and dil, bl
movzx eax, dil
neg rax
mov qword [rsp + 0x178], rax
movzx eax, bl
neg rax
mov qword [rsp + 0x170], rax
mov rax, qword [rsp + 0x150]
add rax, 0x80
mov qword [rsp + 0x160], rax
xor eax, eax
mov qword [rsp + 0x168], rsi
jmp 0x52989a
add r14, rcx
mov qword [rsp + 0x198], r14
mov rdi, qword [rsp + 0x158]
adc rdi, 0
mov qword [rsp + 0x158], rdi
mov r9, qword [r12]
mov qword [rsp + 0xc8], r9
mov rdx, qword [r12 + 8]
mov qword [rsp + 0xb0], rdx
mov rax, qword [rsp + 0x110]
lea rcx, [rax + r8]
add rcx, r9
mov qword [rsp + 0xe0], r8
movabs rax, 0x510e527fade682d1
xor r14, rax
xor r14, rcx
rol r14, 0x20
movabs rax, 0x6a09e667f3bcc908
add rax, r14
mov rbx, rax
xor rbx, qword [rsp + 0xe0]
rol rbx, 0x28
add rcx, rdx
add rcx, rbx
xor r14, rcx
rol r14, 0x30
mov qword [rsp + 0x58], r14
add rax, r14
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
mov rax, qword [r12 + 0x10]
mov qword [rsp + 0x60], rax
mov rdx, qword [rsp + 0x100]
mov rbp, r15
add r15, rdx
add r15, rax
mov qword [rsp + 0x188], r13
movabs rax, 0x9b05688c2b3e6c1f
xor rdi, rax
xor rdi, r15
rol rdi, 0x20
movabs rax, 0xbb67ae8584caa73b
lea rdx, [rdi + rax]
mov r11, rdx
xor r11, rbp
rol r11, 0x28
mov rax, qword [r12 + 0x18]
mov qword [rsp + 0x88], rax
add r15, rax
add r15, r11
xor rdi, r15
rol rdi, 0x30
mov qword [rsp + 0x140], rdi
add rdx, rdi
mov qword [rsp + 0x38], rdx
xor r11, rdx
rol r11, 1
mov r14, qword [r12 + 0x20]
mov qword [rsp + 0xc0], r14
mov rdx, qword [rsp + 0x118]
mov rsi, qword [rsp + 0xe8]
lea r9, [rdx + rsi]
add r9, r14
movabs rdx, 0x1f83d9abfb41bd6b
mov rdi, qword [rsp + 0x50]
xor rdi, rdx
xor rdi, r9
rol rdi, 0x20
movabs rdx, 0x3c6ef372fe94f82b
lea r10, [rdi + rdx]
mov r14, r10
xor r14, qword [rsp + 0xe8]
rol r14, 0x28
mov rax, qword [r12 + 0x28]
mov qword [rsp + 0x70], rax
add r9, rax
add r9, r14
xor rdi, r9
rol rdi, 0x30
add r10, rdi
xor r14, r10
rol r14, 1
mov rsi, qword [r12 + 0x30]
mov qword [rsp + 0x90], rsi
mov qword [rsp + 0x190], rbp
mov rdx, qword [rsp + 0x108]
mov rax, qword [rsp + 0xf0]
lea r13, [rdx + rax]
add r13, rsi
movabs rdx, 0x5be0cd19137e2179
mov rbp, qword [rsp + 0x48]
xor rbp, rdx
xor rbp, r13
rol rbp, 0x20
movabs rdx, 0xa54ff53a5f1d36f1
lea rax, [rdx + rbp]
mov r8, rax
xor r8, qword [rsp + 0xf0]
rol r8, 0x28
mov rdx, qword [r12 + 0x38]
mov qword [rsp + 0xa8], rdx
add r13, rdx
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rax, rbp
xor r8, rax
rol r8, 1
mov rdx, qword [r12 + 0x40]
mov qword [rsp + 0x78], rdx
add rcx, rdx
add rcx, r11
xor rbp, rcx
rol rbp, 0x20
add r10, rbp
xor r11, r10
rol r11, 0x28
mov rdx, qword [r12 + 0x48]
mov qword [rsp + 0x80], rdx
add rcx, rdx
add rcx, r11
xor rbp, rcx
rol rbp, 0x30
add r10, rbp
mov qword [rsp + 0x48], r10
xor r11, r10
rol r11, 1
mov rdx, qword [r12 + 0x50]
mov qword [rsp + 0xd8], rdx
add r15, rdx
add r15, r14
mov r10, qword [rsp + 0x58]
xor r10, r15
rol r10, 0x20
mov rdx, rax
add rdx, r10
xor r14, rdx
rol r14, 0x28
mov rax, qword [r12 + 0x58]
mov qword [rsp + 0xa0], rax
add r15, rax
add r15, r14
xor r10, r15
rol r10, 0x30
mov qword [rsp + 0x58], r10
add rdx, r10
mov qword [rsp + 0x50], rdx
xor r14, rdx
rol r14, 1
mov rdx, qword [r12 + 0x60]
mov qword [rsp + 0xb8], rdx
add r9, rdx
add r9, r8
mov r10, qword [rsp + 0x140]
xor r10, r9
rol r10, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, r10
xor r8, rdx
rol r8, 0x28
mov rax, qword [r12 + 0x68]
mov qword [rsp + 0x98], rax
add r9, rax
add r9, r8
xor r10, r9
rol r10, 0x30
add rdx, r10
xor r8, rdx
rol r8, 1
mov rax, qword [r12 + 0x70]
mov r12, qword [r12 + 0x78]
mov qword [rsp + 0x68], r12
add r13, rax
mov qword [rsp + 0xd0], rax
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov rsi, qword [rsp + 0x38]
add rsi, rdi
xor rbx, rsi
rol rbx, 0x28
add r13, r12
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add rsi, rdi
xor rbx, rsi
rol rbx, 1
add rcx, rax
add rcx, rbx
mov rax, qword [rsp + 0x58]
xor rax, rcx
rol rax, 0x20
add rdx, rax
xor rbx, rdx
rol rbx, 0x28
add rcx, qword [rsp + 0xd8]
add rcx, rbx
xor rax, rcx
rol rax, 0x30
add rdx, rax
mov qword [rsp + 0x40], rdx
xor rbx, rdx
rol rbx, 1
add r15, qword [rsp + 0xc0]
add r15, r11
xor r10, r15
rol r10, 0x20
add rsi, r10
xor r11, rsi
rol r11, 0x28
add r15, qword [rsp + 0x78]
add r15, r11
xor r10, r15
rol r10, 0x30
add rsi, r10
mov qword [rsp + 0x38], rsi
xor r11, rsi
rol r11, 1
add r9, qword [rsp + 0x80]
add r9, r14
xor rdi, r9
rol rdi, 0x20
mov r12, qword [rsp + 0x48]
add r12, rdi
xor r14, r12
rol r14, 0x28
add r9, qword [rsp + 0x68]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add r12, rdi
xor r14, r12
rol r14, 1
add r13, qword [rsp + 0x98]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, rbp
xor r8, rdx
rol r8, 0x28
add r13, qword [rsp + 0x90]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rdx, rbp
xor r8, rdx
rol r8, 1
add rcx, qword [rsp + 0xb0]
add rcx, r11
xor rbp, rcx
rol rbp, 0x20
add r12, rbp
xor r11, r12
rol r11, 0x28
add rcx, qword [rsp + 0xb8]
add rcx, r11
xor rbp, rcx
rol rbp, 0x30
add r12, rbp
xor r11, r12
rol r11, 1
add r15, qword [rsp + 0xc8]
add r15, r14
mov rsi, rax
xor rsi, r15
rol rsi, 0x20
add rdx, rsi
xor r14, rdx
rol r14, 0x28
add r15, qword [rsp + 0x60]
add r15, r14
xor rsi, r15
rol rsi, 0x30
add rdx, rsi
mov qword [rsp + 0x50], rdx
xor r14, rdx
rol r14, 1
add r9, qword [rsp + 0xa0]
add r9, r8
xor r10, r9
rol r10, 0x20
mov rax, qword [rsp + 0x40]
add rax, r10
xor r8, rax
rol r8, 0x28
add r9, qword [rsp + 0xa8]
add r9, r8
xor r10, r9
rol r10, 0x30
add rax, r10
mov qword [rsp + 0x40], rax
xor r8, rax
rol r8, 1
add r13, qword [rsp + 0x70]
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov rdx, qword [rsp + 0x38]
add rdx, rdi
xor rbx, rdx
rol rbx, 0x28
mov rax, qword [rsp + 0x88]
add r13, rax
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add rdx, rdi
mov qword [rsp + 0x38], rdx
xor rbx, rdx
rol rbx, 1
add rcx, qword [rsp + 0xa0]
add rcx, rbx
xor rsi, rcx
rol rsi, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, rsi
xor rbx, rdx
rol rbx, 0x28
add rcx, qword [rsp + 0x78]
add rcx, rbx
xor rsi, rcx
rol rsi, 0x30
add rdx, rsi
mov qword [rsp + 0x40], rdx
xor rbx, rdx
rol rbx, 1
add r15, qword [rsp + 0xb8]
add r15, r11
xor r10, r15
rol r10, 0x20
mov rdx, qword [rsp + 0x38]
add rdx, r10
xor r11, rdx
rol r11, 0x28
add r15, qword [rsp + 0xc8]
add r15, r11
xor r10, r15
rol r10, 0x30
add rdx, r10
mov qword [rsp + 0x38], rdx
xor r11, rdx
rol r11, 1
add r9, qword [rsp + 0x70]
add r9, r14
xor rdi, r9
rol rdi, 0x20
add r12, rdi
xor r14, r12
rol r14, 0x28
add r9, qword [rsp + 0x60]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add r12, rdi
xor r14, r12
rol r14, 1
add r13, qword [rsp + 0x68]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, rbp
xor r8, rdx
rol r8, 0x28
add r13, qword [rsp + 0x98]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rdx, rbp
xor r8, rdx
rol r8, 1
add rcx, qword [rsp + 0xd8]
add rcx, r11
xor rbp, rcx
rol rbp, 0x20
add r12, rbp
xor r11, r12
rol r11, 0x28
add rcx, qword [rsp + 0xd0]
add rcx, r11
xor rbp, rcx
rol rbp, 0x30
add r12, rbp
xor r11, r12
rol r11, 1
add r15, rax
add r15, r14
xor rsi, r15
rol rsi, 0x20
add rdx, rsi
xor r14, rdx
rol r14, 0x28
add r15, qword [rsp + 0x90]
add r15, r14
xor rsi, r15
rol rsi, 0x30
mov qword [rsp + 0x58], rsi
add rdx, rsi
mov qword [rsp + 0x50], rdx
xor r14, rdx
rol r14, 1
mov rsi, qword [rsp + 0xa8]
add r9, rsi
add r9, r8
xor r10, r9
rol r10, 0x20
mov rax, qword [rsp + 0x40]
add rax, r10
xor r8, rax
rol r8, 0x28
add r9, qword [rsp + 0xb0]
add r9, r8
xor r10, r9
rol r10, 0x30
add rax, r10
mov qword [rsp + 0x40], rax
xor r8, rax
rol r8, 1
mov rdx, qword [rsp + 0x80]
add r13, rdx
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov rax, qword [rsp + 0x38]
add rax, rdi
xor rbx, rax
rol rbx, 0x28
add r13, qword [rsp + 0xc0]
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add rax, rdi
mov qword [rsp + 0x38], rax
xor rbx, rax
rol rbx, 1
add rcx, rsi
add rcx, rbx
mov rsi, qword [rsp + 0x58]
xor rsi, rcx
rol rsi, 0x20
mov rax, qword [rsp + 0x40]
add rax, rsi
xor rbx, rax
rol rbx, 0x28
add rcx, rdx
add rcx, rbx
xor rsi, rcx
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x40], rax
mov rdx, rsi
xor rbx, rax
rol rbx, 1
add r15, qword [rsp + 0x88]
add r15, r11
xor r10, r15
rol r10, 0x20
mov rax, qword [rsp + 0x38]
add rax, r10
xor r11, rax
rol r11, 0x28
add r15, qword [rsp + 0xb0]
add r15, r11
xor r10, r15
rol r10, 0x30
add rax, r10
mov qword [rsp + 0x38], rax
xor r11, rax
rol r11, 1
add r9, qword [rsp + 0x98]
add r9, r14
xor rdi, r9
rol rdi, 0x20
add r12, rdi
xor r14, r12
rol r14, 0x28
add r9, qword [rsp + 0xb8]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add r12, rdi
xor r14, r12
rol r14, 1
add r13, qword [rsp + 0xa0]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov rsi, qword [rsp + 0x50]
add rsi, rbp
xor r8, rsi
rol r8, 0x28
add r13, qword [rsp + 0xd0]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rsi, rbp
xor r8, rsi
rol r8, 1
add rcx, qword [rsp + 0x60]
add rcx, r11
xor rbp, rcx
rol rbp, 0x20
add r12, rbp
xor r11, r12
rol r11, 0x28
add rcx, qword [rsp + 0x90]
add rcx, r11
xor rbp, rcx
rol rbp, 0x30
add r12, rbp
mov qword [rsp + 0x48], r12
xor r11, r12
rol r11, 1
add r15, qword [rsp + 0x70]
add r15, r14
xor rdx, r15
rol rdx, 0x20
add rsi, rdx
xor r14, rsi
rol r14, 0x28
add r15, qword [rsp + 0xd8]
add r15, r14
xor rdx, r15
rol rdx, 0x30
add rsi, rdx
mov qword [rsp + 0x50], rsi
mov rax, rdx
xor r14, rsi
rol r14, 1
add r9, qword [rsp + 0xc0]
add r9, r8
xor r10, r9
rol r10, 0x20
mov r12, qword [rsp + 0x40]
add r12, r10
xor r8, r12
rol r8, 0x28
mov rsi, qword [rsp + 0xc8]
add r9, rsi
add r9, r8
xor r10, r9
rol r10, 0x30
add r12, r10
xor r8, r12
rol r8, 1
add r13, qword [rsp + 0x68]
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov rdx, qword [rsp + 0x38]
add rdx, rdi
xor rbx, rdx
rol rbx, 0x28
add r13, qword [rsp + 0x78]
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add rdx, rdi
xor rbx, rdx
rol rbx, 1
add rcx, qword [rsp + 0x80]
add rcx, rbx
xor rax, rcx
rol rax, 0x20
add r12, rax
xor rbx, r12
rol rbx, 0x28
add rcx, rsi
add rcx, rbx
xor rax, rcx
rol rax, 0x30
add r12, rax
xor rbx, r12
rol rbx, 1
add r15, qword [rsp + 0x70]
add r15, r11
xor r10, r15
rol r10, 0x20
add rdx, r10
xor r11, rdx
rol r11, 0x28
add r15, qword [rsp + 0xa8]
add r15, r11
xor r10, r15
rol r10, 0x30
add rdx, r10
mov qword [rsp + 0x38], rdx
xor r11, rdx
rol r11, 1
add r9, qword [rsp + 0x60]
add r9, r14
xor rdi, r9
rol rdi, 0x20
mov rsi, qword [rsp + 0x48]
add rsi, rdi
xor r14, rsi
rol r14, 0x28
add r9, qword [rsp + 0xc0]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add rsi, rdi
xor r14, rsi
rol r14, 1
add r13, qword [rsp + 0xd8]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, rbp
xor r8, rdx
rol r8, 0x28
add r13, qword [rsp + 0x68]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rdx, rbp
xor r8, rdx
rol r8, 1
add rcx, qword [rsp + 0xd0]
add rcx, r11
xor rbp, rcx
rol rbp, 0x20
add rsi, rbp
xor r11, rsi
rol r11, 0x28
add rcx, qword [rsp + 0xb0]
add rcx, r11
mov qword [rsp + 0x40], rcx
xor rbp, rcx
rol rbp, 0x30
add rsi, rbp
mov qword [rsp + 0x48], rsi
xor r11, rsi
rol r11, 1
add r15, qword [rsp + 0xa0]
add r15, r14
xor rax, r15
rol rax, 0x20
mov rcx, rdx
add rcx, rax
xor r14, rcx
rol r14, 0x28
mov rdx, qword [rsp + 0xb8]
add r15, rdx
add r15, r14
xor rax, r15
rol rax, 0x30
add rcx, rax
mov qword [rsp + 0x50], rcx
xor r14, rcx
rol r14, 1
add r9, qword [rsp + 0x90]
add r9, r8
xor r10, r9
rol r10, 0x20
add r12, r10
xor r8, r12
rol r8, 0x28
add r9, qword [rsp + 0x78]
add r9, r8
xor r10, r9
rol r10, 0x30
add r12, r10
xor r8, r12
rol r8, 1
add r13, qword [rsp + 0x88]
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov rcx, qword [rsp + 0x38]
add rcx, rdi
xor rbx, rcx
rol rbx, 0x28
add r13, qword [rsp + 0x98]
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add rcx, rdi
xor rbx, rcx
rol rbx, 1
mov rsi, qword [rsp + 0x40]
add rsi, qword [rsp + 0x60]
add rsi, rbx
xor rax, rsi
rol rax, 0x20
add r12, rax
xor rbx, r12
rol rbx, 0x28
add rsi, rdx
add rsi, rbx
xor rax, rsi
rol rax, 0x30
add r12, rax
xor rbx, r12
rol rbx, 1
add r15, qword [rsp + 0x90]
add r15, r11
xor r10, r15
rol r10, 0x20
add rcx, r10
xor r11, rcx
rol r11, 0x28
add r15, qword [rsp + 0xd8]
add r15, r11
xor r10, r15
rol r10, 0x30
add rcx, r10
mov qword [rsp + 0x38], rcx
xor r11, rcx
rol r11, 1
add r9, qword [rsp + 0xc8]
add r9, r14
xor rdi, r9
rol rdi, 0x20
mov rcx, qword [rsp + 0x48]
add rcx, rdi
xor r14, rcx
rol r14, 0x28
add r9, qword [rsp + 0xa0]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add rcx, rdi
mov qword [rsp + 0x48], rcx
xor r14, rcx
rol r14, 1
add r13, qword [rsp + 0x78]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, rbp
xor r8, rdx
rol r8, 0x28
add r13, qword [rsp + 0x88]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rdx, rbp
xor r8, rdx
rol r8, 1
mov rcx, rsi
add rcx, qword [rsp + 0xc0]
add rcx, r11
xor rbp, rcx
rol rbp, 0x20
mov rsi, qword [rsp + 0x48]
add rsi, rbp
xor r11, rsi
rol r11, 0x28
add rcx, qword [rsp + 0x98]
add rcx, r11
xor rbp, rcx
rol rbp, 0x30
add rsi, rbp
mov qword [rsp + 0x48], rsi
xor r11, rsi
rol r11, 1
add r15, qword [rsp + 0xa8]
add r15, r14
xor rax, r15
rol rax, 0x20
add rdx, rax
xor r14, rdx
rol r14, 0x28
add r15, qword [rsp + 0x70]
add r15, r14
xor rax, r15
rol rax, 0x30
add rdx, rax
mov qword [rsp + 0x50], rdx
xor r14, rdx
rol r14, 1
add r9, qword [rsp + 0x68]
add r9, r8
xor r10, r9
rol r10, 0x20
add r12, r10
xor r8, r12
rol r8, 0x28
add r9, qword [rsp + 0xd0]
add r9, r8
xor r10, r9
rol r10, 0x30
add r12, r10
mov rsi, r10
xor r8, r12
rol r8, 1
mov rdx, qword [rsp + 0xb0]
add r13, rdx
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov r10, qword [rsp + 0x38]
add r10, rdi
xor rbx, r10
rol rbx, 0x28
add r13, qword [rsp + 0x80]
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add r10, rdi
xor rbx, r10
rol rbx, 1
add rcx, qword [rsp + 0xb8]
add rcx, rbx
xor rax, rcx
rol rax, 0x20
add r12, rax
xor rbx, r12
rol rbx, 0x28
add rcx, qword [rsp + 0x70]
add rcx, rbx
xor rax, rcx
rol rax, 0x30
add r12, rax
mov qword [rsp + 0x40], r12
xor rbx, r12
rol rbx, 1
add r15, rdx
add r15, r11
xor rsi, r15
rol rsi, 0x20
add r10, rsi
xor r11, r10
rol r11, 0x28
add r15, qword [rsp + 0x68]
add r15, r11
xor rsi, r15
rol rsi, 0x30
add r10, rsi
mov qword [rsp + 0x38], r10
xor r11, r10
rol r11, 1
add r9, qword [rsp + 0xd0]
add r9, r14
xor rdi, r9
rol rdi, 0x20
mov r10, qword [rsp + 0x48]
add r10, rdi
xor r14, r10
rol r14, 0x28
add r9, qword [rsp + 0x98]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add r10, rdi
xor r14, r10
rol r14, 1
add r13, qword [rsp + 0xc0]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov r12, qword [rsp + 0x50]
add r12, rbp
xor r8, r12
rol r8, 0x28
add r13, qword [rsp + 0xd8]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add r12, rbp
xor r8, r12
rol r8, 1
add rcx, qword [rsp + 0xc8]
add rcx, r11
xor rbp, rcx
rol rbp, 0x20
add r10, rbp
xor r11, r10
rol r11, 0x28
add rcx, qword [rsp + 0xa8]
add rcx, r11
xor rbp, rcx
rol rbp, 0x30
add r10, rbp
mov qword [rsp + 0x48], r10
xor r11, r10
rol r11, 1
add r15, qword [rsp + 0x90]
add r15, r14
xor rax, r15
rol rax, 0x20
mov rdx, r12
add rdx, rax
xor r14, rdx
rol r14, 0x28
add r15, qword [rsp + 0x88]
add r15, r14
xor rax, r15
rol rax, 0x30
add rdx, rax
mov qword [rsp + 0x50], rdx
mov r12, rax
xor r14, rdx
rol r14, 1
add r9, qword [rsp + 0x80]
add r9, r8
xor rsi, r9
rol rsi, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, rsi
xor r8, rdx
rol r8, 0x28
add r9, qword [rsp + 0x60]
add r9, r8
xor rsi, r9
rol rsi, 0x30
add rdx, rsi
xor r8, rdx
mov rax, rdx
rol r8, 1
add r13, qword [rsp + 0x78]
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov r10, qword [rsp + 0x38]
add r10, rdi
xor rbx, r10
rol rbx, 0x28
mov rdx, qword [rsp + 0xa0]
add r13, rdx
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add r10, rdi
xor rbx, r10
rol rbx, 1
add rcx, qword [rsp + 0x98]
add rcx, rbx
xor r12, rcx
rol r12, 0x20
add rax, r12
xor rbx, rax
rol rbx, 0x28
add rcx, rdx
add rcx, rbx
xor r12, rcx
rol r12, 0x30
add rax, r12
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r15, qword [rsp + 0xa8]
add r15, r11
xor rsi, r15
rol rsi, 0x20
add r10, rsi
xor r11, r10
rol r11, 0x28
add r15, qword [rsp + 0xd0]
add r15, r11
xor rsi, r15
rol rsi, 0x30
add r10, rsi
mov qword [rsp + 0x38], r10
xor r11, r10
rol r11, 1
add r9, qword [rsp + 0xb8]
add r9, r14
xor rdi, r9
rol rdi, 0x20
mov rdx, qword [rsp + 0x48]
add rdx, rdi
xor r14, rdx
rol r14, 0x28
add r9, qword [rsp + 0xb0]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add rdx, rdi
xor r14, rdx
rol r14, 1
add r13, qword [rsp + 0x88]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov rax, qword [rsp + 0x50]
add rax, rbp
xor r8, rax
rol r8, 0x28
add r13, qword [rsp + 0x80]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rax, rbp
xor r8, rax
rol r8, 1
mov r10, rcx
add r10, qword [rsp + 0x70]
add r10, r11
xor rbp, r10
rol rbp, 0x20
add rdx, rbp
xor r11, rdx
rol r11, 0x28
add r10, qword [rsp + 0xc8]
add r10, r11
xor rbp, r10
rol rbp, 0x30
add rdx, rbp
mov qword [rsp + 0x48], rdx
xor r11, rdx
rol r11, 1
add r15, qword [rsp + 0x68]
add r15, r14
xor r12, r15
rol r12, 0x20
add rax, r12
xor r14, rax
rol r14, 0x28
add r15, qword [rsp + 0xc0]
add r15, r14
xor r12, r15
rol r12, 0x30
add rax, r12
mov qword [rsp + 0x50], rax
xor r14, rax
rol r14, 1
add r9, qword [rsp + 0x78]
add r9, r8
xor rsi, r9
rol rsi, 0x20
mov rax, qword [rsp + 0x40]
add rax, rsi
xor r8, rax
rol r8, 0x28
mov rdx, qword [rsp + 0x90]
add r9, rdx
add r9, r8
xor rsi, r9
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x40], rax
xor r8, rax
rol r8, 1
add r13, qword [rsp + 0x60]
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov rax, qword [rsp + 0x38]
add rax, rdi
xor rbx, rax
rol rbx, 0x28
add r13, qword [rsp + 0xd8]
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add rax, rdi
mov qword [rsp + 0x38], rax
xor rbx, rax
rol rbx, 1
add r10, rdx
add r10, rbx
xor r12, r10
rol r12, 0x20
mov rax, qword [rsp + 0x40]
add rax, r12
xor rbx, rax
rol rbx, 0x28
add r10, qword [rsp + 0x68]
add r10, rbx
xor r12, r10
rol r12, 0x30
add rax, r12
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r15, qword [rsp + 0xd0]
add r15, r11
xor rsi, r15
rol rsi, 0x20
mov rax, qword [rsp + 0x38]
add rax, rsi
xor r11, rax
rol r11, 0x28
add r15, qword [rsp + 0x80]
add r15, r11
xor rsi, r15
rol rsi, 0x30
add rax, rsi
mov qword [rsp + 0x38], rax
xor r11, rax
rol r11, 1
add r9, qword [rsp + 0xa0]
add r9, r14
xor rdi, r9
rol rdi, 0x20
mov rdx, qword [rsp + 0x48]
add rdx, rdi
xor r14, rdx
rol r14, 0x28
add r9, qword [rsp + 0x88]
add r9, r14
xor rdi, r9
rol rdi, 0x30
add rdx, rdi
xor r14, rdx
mov rax, rdx
rol r14, 1
add r13, qword [rsp + 0xc8]
add r13, r8
xor rbp, r13
rol rbp, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, rbp
xor r8, rdx
rol r8, 0x28
add r13, qword [rsp + 0x78]
add r13, r8
xor rbp, r13
rol rbp, 0x30
add rdx, rbp
xor r8, rdx
rol r8, 1
add r10, qword [rsp + 0xb8]
add r10, r11
xor rbp, r10
rol rbp, 0x20
add rax, rbp
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0x60]
add r10, r11
xor rbp, r10
rol rbp, 0x30
add rax, rbp
mov qword [rsp + 0x48], rax
xor r11, rax
rol r11, 1
add r15, qword [rsp + 0x98]
add r15, r14
xor r12, r15
rol r12, 0x20
mov rcx, rdx
add rcx, r12
xor r14, rcx
rol r14, 0x28
add r15, qword [rsp + 0xa8]
add r15, r14
xor r12, r15
rol r12, 0x30
mov qword [rsp + 0x58], r12
add rcx, r12
mov qword [rsp + 0x50], rcx
xor r14, rcx
rol r14, 1
add r9, qword [rsp + 0xb0]
mov rax, r8
add r9, r8
mov rcx, rsi
xor rcx, r9
rol rcx, 0x20
mov rsi, qword [rsp + 0x40]
add rsi, rcx
xor rax, rsi
rol rax, 0x28
mov r8, qword [rsp + 0xc0]
add r9, r8
add r9, rax
mov qword [rsp + 0x130], r9
xor rcx, r9
rol rcx, 0x30
add rsi, rcx
xor rax, rsi
rol rax, 1
mov rdx, qword [rsp + 0xd8]
add r13, rdx
add r13, rbx
xor rdi, r13
rol rdi, 0x20
mov r12, qword [rsp + 0x38]
add r12, rdi
xor rbx, r12
rol rbx, 0x28
add r13, qword [rsp + 0x70]
add r13, rbx
xor rdi, r13
rol rdi, 0x30
add r12, rdi
xor rbx, r12
mov r9, rbx
rol r9, 1
add r10, rdx
add r10, r9
mov rbx, qword [rsp + 0x58]
xor rbx, r10
rol rbx, 0x20
add rsi, rbx
xor r9, rsi
rol r9, 0x28
add r10, qword [rsp + 0x60]
add r10, r9
xor rbx, r10
rol rbx, 0x30
add rsi, rbx
xor r9, rsi
rol r9, 1
mov qword [rsp + 0x138], r9
add r15, qword [rsp + 0x78]
add r15, r11
xor rcx, r15
rol rcx, 0x20
add r12, rcx
xor r11, r12
rol r11, 0x28
add r15, r8
add r15, r11
xor rcx, r15
rol rcx, 0x30
add r12, rcx
mov qword [rsp + 0x38], r12
xor r11, r12
rol r11, 1
mov r8, qword [rsp + 0x130]
add r8, qword [rsp + 0xa8]
add r8, r14
xor rdi, r8
rol rdi, 0x20
mov r9, qword [rsp + 0x48]
add r9, rdi
xor r14, r9
mov rdx, r9
rol r14, 0x28
add r8, qword [rsp + 0x90]
add r8, r14
xor rdi, r8
mov r9, r8
rol rdi, 0x30
add rdx, rdi
xor r14, rdx
mov r8, rdx
rol r14, 1
add r13, qword [rsp + 0xb0]
mov rdx, rax
add r13, rax
xor rbp, r13
rol rbp, 0x20
mov r12, qword [rsp + 0x50]
add r12, rbp
xor rdx, r12
rol rdx, 0x28
add r13, qword [rsp + 0x70]
add r13, rdx
xor rbp, r13
rol rbp, 0x30
add r12, rbp
xor rdx, r12
rol rdx, 1
add r10, qword [rsp + 0x68]
add r10, r11
xor rbp, r10
rol rbp, 0x20
add r8, rbp
xor r11, r8
rol r11, 0x28
add r10, qword [rsp + 0xa0]
add r10, r11
xor rbp, r10
rol rbp, 0x30
add r8, rbp
mov qword [rsp + 0x48], r8
xor r11, r8
rol r11, 1
add r15, qword [rsp + 0x80]
add r15, r14
xor rbx, r15
rol rbx, 0x20
add r12, rbx
xor r14, r12
rol r14, 0x28
add r15, qword [rsp + 0xd0]
add r15, r14
xor rbx, r15
rol rbx, 0x30
add r12, rbx
xor r14, r12
rol r14, 1
add r9, qword [rsp + 0x88]
add r9, rdx
xor rcx, r9
rol rcx, 0x20
add rsi, rcx
xor rdx, rsi
rol rdx, 0x28
add r9, qword [rsp + 0xb8]
add r9, rdx
xor rcx, r9
rol rcx, 0x30
add rsi, rcx
mov qword [rsp + 0x40], rsi
xor rdx, rsi
rol rdx, 1
add r13, qword [rsp + 0x98]
mov r8, qword [rsp + 0x138]
add r13, r8
xor rdi, r13
rol rdi, 0x20
mov rsi, qword [rsp + 0x38]
add rsi, rdi
xor r8, rsi
rol r8, 0x28
mov rax, qword [rsp + 0xc8]
add r13, rax
add r13, r8
xor rdi, r13
rol rdi, 0x30
add rsi, rdi
xor r8, rsi
rol r8, 1
add r10, rax
add r10, r8
xor rbx, r10
rol rbx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rbx
xor r8, rax
rol r8, 0x28
add r10, qword [rsp + 0xb0]
add r10, r8
xor rbx, r10
rol rbx, 0x30
mov qword [rsp + 0x58], rbx
add rax, rbx
mov qword [rsp + 0x40], rax
xor r8, rax
rol r8, 1
mov qword [rsp + 0x138], r8
add r15, qword [rsp + 0x60]
add r15, r11
mov rax, rcx
xor rax, r15
rol rax, 0x20
add rsi, rax
xor r11, rsi
rol r11, 0x28
add r15, qword [rsp + 0x88]
add r15, r11
xor rax, r15
mov rbx, r15
rol rax, 0x30
mov qword [rsp + 0x140], rax
add rsi, rax
mov qword [rsp + 0x38], rsi
xor r11, rsi
rol r11, 1
mov r15, r11
add r9, qword [rsp + 0xc0]
add r9, r14
xor rdi, r9
rol rdi, 0x20
mov r8, qword [rsp + 0x48]
add r8, rdi
xor r14, r8
rol r14, 0x28
add r9, qword [rsp + 0x70]
add r9, r14
mov qword [rsp + 0x130], r9
xor rdi, r9
rol rdi, 0x30
add r8, rdi
xor r14, r8
rol r14, 1
add r13, qword [rsp + 0x90]
mov rsi, rdx
add r13, rdx
xor rbp, r13
rol rbp, 0x20
add r12, rbp
xor rsi, r12
mov rdx, r12
rol rsi, 0x28
add r13, qword [rsp + 0xa8]
add r13, rsi
xor rbp, r13
rol rbp, 0x30
add rdx, rbp
mov r9, r10
add r9, qword [rsp + 0x78]
add r9, r11
xor rbp, r9
rol rbp, 0x20
add r8, rbp
xor r15, r8
rol r15, 0x28
mov qword [rsp + 0x180], r15
add r9, qword [rsp + 0x80]
add r9, r15
xor rbp, r9
mov r12, qword [rsp + 0xd0]
add r13, r12
add r9, r12
xor rsi, rdx
mov r15, rbx
mov rcx, qword [rsp + 0xd8]
add r15, rcx
add r15, r14
mov rax, qword [rsp + 0x58]
xor rax, r15
rol rax, 0x20
add rdx, rax
xor r14, rdx
rol r14, 0x28
mov qword [rsp + 0x58], r14
add r15, qword [rsp + 0xa0]
add r15, r14
xor rax, r15
rol rax, 0x30
mov r10, qword [rsp + 0x138]
add r13, r10
xor rdi, r13
rol rdi, 0x20
mov r12, rdi
mov r11, qword [rsp + 0x38]
add r11, rdi
xor r10, r11
rol r10, 0x28
add rdx, rax
mov qword [rsp + 0x50], rdx
add r13, qword [rsp + 0x68]
add r13, r10
xor r12, r13
mov rdi, r13
rol r12, 0x30
add r11, r12
mov qword [rsp + 0x38], r11
xor r10, r11
rol r10, 1
add r9, r10
xor rax, r9
add r9, rcx
add r15, qword [rsp + 0xc0]
mov r13, rsi
rol r13, 1
rol rbp, 0x30
add r8, rbp
mov qword [rsp + 0x48], r8
mov rbx, qword [rsp + 0x180]
xor rbx, r8
rol rbx, 1
mov r8, qword [rsp + 0x130]
add r8, qword [rsp + 0xb8]
add r8, r13
mov r14, qword [rsp + 0x140]
xor r14, r8
rol r14, 0x20
mov rsi, qword [rsp + 0x40]
add rsi, r14
xor r13, rsi
rol r13, 0x28
mov rdx, qword [rsp + 0x98]
add r8, rdx
add r8, r13
xor r14, r8
rol r14, 0x30
add rsi, r14
add r15, rbx
xor r14, r15
add r15, qword [rsp + 0x78]
add r8, qword [rsp + 0x80]
mov rcx, qword [rsp + 0x58]
mov r11, qword [rsp + 0x50]
xor rcx, r11
rol rcx, 1
mov qword [rsp + 0x58], rcx
add r8, rcx
xor r12, r8
add r8, qword [rsp + 0x68]
add rdi, rdx
xor r13, rsi
rol r13, 1
add rdi, r13
xor rbp, rdi
add rdi, qword [rsp + 0x90]
rol rax, 0x20
add rsi, rax
mov qword [rsp + 0x40], rsi
xor r10, rsi
rol r10, 0x28
mov rsi, r9
add rsi, r10
xor rax, rsi
mov r9, rax
rol r14, 0x20
mov rdx, rbp
mov rax, qword [rsp + 0x38]
add rax, r14
xor rbx, rax
rol rbx, 0x28
add r15, rbx
xor r14, r15
rol r14, 0x30
add rax, r14
mov qword [rsp + 0x38], rax
xor rbx, rax
rol rbx, 1
add rsi, qword [rsp + 0xb0]
rol rdx, 0x20
mov rbp, r11
add rbp, rdx
xor r13, rbp
rol r13, 0x28
add rdi, r13
xor rdx, rdi
rol rdx, 0x30
add rbp, rdx
add rsi, rbx
xor rdx, rsi
add rsi, qword [rsp + 0xb8]
add r15, qword [rsp + 0xc8]
rol r9, 0x30
rol r12, 0x20
mov rax, qword [rsp + 0x48]
add rax, r12
mov r11, qword [rsp + 0x58]
xor r11, rax
rol r11, 0x28
add r8, r11
xor r12, r8
rol r12, 0x30
add rax, r12
xor r11, rax
rol r11, 1
mov rcx, qword [rsp + 0x40]
add rcx, r9
add r15, r11
xor r9, r15
mov qword [rsp + 0x58], r9
add r15, qword [rsp + 0x60]
add r8, qword [rsp + 0xa0]
xor r13, rbp
rol r13, 1
add r8, r13
xor r14, r8
add r8, qword [rsp + 0xa8]
add rdi, qword [rsp + 0x70]
xor r10, rcx
rol r10, 1
add rdi, r10
xor r12, rdi
add rdi, qword [rsp + 0x88]
rol rdx, 0x20
add rax, rdx
mov qword [rsp + 0x48], rax
xor rbx, rax
rol rbx, 0x28
add rsi, rbx
mov r9, rbx
xor rdx, rsi
rol r14, 0x20
add rcx, r14
xor r13, rcx
rol r13, 0x28
add r8, r13
xor r14, r8
rol r14, 0x30
xor qword [rsp + 0x110], rsi
add rcx, r14
xor r13, rcx
xor qword [rsp + 0x110], rcx
mov rsi, qword [rsp + 0x58]
rol rsi, 0x20
add rbp, rsi
xor r11, rbp
mov rax, rbp
rol r11, 0x28
add r15, r11
xor rsi, r15
mov rbp, rsi
mov rsi, qword [rsp + 0x100]
xor rsi, r15
rol r12, 0x20
mov rbx, qword [rsp + 0x38]
add rbx, r12
xor r10, rbx
rol r10, 0x28
add rdi, r10
xor r12, rdi
rol r12, 0x30
add rbx, r12
xor r10, rbx
xor rsi, rbx
mov qword [rsp + 0x100], rsi
rol rdx, 0x30
mov rsi, qword [rsp + 0x118]
xor rsi, r8
mov rbx, qword [rsp + 0x48]
add rbx, rdx
xor r9, rbx
xor rsi, rbx
mov qword [rsp + 0x118], rsi
mov rcx, qword [rsp + 0xe8]
mov rsi, qword [rsp + 0x108]
xor rsi, rdi
mov r15, qword [rsp + 0x190]
rol rbp, 0x30
add rax, rbp
xor r11, rax
xor rsi, rax
mov qword [rsp + 0x108], rsi
rol r10, 1
xor qword [rsp + 0xe0], rbp
mov r8, qword [rsp + 0xe0]
xor r8, r10
mov rsi, qword [rsp + 0x168]
rol r9, 1
xor r15, r14
xor r15, r9
rol r11, 1
xor rcx, r12
xor rcx, r11
mov qword [rsp + 0xe8], rcx
mov r14, qword [rsp + 0x198]
rol r13, 1
xor qword [rsp + 0xf0], rdx
xor qword [rsp + 0xf0], r13
mov rcx, qword [rsp + 0x188]
mov rax, rcx
cmp qword [rsp + 0x160], rcx
je 0x52990f
lea r13, [rax + 0x80]
mov rcx, qword [rsp + 0x148]
mov r12, rsi
mov rdx, qword [rsp + 0x170]
mov qword [rsp + 0x50], rdx
mov rdx, qword [rsp + 0x178]
mov qword [rsp + 0x48], rdx
cmp qword [rsp + 0x150], rax
je 0x527f50
cmp rax, 0xffffffffffffff80
je 0x52997a
cmp r13, qword [rsp + 0xf8]
ja 0x529990
add rax, qword [rsp + 0x128]
mov ecx, pe_nt_image_headers64
mov r12, rax
xor eax, eax
mov qword [rsp + 0x50], rax
xor eax, eax
mov qword [rsp + 0x48], rax
jmp 0x527f50
mov rax, qword [rsp + 0x120]
mov rcx, qword [rsp + 0x110]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x118]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x108]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], r8
mov qword [rax + 0x28], r15
mov rcx, qword [rsp + 0xe8]
mov qword [rax + 0x30], rcx
mov rcx, qword [rsp + 0xf0]
mov qword [rax + 0x38], rcx
add rsp, 0x228
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea r8, str._home_uni_100_.cargo_registry_src_index.crates.io_6f17d22bba15001f_blake2b_simd_1.0.2_src_portable.rs
mov rcx, 0xffffffffffffff80
mov rdx, r13
call fcn.00571ef0
lea r8, str._home_uni_100_.cargo_registry_src_index.crates.io_6f17d22bba15001f_blake2b_simd_1.0.2_src_portable.rs
mov rcx, r13
mov rdx, qword [rsp + 0xf8]
call fcn.0056ddd0
int3