Function at 0x14000544e
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 r14, qword [rsp + 0x298]
mov rdi, qword [rsp + 0x290]
mov al, byte [rsp + 0x2a8]
mov r15b, byte [rsp + 0x2a0]
cmp cl, 2
jne 0x1400054a9
mov byte [rsp + 0x30], al
mov byte [rsp + 0x28], r15b
mov qword [rsp + 0x20], r14
mov rcx, rdx
mov rdx, r8
mov r8, r9
mov r9, rdi
call fcn.140006efe
jmp 0x140006eea
mov rax, qword [r9]
mov qword [rsp + 0xf0], rax
mov rax, qword [r9 + 8]
mov qword [rsp + 0xf8], rax
mov rax, qword [r9 + 0x10]
mov qword [rsp + 0x100], rax
mov rax, qword [r9 + 0x18]
mov qword [rsp + 0x108], rax
mov rbp, qword [r9 + 0x20]
mov rbx, qword [r9 + 0x28]
mov rsi, qword [r9 + 0x30]
xor r13d, r13d
mov r12, r8
sub r12, 1
cmovb r12, r13
mov qword [rsp + 0x118], r9
mov rax, qword [r9 + 0x38]
mov qword [rsp + 0xe8], rax
and r12, 0xffffffffffffff80
xorps xmm0, xmm0
lea rax, [rsp + 0x1a0]
movaps xmmword [rax + 0x70], xmm0
movaps xmmword [rax + 0x60], xmm0
movaps xmmword [rax + 0x50], xmm0
movaps xmmword [rax + 0x40], xmm0
movaps xmmword [rax + 0x30], xmm0
movaps xmmword [rax + 0x20], xmm0
movaps xmmword [rax + 0x10], xmm0
movaps xmmword [rax], xmm0
mov qword [rsp + 0x20], rax
lea rcx, [rsp + 0x188]
mov qword [rsp + 0x120], rdx
mov qword [rsp + 0x128], r8
mov r9, r12
call fcn.140007e6d
lea rcx, [rsp + 0x188]
mov rax, qword [rcx]
mov qword [rsp + 0x150], rax
mov rax, qword [rcx + 8]
mov qword [rsp + 0x148], rax
mov cl, byte [rsp + 0x2a8]
movzx eax, cl
dec rax
mov qword [rsp + 0x140], rax
or r15b, cl
movzx eax, r15b
dec rax
mov qword [rsp + 0x138], rax
mov qword [rsp + 0x158], r12
lea rax, [r12 + 0x80]
mov qword [rsp + 0x130], rax
lea rax, [r13 + 0x80]
mov qword [rsp + 0x110], rax
mov r10, qword [rsp + 0x138]
mov rdx, qword [rsp + 0x140]
mov rcx, qword [rsp + 0x148]
mov rax, qword [rsp + 0x150]
cmp qword [rsp + 0x158], r13
je 0x14000561a
mov rcx, r13
mov rdx, qword [rsp + 0x110]
mov r8, qword [rsp + 0x120]
mov r9, qword [rsp + 0x128]
call fcn.1400053b0
mov ecx, pe_nt_image_headers64
xor r10d, r10d
xor edx, edx
add rdi, rcx
mov qword [rsp + 0x180], rdi
adc r14, 0
mov qword [rsp + 0x178], r14
mov rcx, rax
mov rax, qword [rax]
mov qword [rsp + 0xc8], rax
mov r12, qword [rcx + 8]
mov r13, rcx
mov qword [rsp + 0xa0], r12
mov rcx, qword [rsp + 0xf0]
lea r11, [rcx + rbp]
add r11, rax
mov r9, rdi
movabs rcx, 0x510e527fade682d1
xor r9, rcx
xor r9, r11
rol r9, 0x20
movabs rcx, 0x6a09e667f3bcc908
lea rax, [r9 + rcx]
mov r15, rax
xor r15, rbp
rol r15, 0x28
add r11, r12
add r11, r15
xor r9, r11
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x48], rax
xor r15, rax
rol r15, 1
mov r12, r13
mov rax, qword [r13 + 0x10]
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x170], rbp
mov rcx, qword [rsp + 0xf8]
lea r8, [rbx + rcx]
mov rdi, rbx
mov qword [rsp + 0x168], rbx
add r8, rax
mov r13, r14
movabs rcx, 0x9b05688c2b3e6c1f
xor r13, rcx
xor r13, r8
rol r13, 0x20
movabs rcx, 0xbb67ae8584caa73b
add rcx, r13
mov rbx, rcx
xor rbx, rdi
rol rbx, 0x28
mov rax, qword [r12 + 0x18]
mov qword [rsp + 0x80], rax
add r8, rax
add r8, rbx
mov qword [rsp + 0x50], r8
xor r13, r8
rol r13, 0x30
add rcx, r13
mov qword [rsp + 0x40], rcx
xor rbx, rcx
rol rbx, 1
mov rax, qword [r12 + 0x20]
mov qword [rsp + 0x68], rax
mov rcx, qword [rsp + 0x100]
lea r14, [rsi + rcx]
mov rdi, rsi
mov qword [rsp + 0x160], rsi
add r14, rax
movabs rcx, 0x1f83d9abfb41bd6b
xor rdx, rcx
xor rdx, r14
rol rdx, 0x20
movabs rcx, 0x3c6ef372fe94f82b
lea rbp, [rdx + rcx]
mov rsi, rbp
xor rsi, rdi
rol rsi, 0x28
mov qword [rsp + 0x60], r12
mov rax, qword [r12 + 0x28]
mov qword [rsp + 0xa8], rax
add r14, rax
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rbp, rdx
mov qword [rsp + 0x58], rbp
xor rsi, rbp
rol rsi, 1
mov r12, qword [r12 + 0x30]
mov qword [rsp + 0xb8], r12
mov rcx, qword [rsp + 0xe8]
mov rax, qword [rsp + 0x108]
lea rdi, [rcx + rax]
mov rax, rcx
mov qword [rsp + 0xe8], rcx
add rdi, r12
movabs rcx, 0x5be0cd19137e2179
xor r10, rcx
xor r10, rdi
rol r10, 0x20
movabs rcx, 0xa54ff53a5f1d36f1
lea rbp, [r10 + rcx]
mov r8, rbp
xor r8, rax
rol r8, 0x28
mov r12, qword [rsp + 0x60]
mov rax, qword [r12 + 0x38]
mov qword [rsp + 0xc0], rax
add rdi, rax
add rdi, r8
xor r10, rdi
rol r10, 0x30
add rbp, r10
xor r8, rbp
rol r8, 1
mov rax, qword [r12 + 0x40]
mov qword [rsp + 0xb0], rax
add r11, rax
add r11, rbx
xor r10, r11
rol r10, 0x20
mov rax, qword [rsp + 0x58]
add rax, r10
xor rbx, rax
mov rcx, rax
rol rbx, 0x28
mov rax, qword [r12 + 0x48]
mov qword [rsp + 0x88], rax
add r11, rax
add r11, rbx
xor r10, r11
rol r10, 0x30
mov rax, rcx
add rax, r10
mov qword [rsp + 0x58], rax
xor rbx, rax
rol rbx, 1
mov rax, qword [r12 + 0x50]
mov qword [rsp + 0xd0], rax
mov rcx, qword [rsp + 0x50]
add rcx, rax
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rbp, r9
xor rsi, rbp
rol rsi, 0x28
mov rax, qword [r12 + 0x58]
mov qword [rsp + 0x98], rax
add rcx, rax
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rbp, r9
mov qword [rsp + 0x50], rbp
xor rsi, rbp
rol rsi, 1
mov rax, qword [r12 + 0x60]
mov qword [rsp + 0x70], rax
add r14, rax
add r14, r8
xor r13, r14
rol r13, 0x20
mov rbp, qword [rsp + 0x48]
add rbp, r13
xor r8, rbp
rol r8, 0x28
mov rax, qword [r12 + 0x68]
mov qword [rsp + 0x90], rax
add r14, rax
add r14, r8
xor r13, r14
rol r13, 0x30
add rbp, r13
mov qword [rsp + 0x48], rbp
xor r8, rbp
rol r8, 1
mov rax, r12
mov r12, qword [r12 + 0x70]
mov rbp, qword [rax + 0x78]
add rdi, r12
mov qword [rsp + 0xd8], r12
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, rbp
mov qword [rsp + 0x60], rbp
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
xor r15, rax
rol r15, 1
add r11, r12
add r11, r15
xor r9, r11
rol r9, 0x20
mov r12, qword [rsp + 0x48]
add r12, r9
xor r15, r12
rol r15, 0x28
add r11, qword [rsp + 0xd0]
add r11, r15
xor r9, r11
rol r9, 0x30
add r12, r9
mov qword [rsp + 0x48], r12
xor r15, r12
rol r15, 1
add rcx, qword [rsp + 0x68]
add rcx, rbx
xor r13, rcx
rol r13, 0x20
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0xb0]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
xor rbx, rax
rol rbx, 1
add r14, qword [rsp + 0x88]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov r12, qword [rsp + 0x58]
add r12, rdx
xor rsi, r12
rol rsi, 0x28
add r14, rbp
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add r12, rdx
xor rsi, r12
rol rsi, 1
add rdi, qword [rsp + 0x90]
add rdi, r8
xor r10, rdi
rol r10, 0x20
mov rbp, qword [rsp + 0x50]
add rbp, r10
xor r8, rbp
rol r8, 0x28
add rdi, qword [rsp + 0xb8]
add rdi, r8
xor r10, rdi
rol r10, 0x30
add rbp, r10
xor r8, rbp
rol r8, 1
add r11, qword [rsp + 0xa0]
add r11, rbx
xor r10, r11
rol r10, 0x20
add r12, r10
xor rbx, r12
rol rbx, 0x28
add r11, qword [rsp + 0x70]
add r11, rbx
xor r10, r11
rol r10, 0x30
add r12, r10
mov qword [rsp + 0x58], r12
xor rbx, r12
rol rbx, 1
add rcx, qword [rsp + 0xc8]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rbp, r9
xor rsi, rbp
rol rsi, 0x28
add rcx, qword [rsp + 0x78]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rbp, r9
xor rsi, rbp
rol rsi, 1
add r14, qword [rsp + 0x98]
add r14, r8
xor r13, r14
rol r13, 0x20
mov r12, qword [rsp + 0x48]
add r12, r13
xor r8, r12
rol r8, 0x28
add r14, qword [rsp + 0xc0]
add r14, r8
xor r13, r14
rol r13, 0x30
add r12, r13
mov qword [rsp + 0x48], r12
xor r8, r12
rol r8, 1
mov r12, qword [rsp + 0xa8]
add rdi, r12
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, qword [rsp + 0x80]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
mov qword [rsp + 0x40], rax
xor r15, rax
rol r15, 1
add r11, qword [rsp + 0x98]
add r11, r15
xor r9, r11
rol r9, 0x20
mov rax, qword [rsp + 0x48]
add rax, r9
xor r15, rax
rol r15, 0x28
add r11, qword [rsp + 0xb0]
add r11, r15
xor r9, r11
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x48], rax
xor r15, rax
rol r15, 1
add rcx, qword [rsp + 0x70]
add rcx, rbx
xor r13, rcx
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0xc8]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r14, r12
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov rax, qword [rsp + 0x58]
add rax, rdx
xor rsi, rax
rol rsi, 0x28
add r14, qword [rsp + 0x78]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rax, rdx
xor rsi, rax
rol rsi, 1
add rdi, qword [rsp + 0x60]
add rdi, r8
xor r10, rdi
rol r10, 0x20
add rbp, r10
xor r8, rbp
rol r8, 0x28
add rdi, qword [rsp + 0x90]
add rdi, r8
xor r10, rdi
rol r10, 0x30
add rbp, r10
xor r8, rbp
rol r8, 1
add r11, qword [rsp + 0xd0]
add r11, rbx
xor r10, r11
rol r10, 0x20
add rax, r10
xor rbx, rax
rol rbx, 0x28
add r11, qword [rsp + 0xd8]
add r11, rbx
xor r10, r11
rol r10, 0x30
add rax, r10
mov qword [rsp + 0x58], rax
xor rbx, rax
rol rbx, 1
add rcx, qword [rsp + 0x80]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rbp, r9
xor rsi, rbp
rol rsi, 0x28
add rcx, qword [rsp + 0xb8]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rbp, r9
mov qword [rsp + 0x50], rbp
xor rsi, rbp
rol rsi, 1
mov r12, qword [rsp + 0xc0]
add r14, r12
add r14, r8
xor r13, r14
rol r13, 0x20
mov rax, qword [rsp + 0x48]
add rax, r13
xor r8, rax
rol r8, 0x28
add r14, qword [rsp + 0xa0]
add r14, r8
xor r13, r14
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor r8, rax
rol r8, 1
mov rbp, qword [rsp + 0x88]
add rdi, rbp
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, qword [rsp + 0x68]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
mov qword [rsp + 0x40], rax
xor r15, rax
rol r15, 1
mov rax, r11
add rax, r12
add rax, r15
xor r9, rax
rol r9, 0x20
mov r12, qword [rsp + 0x48]
add r12, r9
xor r15, r12
rol r15, 0x28
add rax, rbp
add rax, r15
xor r9, rax
mov r11, rax
rol r9, 0x30
add r12, r9
xor r15, r12
rol r15, 1
add rcx, qword [rsp + 0x80]
add rcx, rbx
xor r13, rcx
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0xa0]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r14, qword [rsp + 0x90]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov rax, qword [rsp + 0x58]
add rax, rdx
xor rsi, rax
rol rsi, 0x28
add r14, qword [rsp + 0x70]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rax, rdx
xor rsi, rax
rol rsi, 1
add rdi, qword [rsp + 0x98]
add rdi, r8
xor r10, rdi
rol r10, 0x20
mov rbp, qword [rsp + 0x50]
add rbp, r10
xor r8, rbp
rol r8, 0x28
add rdi, qword [rsp + 0xd8]
add rdi, r8
xor r10, rdi
rol r10, 0x30
add rbp, r10
xor r8, rbp
rol r8, 1
add r11, qword [rsp + 0x78]
add r11, rbx
xor r10, r11
rol r10, 0x20
add rax, r10
xor rbx, rax
rol rbx, 0x28
add r11, qword [rsp + 0xb8]
add r11, rbx
xor r10, r11
rol r10, 0x30
add rax, r10
mov qword [rsp + 0x58], rax
xor rbx, rax
rol rbx, 1
add rcx, qword [rsp + 0xa8]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rbp, r9
xor rsi, rbp
rol rsi, 0x28
add rcx, qword [rsp + 0xd0]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rbp, r9
xor rsi, rbp
rol rsi, 1
add r14, qword [rsp + 0x68]
add r14, r8
xor r13, r14
rol r13, 0x20
mov rax, r12
add rax, r13
xor r8, rax
rol r8, 0x28
mov r12, qword [rsp + 0xc8]
add r14, r12
add r14, r8
xor r13, r14
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor r8, rax
rol r8, 1
add rdi, qword [rsp + 0x60]
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, qword [rsp + 0xb0]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
mov qword [rsp + 0x40], rax
xor r15, rax
rol r15, 1
add r11, qword [rsp + 0x88]
add r11, r15
xor r9, r11
rol r9, 0x20
mov rax, qword [rsp + 0x48]
add rax, r9
xor r15, rax
rol r15, 0x28
add r11, r12
add r11, r15
xor r9, r11
rol r9, 0x30
add rax, r9
xor r15, rax
rol r15, 1
add rcx, qword [rsp + 0xa8]
add rcx, rbx
xor r13, rcx
rol r13, 0x20
mov r12, qword [rsp + 0x40]
add r12, r13
xor rbx, r12
rol rbx, 0x28
add rcx, qword [rsp + 0xc0]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add r12, r13
mov qword [rsp + 0x40], r12
xor rbx, r12
rol rbx, 1
add r14, qword [rsp + 0x78]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov r12, qword [rsp + 0x58]
add r12, rdx
xor rsi, r12
rol rsi, 0x28
add r14, qword [rsp + 0x68]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add r12, rdx
xor rsi, r12
rol rsi, 1
add rdi, qword [rsp + 0xd0]
add rdi, r8
xor r10, rdi
rol r10, 0x20
add rbp, r10
xor r8, rbp
rol r8, 0x28
add rdi, qword [rsp + 0x60]
add rdi, r8
xor r10, rdi
rol r10, 0x30
add rbp, r10
xor r8, rbp
rol r8, 1
add r11, qword [rsp + 0xd8]
add r11, rbx
xor r10, r11
rol r10, 0x20
add r12, r10
xor rbx, r12
rol rbx, 0x28
add r11, qword [rsp + 0xa0]
add r11, rbx
mov qword [rsp + 0xe0], r11
xor r10, r11
rol r10, 0x30
add r12, r10
mov qword [rsp + 0x58], r12
xor rbx, r12
rol rbx, 1
add rcx, qword [rsp + 0x98]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rbp, r9
xor rsi, rbp
rol rsi, 0x28
add rcx, qword [rsp + 0x70]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rbp, r9
mov qword [rsp + 0x50], rbp
xor rsi, rbp
rol rsi, 1
mov r11, qword [rsp + 0xb8]
add r14, r11
add r14, r8
xor r13, r14
rol r13, 0x20
add rax, r13
xor r8, rax
rol r8, 0x28
mov rbp, qword [rsp + 0xb0]
add r14, rbp
add r14, r8
xor r13, r14
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor r8, rax
rol r8, 1
add rdi, qword [rsp + 0x80]
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, qword [rsp + 0x90]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
mov qword [rsp + 0x40], rax
xor r15, rax
rol r15, 1
mov r12, qword [rsp + 0xe0]
add r12, qword [rsp + 0x78]
add r12, r15
xor r9, r12
rol r9, 0x20
mov rax, qword [rsp + 0x48]
add rax, r9
xor r15, rax
rol r15, 0x28
add r12, qword [rsp + 0x70]
add r12, r15
xor r9, r12
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x48], rax
xor r15, rax
rol r15, 1
add rcx, r11
add rcx, rbx
xor r13, rcx
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0xd0]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r14, qword [rsp + 0xc8]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov rax, qword [rsp + 0x58]
add rax, rdx
xor rsi, rax
rol rsi, 0x28
add r14, qword [rsp + 0x98]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rax, rdx
xor rsi, rax
rol rsi, 1
add rdi, rbp
add rdi, r8
xor r10, rdi
rol r10, 0x20
mov rbp, qword [rsp + 0x50]
add rbp, r10
xor r8, rbp
rol r8, 0x28
add rdi, qword [rsp + 0x80]
add rdi, r8
xor r10, rdi
rol r10, 0x30
add rbp, r10
xor r8, rbp
rol r8, 1
add r12, qword [rsp + 0x68]
add r12, rbx
xor r10, r12
rol r10, 0x20
add rax, r10
xor rbx, rax
rol rbx, 0x28
add r12, qword [rsp + 0x90]
add r12, rbx
xor r10, r12
rol r10, 0x30
mov qword [rsp + 0xe0], r10
add rax, r10
mov qword [rsp + 0x58], rax
xor rbx, rax
rol rbx, 1
add rcx, qword [rsp + 0xc0]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rbp, r9
xor rsi, rbp
rol rsi, 0x28
add rcx, qword [rsp + 0xa8]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rbp, r9
mov qword [rsp + 0x50], rbp
xor rsi, rbp
rol rsi, 1
add r14, qword [rsp + 0x60]
add r14, r8
xor r13, r14
rol r13, 0x20
mov r10, qword [rsp + 0x48]
add r10, r13
xor r8, r10
rol r8, 0x28
mov r11, qword [rsp + 0xd8]
add r14, r11
add r14, r8
xor r13, r14
rol r13, 0x30
add r10, r13
xor r8, r10
rol r8, 1
mov rbp, qword [rsp + 0xa0]
add rdi, rbp
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, qword [rsp + 0x88]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
xor r15, rax
rol r15, 1
add r12, qword [rsp + 0x70]
add r12, r15
xor r9, r12
rol r9, 0x20
add r10, r9
xor r15, r10
rol r15, 0x28
add r12, qword [rsp + 0xa8]
add r12, r15
xor r9, r12
rol r9, 0x30
add r10, r9
mov qword [rsp + 0x48], r10
xor r15, r10
rol r15, 1
add rcx, rbp
add rcx, rbx
xor r13, rcx
rol r13, 0x20
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0x60]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r14, r11
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov rax, qword [rsp + 0x58]
add rax, rdx
xor rsi, rax
rol rsi, 0x28
add r14, qword [rsp + 0x90]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rax, rdx
xor rsi, rax
mov r11, rax
rol rsi, 1
add rdi, qword [rsp + 0x68]
add rdi, r8
mov rax, qword [rsp + 0xe0]
xor rax, rdi
rol rax, 0x20
mov rbp, qword [rsp + 0x50]
add rbp, rax
xor r8, rbp
rol r8, 0x28
add rdi, qword [rsp + 0xd0]
add rdi, r8
xor rax, rdi
rol rax, 0x30
add rbp, rax
xor r8, rbp
rol r8, 1
mov r10, r12
add r10, qword [rsp + 0xc8]
add r10, rbx
xor rax, r10
rol rax, 0x20
add r11, rax
xor rbx, r11
rol rbx, 0x28
mov r12, qword [rsp + 0xc0]
add r10, r12
add r10, rbx
xor rax, r10
rol rax, 0x30
mov qword [rsp + 0xe0], rax
add r11, rax
mov qword [rsp + 0x58], r11
xor rbx, r11
rol rbx, 1
add rcx, qword [rsp + 0xb8]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rbp, r9
xor rsi, rbp
rol rsi, 0x28
add rcx, qword [rsp + 0x80]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rbp, r9
mov qword [rsp + 0x50], rbp
xor rsi, rbp
rol rsi, 1
add r14, qword [rsp + 0x88]
add r14, r8
xor r13, r14
rol r13, 0x20
mov r11, qword [rsp + 0x48]
add r11, r13
xor r8, r11
rol r8, 0x28
add r14, qword [rsp + 0x78]
add r14, r8
xor r13, r14
rol r13, 0x30
add r11, r13
xor r8, r11
rol r8, 1
add rdi, qword [rsp + 0xb0]
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdx
xor r15, rax
rol r15, 0x28
mov rbp, qword [rsp + 0x98]
add rdi, rbp
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
xor r15, rax
rol r15, 1
add r10, qword [rsp + 0x90]
add r10, r15
xor r9, r10
rol r9, 0x20
add r11, r9
xor r15, r11
rol r15, 0x28
add r10, rbp
add r10, r15
xor r9, r10
rol r9, 0x30
add r11, r9
mov qword [rsp + 0x48], r11
xor r15, r11
rol r15, 1
add rcx, r12
add rcx, rbx
xor r13, rcx
rol r13, 0x20
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0xd8]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
xor rbx, rax
rol rbx, 1
add r14, qword [rsp + 0x70]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov r12, qword [rsp + 0x58]
add r12, rdx
xor rsi, r12
rol rsi, 0x28
add r14, qword [rsp + 0xa0]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add r12, rdx
xor rsi, r12
mov rbp, r12
rol rsi, 1
add rdi, qword [rsp + 0x80]
add rdi, r8
mov r11, qword [rsp + 0xe0]
xor r11, rdi
rol r11, 0x20
mov r12, qword [rsp + 0x50]
add r12, r11
xor r8, r12
rol r8, 0x28
add rdi, qword [rsp + 0x88]
add rdi, r8
xor r11, rdi
rol r11, 0x30
add r12, r11
xor r8, r12
rol r8, 1
add r10, qword [rsp + 0xa8]
add r10, rbx
xor r11, r10
rol r11, 0x20
add rbp, r11
xor rbx, rbp
rol rbx, 0x28
add r10, qword [rsp + 0xc8]
add r10, rbx
xor r11, r10
rol r11, 0x30
add rbp, r11
mov qword [rsp + 0x58], rbp
xor rbx, rbp
rol rbx, 1
add rcx, qword [rsp + 0x60]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add r12, r9
xor rsi, r12
rol rsi, 0x28
add rcx, qword [rsp + 0x68]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add r12, r9
mov qword [rsp + 0x50], r12
xor rsi, r12
rol rsi, 1
add r14, qword [rsp + 0xb0]
add r14, r8
xor r13, r14
rol r13, 0x20
mov r12, qword [rsp + 0x48]
add r12, r13
xor r8, r12
rol r8, 0x28
mov rbp, qword [rsp + 0xb8]
add r14, rbp
add r14, r8
xor r13, r14
rol r13, 0x30
add r12, r13
xor r8, r12
rol r8, 1
add rdi, qword [rsp + 0x78]
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, qword [rsp + 0xd0]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
xor r15, rax
rol r15, 1
add r10, rbp
add r10, r15
xor r9, r10
rol r9, 0x20
add r12, r9
xor r15, r12
rol r15, 0x28
add r10, qword [rsp + 0x60]
add r10, r15
xor r9, r10
rol r9, 0x30
add r12, r9
xor r15, r12
rol r15, 1
add rcx, qword [rsp + 0xd8]
add rcx, rbx
xor r13, rcx
rol r13, 0x20
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0x88]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r14, qword [rsp + 0x98]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
mov rbp, qword [rsp + 0x58]
add rbp, rdx
xor rsi, rbp
rol rsi, 0x28
add r14, qword [rsp + 0x80]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rbp, rdx
xor rsi, rbp
rol rsi, 1
add rdi, qword [rsp + 0xc8]
add rdi, r8
xor r11, rdi
rol r11, 0x20
mov rax, qword [rsp + 0x50]
add rax, r11
xor r8, rax
rol r8, 0x28
add rdi, qword [rsp + 0xb0]
add rdi, r8
xor r11, rdi
rol r11, 0x30
add rax, r11
xor r8, rax
rol r8, 1
add r10, qword [rsp + 0x70]
add r10, rbx
xor r11, r10
rol r11, 0x20
add rbp, r11
xor rbx, rbp
rol rbx, 0x28
add r10, qword [rsp + 0x78]
add r10, rbx
xor r11, r10
rol r11, 0x30
add rbp, r11
xor rbx, rbp
rol rbx, 1
add rcx, qword [rsp + 0x90]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add rax, r9
xor rsi, rax
rol rsi, 0x28
add rcx, qword [rsp + 0xc0]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x50], rax
xor rsi, rax
rol rsi, 1
add r14, qword [rsp + 0xa0]
add r14, r8
xor r13, r14
rol r13, 0x20
add r12, r13
xor r8, r12
rol r8, 0x28
add r14, qword [rsp + 0x68]
add r14, r8
xor r13, r14
rol r13, 0x30
add r12, r13
mov qword [rsp + 0x48], r12
xor r8, r12
rol r8, 1
mov r12, qword [rsp + 0xd0]
add rdi, r12
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdx
xor r15, rax
rol r15, 0x28
add rdi, qword [rsp + 0xa8]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
mov qword [rsp + 0x40], rax
xor r15, rax
rol r15, 1
add r10, r12
add r10, r15
xor r9, r10
rol r9, 0x20
mov rax, qword [rsp + 0x48]
add rax, r9
xor r15, rax
rol r15, 0x28
add r10, qword [rsp + 0x78]
add r10, r15
xor r9, r10
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x48], rax
xor r15, rax
rol r15, 1
add rcx, qword [rsp + 0xb0]
add rcx, rbx
xor r13, rcx
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0x68]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
xor rbx, rax
rol rbx, 1
add r14, qword [rsp + 0xc0]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
add rbp, rdx
xor rsi, rbp
rol rsi, 0x28
add r14, qword [rsp + 0xb8]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rbp, rdx
xor rsi, rbp
rol rsi, 1
add rdi, qword [rsp + 0xa0]
add rdi, r8
xor r11, rdi
rol r11, 0x20
mov r12, qword [rsp + 0x50]
add r12, r11
xor r8, r12
rol r8, 0x28
add rdi, qword [rsp + 0xa8]
add rdi, r8
xor r11, rdi
rol r11, 0x30
add r12, r11
xor r8, r12
rol r8, 1
add r10, qword [rsp + 0x60]
add r10, rbx
xor r11, r10
rol r11, 0x20
add rbp, r11
xor rbx, rbp
rol rbx, 0x28
add r10, qword [rsp + 0x98]
add r10, rbx
xor r11, r10
rol r11, 0x30
add rbp, r11
xor rbx, rbp
rol rbx, 1
add rcx, qword [rsp + 0x88]
add rcx, rsi
xor r9, rcx
rol r9, 0x20
add r12, r9
xor rsi, r12
rol rsi, 0x28
add rcx, qword [rsp + 0xd8]
add rcx, rsi
xor r9, rcx
rol r9, 0x30
add r12, r9
mov qword [rsp + 0x50], r12
xor rsi, r12
rol rsi, 1
add r14, qword [rsp + 0x80]
add r14, r8
xor r13, r14
rol r13, 0x20
mov r12, qword [rsp + 0x48]
add r12, r13
xor r8, r12
rol r8, 0x28
add r14, qword [rsp + 0x70]
add r14, r8
xor r13, r14
rol r13, 0x30
add r12, r13
mov qword [rsp + 0x48], r12
xor r8, r12
rol r8, 1
add rdi, qword [rsp + 0x90]
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
add rax, rdx
xor r15, rax
rol r15, 0x28
mov r12, qword [rsp + 0xc8]
add rdi, r12
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add rax, rdx
xor r15, rax
rol r15, 1
add r10, r12
add r10, r15
xor r9, r10
rol r9, 0x20
mov r12, qword [rsp + 0x48]
add r12, r9
xor r15, r12
rol r15, 0x28
add r10, qword [rsp + 0xa0]
add r10, r15
xor r9, r10
rol r9, 0x30
add r12, r9
mov qword [rsp + 0x48], r12
xor r15, r12
rol r15, 1
add rcx, qword [rsp + 0x78]
add rcx, rbx
xor r13, rcx
rol r13, 0x20
add rax, r13
xor rbx, rax
rol rbx, 0x28
add rcx, qword [rsp + 0x80]
add rcx, rbx
xor r13, rcx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add r14, qword [rsp + 0x68]
add r14, rsi
xor rdx, r14
rol rdx, 0x20
add rbp, rdx
xor rsi, rbp
rol rsi, 0x28
add r14, qword [rsp + 0xa8]
add r14, rsi
xor rdx, r14
rol rdx, 0x30
add rbp, rdx
xor rsi, rbp
rol rsi, 1
add rdi, qword [rsp + 0xb8]
add rdi, r8
xor r11, rdi
rol r11, 0x20
mov r12, qword [rsp + 0x50]
add r12, r11
xor r8, r12
rol r8, 0x28
add rdi, qword [rsp + 0xc0]
add rdi, r8
xor r11, rdi
rol r11, 0x30
add r12, r11
add r10, qword [rsp + 0xb0]
add r10, rbx
xor r11, r10
rol r11, 0x20
add rbp, r11
mov qword [rsp + 0x58], rbp
xor rbx, rbp
rol rbx, 0x28
add r10, qword [rsp + 0x88]
add r10, rbx
xor r11, r10
mov rax, qword [rsp + 0xd8]
add rdi, rax
add r10, rax
mov qword [rsp + 0xe0], r10
mov rax, r12
xor r8, r12
mov rbp, qword [rsp + 0xd0]
mov r10, rcx
add r10, rbp
add r10, rsi
xor r9, r10
rol r9, 0x20
add rax, r9
xor rsi, rax
rol rsi, 0x28
add r10, qword [rsp + 0x98]
add r10, rsi
xor r9, r10
rol r9, 0x30
add rdi, r15
xor rdx, rdi
rol rdx, 0x20
mov r12, qword [rsp + 0x40]
add r12, rdx
xor r15, r12
rol r15, 0x28
add rax, r9
mov qword [rsp + 0x50], rax
add rdi, qword [rsp + 0x60]
add rdi, r15
xor rdx, rdi
rol rdx, 0x30
add r12, rdx
mov qword [rsp + 0x40], r12
xor r15, r12
rol r15, 1
mov rcx, qword [rsp + 0xe0]
add rcx, r15
xor r9, rcx
add rcx, rbp
mov rbp, rcx
add r10, qword [rsp + 0x68]
rol r8, 1
rol r11, 0x30
mov rcx, qword [rsp + 0x58]
add rcx, r11
mov qword [rsp + 0x58], rcx
xor rbx, rcx
rol rbx, 1
add r14, qword [rsp + 0x70]
add r14, r8
xor r13, r14
rol r13, 0x20
mov r12, qword [rsp + 0x48]
add r12, r13
xor r8, r12
rol r8, 0x28
mov rcx, rdx
mov rdx, qword [rsp + 0x90]
add r14, rdx
add r14, r8
xor r13, r14
rol r13, 0x30
add r12, r13
add r10, rbx
xor r13, r10
add r10, qword [rsp + 0xb0]
add r14, qword [rsp + 0x88]
xor rsi, rax
rol rsi, 1
add r14, rsi
xor rcx, r14
add r14, qword [rsp + 0x60]
add rdi, rdx
xor r8, r12
rol r8, 1
add rdi, r8
xor r11, rdi
add rdi, qword [rsp + 0xb8]
rol r9, 0x20
add r12, r9
xor r15, r12
rol r15, 0x28
add rbp, r15
xor r9, rbp
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rbx, rax
rol rbx, 0x28
add r10, rbx
xor r13, r10
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rbx, rax
rol rbx, 1
add rbp, qword [rsp + 0xa0]
rol r11, 0x20
mov rax, qword [rsp + 0x50]
add rax, r11
xor r8, rax
rol r8, 0x28
add rdi, r8
xor r11, rdi
rol r11, 0x30
add rax, r11
mov qword [rsp + 0x50], rax
add rbp, rbx
xor r11, rbp
add rbp, qword [rsp + 0x70]
add r10, qword [rsp + 0xc8]
rol r9, 0x30
rol rcx, 0x20
mov rdx, qword [rsp + 0x58]
add rdx, rcx
xor rsi, rdx
rol rsi, 0x28
add r14, rsi
xor rcx, r14
rol rcx, 0x30
add rdx, rcx
xor rsi, rdx
rol rsi, 1
add r12, r9
add r10, rsi
xor r9, r10
add r10, qword [rsp + 0x78]
add r14, qword [rsp + 0x98]
xor r8, rax
rol r8, 1
add r14, r8
xor r13, r14
add r14, qword [rsp + 0xc0]
add rdi, qword [rsp + 0xa8]
xor r15, r12
rol r15, 1
add rdi, r15
xor rcx, rdi
add rdi, qword [rsp + 0x80]
rol r11, 0x20
add rdx, r11
xor rbx, rdx
rol rbx, 0x28
add rbp, rbx
xor r11, rbp
rol r13, 0x20
add r12, r13
xor r8, r12
rol r8, 0x28
add r14, r8
xor r13, r14
rol r13, 0x30
mov rax, qword [rsp + 0xf0]
xor rax, rbp
add r12, r13
xor r8, r12
xor rax, r12
mov qword [rsp + 0xf0], rax
rol r9, 0x20
mov rax, qword [rsp + 0x50]
add rax, r9
xor rsi, rax
mov r12, rax
rol rsi, 0x28
add r10, rsi
xor r9, r10
mov rax, qword [rsp + 0xf8]
xor rax, r10
mov rbp, qword [rsp + 0x170]
rol rcx, 0x20
mov r10, qword [rsp + 0x40]
add r10, rcx
xor r15, r10
rol r15, 0x28
add rdi, r15
xor rcx, rdi
rol rcx, 0x30
add r10, rcx
xor r15, r10
xor rax, r10
mov qword [rsp + 0xf8], rax
rol r11, 0x30
xor qword [rsp + 0x100], r14
mov r14, qword [rsp + 0x178]
add rdx, r11
xor rbx, rdx
xor qword [rsp + 0x100], rdx
xor qword [rsp + 0x108], rdi
mov rdi, qword [rsp + 0x180]
rol r9, 0x30
add r12, r9
xor rsi, r12
xor qword [rsp + 0x108], r12
rol r15, 1
xor rbp, r9
xor rbp, r15
rol rbx, 1
mov rax, qword [rsp + 0x168]
xor rax, r13
xor rax, rbx
mov rbx, rax
rol rsi, 1
mov rax, qword [rsp + 0x160]
xor rax, rcx
xor rax, rsi
mov rsi, rax
rol r8, 1
mov rax, qword [rsp + 0xe8]
xor rax, r11
xor rax, r8
mov qword [rsp + 0xe8], rax
mov rax, qword [rsp + 0x110]
mov r13, rax
cmp qword [rsp + 0x130], rax
jne 0x1400055b7
mov rax, qword [rsp + 0x118]
mov rcx, qword [rsp + 0xf0]
mov qword [rax], rcx
mov rcx, qword [rsp + 0xf8]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rax + 0x10], rcx
mov rcx, qword [rsp + 0x108]
mov qword [rax + 0x18], rcx
mov qword [rax + 0x20], rbp
mov qword [rax + 0x28], rbx
mov qword [rax + 0x30], rsi
mov rcx, qword [rsp + 0xe8]
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