Function at 0x14000840e
Capabilities:
Hash data using sha512

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x218
mov rsi, r9
mov rax, qword [rsp + 0x288]
mov r9, qword [rsp + 0x280]
mov r15b, byte [rsp + 0x298]
mov r14b, byte [rsp + 0x290]
cmp cl, 2
jne 0x14000846b
mov byte [rsp + 0x30], r15b
mov byte [rsp + 0x28], r14b
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, r8
mov r8, rsi
call fcn.140009f65
jmp 0x140009f4d
mov qword [rsp + 0x148], rax
mov qword [rsp + 0x150], r9
mov rax, qword [rsi]
mov qword [rsp + 0xf8], rax
mov rax, qword [rsi + 8]
mov qword [rsp + 0x100], rax
mov rax, qword [rsi + 0x10]
mov qword [rsp + 0xf0], rax
mov r12, qword [rsi + 0x18]
mov rbp, qword [rsi + 0x20]
mov rbx, qword [rsi + 0x28]
mov rax, qword [rsi + 0x30]
mov qword [rsp + 0xe0], rax
mov rax, qword [rsi + 0x38]
mov qword [rsp + 0x108], rax
xor ecx, ecx
mov rax, r8
sub rax, 1
cmovae rcx, rax
and rcx, 0xffffffffffffff80
xorps xmm0, 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 rcx, r8
mov rax, rcx
cmova rax, r8
movaps xmmword [rsp + 0x190], xmm0
mov qword [rsp + 0x170], rdx
add rdx, rax
mov qword [rsp + 0x158], r8
sub r8, rax
cmp r8, 0x7f
mov qword [rsp + 0x138], rcx
jbe 0x14000855b
mov eax, 0x80
mov qword [rsp + 0x130], rax
mov qword [rsp + 0x128], rdx
jmp 0x140008580
lea rcx, [rsp + 0x190]
mov qword [rsp + 0x128], rcx
mov qword [rsp + 0x130], r8
call fcn.140019390
mov rcx, qword [rsp + 0x138]
movzx eax, r15b
dec rax
mov qword [rsp + 0x168], rax
or r14b, r15b
movzx eax, r14b
dec rax
mov qword [rsp + 0x160], rax
xor edx, edx
mov qword [rsp + 0x178], rsi
cmp rdx, rcx
mov qword [rsp + 0x188], rdx
jne 0x1400085e9
lea rax, [rdx + 0x80]
mov qword [rsp + 0x140], rax
mov r13, qword [rsp + 0x160]
mov r8, qword [rsp + 0x168]
mov rcx, qword [rsp + 0x130]
mov rax, qword [rsp + 0x128]
jmp 0x140008625
mov rcx, rdx
sub rcx, 0xffffffffffffff80
mov rax, qword [rsp + 0x170]
je 0x140009f61
cmp rcx, qword [rsp + 0x158]
ja 0x140009f61
mov rsi, rcx
add rax, rdx
mov ecx, 0x80
xor r13d, r13d
xor r8d, r8d
mov qword [rsp + 0x140], rsi
mov rdi, qword [rsp + 0x150]
add rdi, rcx
mov r9, qword [rsp + 0x148]
adc r9, 0
mov rdx, rax
mov rax, qword [rax]
mov qword [rsp + 0xd8], rax
mov rsi, qword [rdx + 8]
mov qword [rsp + 0x68], rsi
mov r14, qword [rdx + 0x10]
mov qword [rsp + 0x80], r14
mov rcx, qword [rsp + 0xf8]
lea r15, [rcx + rbp]
add r15, rax
mov qword [rsp + 0x150], rdi
movabs rcx, 0x510e527fade682d1
xor rdi, rcx
xor rdi, r15
rol rdi, 0x20
movabs rcx, 0x6a09e667f3bcc908
add rcx, rdi
mov rax, rcx
xor rax, rbp
rol rax, 0x28
add r15, rsi
add r15, rax
xor rdi, r15
rol rdi, 0x30
add rcx, rdi
mov qword [rsp + 0x58], rcx
xor rax, rcx
rol rax, 1
mov qword [rsp + 0x110], rax
mov qword [rsp + 0x120], rbx
mov rcx, qword [rsp + 0x120]
mov qword [rsp + 0x180], rbp
mov rax, qword [rsp + 0x100]
lea r10, [rax + rcx]
add r10, r14
mov qword [rsp + 0x148], r9
movabs rcx, 0x9b05688c2b3e6c1f
xor r9, rcx
xor r9, r10
rol r9, 0x20
movabs rcx, 0xbb67ae8584caa73b
add rcx, r9
mov rsi, rcx
xor rsi, qword [rsp + 0x120]
rol rsi, 0x28
mov rax, qword [rdx + 0x18]
mov qword [rsp + 0x88], rax
add r10, rax
add r10, rsi
xor r9, r10
rol r9, 0x30
add rcx, r9
mov qword [rsp + 0x50], rcx
xor rsi, rcx
rol rsi, 1
mov rax, qword [rdx + 0x20]
mov qword [rsp + 0xc8], rax
mov rcx, qword [rsp + 0xf0]
mov rbp, qword [rsp + 0xe0]
lea r14, [rcx + rbp]
add r14, rax
movabs rcx, 0x1f83d9abfb41bd6b
xor r8, rcx
xor r8, r14
rol r8, 0x20
movabs rcx, 0x3c6ef372fe94f82b
add rcx, r8
mov r11, rcx
xor r11, qword [rsp + 0xe0]
rol r11, 0x28
mov rax, qword [rdx + 0x28]
mov qword [rsp + 0x70], rax
add r14, rax
add r14, r11
xor r8, r14
rol r8, 0x30
add rcx, r8
mov qword [rsp + 0x48], rcx
xor r11, rcx
rol r11, 1
mov rax, qword [rdx + 0x30]
mov qword [rsp + 0xb0], rax
mov qword [rsp + 0x118], r12
mov rcx, qword [rsp + 0x118]
mov rbx, qword [rsp + 0x108]
lea r12, [rbx + rcx]
add r12, rax
movabs rcx, 0x5be0cd19137e2179
xor r13, rcx
xor r13, r12
rol r13, 0x20
movabs rcx, 0xa54ff53a5f1d36f1
lea rbp, [rcx + r13]
mov rcx, rbp
xor rcx, rbx
rol rcx, 0x28
mov rax, qword [rdx + 0x38]
mov qword [rsp + 0x90], rax
add r12, rax
add r12, rcx
xor r13, r12
rol r13, 0x30
add rbp, r13
xor rcx, rbp
rol rcx, 1
mov rax, qword [rdx + 0x40]
mov qword [rsp + 0x78], rax
add r15, rax
add r15, rsi
xor r13, r15
rol r13, 0x20
mov rax, qword [rsp + 0x48]
add rax, r13
xor rsi, rax
rol rsi, 0x28
mov rbx, qword [rdx + 0x48]
mov qword [rsp + 0xa0], rbx
add r15, rbx
add r15, rsi
xor r13, r15
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor rsi, rax
rol rsi, 1
mov rax, qword [rdx + 0x50]
mov qword [rsp + 0xc0], rax
add r10, rax
add r10, r11
xor rdi, r10
rol rdi, 0x20
add rbp, rdi
xor r11, rbp
rol r11, 0x28
mov rax, qword [rdx + 0x58]
mov qword [rsp + 0xd0], rax
add r10, rax
add r10, r11
xor rdi, r10
rol rdi, 0x30
add rbp, rdi
mov qword [rsp + 0x40], rbp
xor r11, rbp
rol r11, 1
mov rbp, rdx
mov rax, qword [rdx + 0x60]
mov qword [rsp + 0xa8], rax
add r14, rax
add r14, rcx
xor r9, r14
rol r9, 0x20
mov rbx, qword [rsp + 0x58]
add rbx, r9
xor rcx, rbx
rol rcx, 0x28
mov rax, qword [rdx + 0x68]
mov qword [rsp + 0xb8], rax
mov rdx, qword [rdx + 0x70]
mov qword [rsp + 0x98], rdx
mov rdx, qword [rbp + 0x78]
mov qword [rsp + 0x60], rdx
add r14, rax
add r14, rcx
mov qword [rsp + 0xe8], r14
xor r9, r14
rol r9, 0x30
add rbx, r9
xor rcx, rbx
mov rbp, rbx
rol rcx, 1
mov rdx, qword [rsp + 0x110]
add r12, rdx
mov r14, qword [rsp + 0x98]
add r12, r14
xor r8, r12
rol r8, 0x20
mov rbx, qword [rsp + 0x50]
add rbx, r8
xor rdx, rbx
rol rdx, 0x28
add r12, qword [rsp + 0x60]
add r12, rdx
xor r8, r12
rol r8, 0x30
add rbx, r8
xor rdx, rbx
mov rax, rbx
rol rdx, 1
mov rbx, r15
add rbx, r14
add rbx, rdx
xor rdi, rbx
rol rdi, 0x20
add rbp, rdi
xor rdx, rbp
rol rdx, 0x28
add rbx, qword [rsp + 0xc0]
add rbx, rdx
xor rdi, rbx
rol rdi, 0x30
add rbp, rdi
xor rdx, rbp
mov r15, rbp
rol rdx, 1
mov rbp, rdx
add r10, qword [rsp + 0xc8]
add r10, rsi
xor r9, r10
rol r9, 0x20
add rax, r9
xor rsi, rax
rol rsi, 0x28
add r10, qword [rsp + 0x78]
add r10, rsi
xor r9, r10
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x50], rax
xor rsi, rax
rol rsi, 1
mov rdx, qword [rsp + 0xe8]
add rdx, qword [rsp + 0xa0]
add rdx, r11
xor r8, rdx
rol r8, 0x20
mov rax, qword [rsp + 0x48]
add rax, r8
xor r11, rax
rol r11, 0x28
add rdx, qword [rsp + 0x60]
add rdx, r11
xor r8, rdx
rol r8, 0x30
add rax, r8
mov qword [rsp + 0x48], rax
xor r11, rax
rol r11, 1
add r12, qword [rsp + 0xb8]
add r12, rcx
xor r13, r12
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0xb0]
add r12, rcx
xor r13, r12
rol r13, 0x30
add rax, r13
xor rcx, rax
mov r14, rax
rol rcx, 1
add rbx, qword [rsp + 0x68]
add rbx, rsi
xor r13, rbx
rol r13, 0x20
mov rax, qword [rsp + 0x48]
add rax, r13
xor rsi, rax
rol rsi, 0x28
add rbx, qword [rsp + 0xa8]
add rbx, rsi
xor r13, rbx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor rsi, rax
rol rsi, 1
add r10, qword [rsp + 0xd8]
add r10, r11
xor rdi, r10
rol rdi, 0x20
mov rax, r14
add rax, rdi
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0x80]
add r10, r11
xor rdi, r10
rol rdi, 0x30
add rax, rdi
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
mov r14, qword [rsp + 0xd0]
add rdx, r14
add rdx, rcx
xor r9, rdx
rol r9, 0x20
add r15, r9
xor rcx, r15
rol rcx, 0x28
add rdx, qword [rsp + 0x90]
add rdx, rcx
xor r9, rdx
mov rax, rdx
rol r9, 0x30
add r15, r9
xor rcx, r15
rol rcx, 1
add r12, qword [rsp + 0x70]
add r12, rbp
xor r8, r12
rol r8, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, r8
xor rbp, rdx
rol rbp, 0x28
add r12, qword [rsp + 0x88]
add r12, rbp
xor r8, r12
rol r8, 0x30
add rdx, r8
xor rbp, rdx
rol rbp, 1
add rbx, r14
add rbx, rbp
xor rdi, rbx
rol rdi, 0x20
add r15, rdi
xor rbp, r15
rol rbp, 0x28
add rbx, qword [rsp + 0x78]
add rbx, rbp
xor rdi, rbx
rol rdi, 0x30
add r15, rdi
mov qword [rsp + 0x58], r15
xor rbp, r15
rol rbp, 1
add r10, qword [rsp + 0xa8]
add r10, rsi
xor r9, r10
rol r9, 0x20
add rdx, r9
xor rsi, rdx
rol rsi, 0x28
add r10, qword [rsp + 0xd8]
add r10, rsi
xor r9, r10
rol r9, 0x30
add rdx, r9
mov qword [rsp + 0x50], rdx
xor rsi, rdx
rol rsi, 1
mov rdx, rax
add rdx, qword [rsp + 0x70]
add rdx, r11
xor r8, rdx
rol r8, 0x20
mov rax, qword [rsp + 0x48]
add rax, r8
xor r11, rax
rol r11, 0x28
add rdx, qword [rsp + 0x80]
add rdx, r11
xor r8, rdx
mov r14, rdx
rol r8, 0x30
add rax, r8
xor r11, rax
mov r15, rax
rol r11, 1
add r12, qword [rsp + 0x60]
add r12, rcx
xor r13, r12
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0xb8]
add r12, rcx
xor r13, r12
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rcx, rax
rol rcx, 1
add rbx, qword [rsp + 0xc0]
add rbx, rsi
xor r13, rbx
rol r13, 0x20
mov rax, r15
add rax, r13
xor rsi, rax
rol rsi, 0x28
add rbx, qword [rsp + 0x98]
add rbx, rsi
xor r13, rbx
mov r15, rbx
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor rsi, rax
rol rsi, 1
add r10, qword [rsp + 0x88]
add r10, r11
xor rdi, r10
rol rdi, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdi
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0xb0]
add r10, r11
xor rdi, r10
rol rdi, 0x30
add rax, rdi
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
add r14, qword [rsp + 0x90]
add r14, rcx
xor r9, r14
rol r9, 0x20
mov rax, qword [rsp + 0x58]
add rax, r9
xor rcx, rax
rol rcx, 0x28
add r14, qword [rsp + 0x68]
add r14, rcx
xor r9, r14
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x58], rax
xor rcx, rax
rol rcx, 1
mov rax, qword [rsp + 0xa0]
add r12, rax
mov rbx, rbp
add r12, rbp
xor r8, r12
rol r8, 0x20
mov rdx, qword [rsp + 0x50]
add rdx, r8
xor rbx, rdx
rol rbx, 0x28
add r12, qword [rsp + 0xc8]
add r12, rbx
xor r8, r12
rol r8, 0x30
add rdx, r8
xor rbx, rdx
rol rbx, 1
add r15, qword [rsp + 0x90]
add r15, rbx
xor rdi, r15
rol rdi, 0x20
mov rbp, qword [rsp + 0x58]
add rbp, rdi
xor rbx, rbp
rol rbx, 0x28
add r15, rax
add r15, rbx
xor rdi, r15
rol rdi, 0x30
add rbp, rdi
xor rbx, rbp
rol rbx, 1
add r10, qword [rsp + 0x88]
add r10, rsi
xor r9, r10
rol r9, 0x20
add rdx, r9
xor rsi, rdx
rol rsi, 0x28
add r10, qword [rsp + 0x68]
add r10, rsi
xor r9, r10
rol r9, 0x30
add rdx, r9
xor rsi, rdx
rol rsi, 1
add r14, qword [rsp + 0xb8]
add r14, r11
xor r8, r14
rol r8, 0x20
mov rax, qword [rsp + 0x48]
add rax, r8
xor r11, rax
rol r11, 0x28
add r14, qword [rsp + 0xa8]
add r14, r11
xor r8, r14
rol r8, 0x30
add rax, r8
mov qword [rsp + 0x48], rax
xor r11, rax
rol r11, 1
add r12, qword [rsp + 0xd0]
add r12, rcx
xor r13, r12
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0x98]
add r12, rcx
xor r13, r12
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rcx, rax
rol rcx, 1
add r15, qword [rsp + 0x80]
add r15, rsi
xor r13, r15
rol r13, 0x20
mov rax, qword [rsp + 0x48]
add rax, r13
xor rsi, rax
rol rsi, 0x28
add r15, qword [rsp + 0xb0]
add r15, rsi
xor r13, r15
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor rsi, rax
rol rsi, 1
add r10, qword [rsp + 0x70]
add r10, r11
xor rdi, r10
rol rdi, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdi
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0xc0]
add r10, r11
xor rdi, r10
rol rdi, 0x30
add rax, rdi
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
add r14, qword [rsp + 0xc8]
add r14, rcx
xor r9, r14
rol r9, 0x20
add rbp, r9
xor rcx, rbp
rol rcx, 0x28
mov rax, qword [rsp + 0xd8]
add r14, rax
add r14, rcx
xor r9, r14
rol r9, 0x30
add rbp, r9
xor rcx, rbp
rol rcx, 1
add r12, qword [rsp + 0x60]
add r12, rbx
xor r8, r12
rol r8, 0x20
add rdx, r8
xor rbx, rdx
rol rbx, 0x28
add r12, qword [rsp + 0x78]
add r12, rbx
xor r8, r12
rol r8, 0x30
add rdx, r8
xor rbx, rdx
rol rbx, 1
add r15, qword [rsp + 0xa0]
add r15, rbx
xor rdi, r15
rol rdi, 0x20
add rbp, rdi
xor rbx, rbp
rol rbx, 0x28
add r15, rax
add r15, rbx
xor rdi, r15
rol rdi, 0x30
add rbp, rdi
xor rbx, rbp
rol rbx, 1
add r10, qword [rsp + 0x70]
add r10, rsi
xor r9, r10
rol r9, 0x20
add rdx, r9
xor rsi, rdx
rol rsi, 0x28
add r10, qword [rsp + 0x90]
add r10, rsi
xor r9, r10
rol r9, 0x30
add rdx, r9
xor rsi, rdx
rol rsi, 1
add r14, qword [rsp + 0x80]
add r14, r11
xor r8, r14
rol r8, 0x20
mov rax, qword [rsp + 0x48]
add rax, r8
xor r11, rax
rol r11, 0x28
add r14, qword [rsp + 0xc8]
add r14, r11
xor r8, r14
rol r8, 0x30
add rax, r8
mov qword [rsp + 0x48], rax
xor r11, rax
rol r11, 1
add r12, qword [rsp + 0xc0]
add r12, rcx
xor r13, r12
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0x60]
add r12, rcx
xor r13, r12
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rcx, rax
rol rcx, 1
add r15, qword [rsp + 0x98]
add r15, rsi
xor r13, r15
rol r13, 0x20
mov rax, qword [rsp + 0x48]
add rax, r13
xor rsi, rax
rol rsi, 0x28
add r15, qword [rsp + 0x68]
add r15, rsi
xor r13, r15
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor rsi, rax
rol rsi, 1
mov qword [rsp + 0x50], rsi
add r10, qword [rsp + 0xd0]
add r10, r11
xor rdi, r10
rol rdi, 0x20
mov rax, qword [rsp + 0x40]
add rax, rdi
xor r11, rax
rol r11, 0x28
mov rsi, qword [rsp + 0xa8]
add r10, rsi
add r10, r11
xor rdi, r10
rol rdi, 0x30
add rax, rdi
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
add r14, qword [rsp + 0xb0]
add r14, rcx
xor r9, r14
rol r9, 0x20
add rbp, r9
xor rcx, rbp
rol rcx, 0x28
add r14, qword [rsp + 0x78]
add r14, rcx
xor r9, r14
rol r9, 0x30
add rbp, r9
xor rcx, rbp
rol rcx, 1
add r12, qword [rsp + 0x88]
add r12, rbx
xor r8, r12
rol r8, 0x20
add rdx, r8
xor rbx, rdx
rol rbx, 0x28
add r12, qword [rsp + 0xb8]
add r12, rbx
xor r8, r12
rol r8, 0x30
add rdx, r8
xor rbx, rdx
rol rbx, 1
add r15, qword [rsp + 0x80]
add r15, rbx
xor rdi, r15
rol rdi, 0x20
add rbp, rdi
xor rbx, rbp
rol rbx, 0x28
add r15, rsi
add r15, rbx
xor rdi, r15
rol rdi, 0x30
mov rax, rbp
add rax, rdi
mov qword [rsp + 0x58], rax
mov rbp, rdi
xor rbx, rax
rol rbx, 1
add r10, qword [rsp + 0xb0]
mov rsi, qword [rsp + 0x50]
add r10, rsi
xor r9, r10
rol r9, 0x20
add rdx, r9
xor rsi, rdx
rol rsi, 0x28
add r10, qword [rsp + 0xc0]
add r10, rsi
xor r9, r10
rol r9, 0x30
add rdx, r9
xor rsi, rdx
rol rsi, 1
add r14, qword [rsp + 0xd8]
add r14, r11
xor r8, r14
rol r8, 0x20
mov rax, qword [rsp + 0x48]
add rax, r8
xor r11, rax
rol r11, 0x28
add r14, qword [rsp + 0xd0]
add r14, r11
xor r8, r14
rol r8, 0x30
add rax, r8
xor r11, rax
mov rdi, rax
rol r11, 1
add r12, qword [rsp + 0x78]
add r12, rcx
xor r13, r12
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0x88]
add r12, rcx
xor r13, r12
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rcx, rax
rol rcx, 1
add r15, qword [rsp + 0xc8]
add r15, rsi
xor r13, r15
rol r13, 0x20
mov rax, rdi
add rax, r13
xor rsi, rax
rol rsi, 0x28
add r15, qword [rsp + 0xb8]
add r15, rsi
xor r13, r15
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x48], rax
xor rsi, rax
rol rsi, 1
add r10, qword [rsp + 0x90]
add r10, r11
xor rbp, r10
rol rbp, 0x20
mov rax, qword [rsp + 0x40]
add rax, rbp
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0x70]
add r10, r11
xor rbp, r10
rol rbp, 0x30
add rax, rbp
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
add r14, qword [rsp + 0x60]
add r14, rcx
xor r9, r14
rol r9, 0x20
mov rdi, qword [rsp + 0x58]
add rdi, r9
xor rcx, rdi
rol rcx, 0x28
add r14, qword [rsp + 0x98]
add r14, rcx
xor r9, r14
rol r9, 0x30
add rdi, r9
xor rcx, rdi
rol rcx, 1
add r12, qword [rsp + 0x68]
add r12, rbx
xor r8, r12
rol r8, 0x20
add rdx, r8
xor rbx, rdx
rol rbx, 0x28
add r12, qword [rsp + 0xa0]
add r12, rbx
xor r8, r12
rol r8, 0x30
add rdx, r8
xor rbx, rdx
rol rbx, 1
add r15, qword [rsp + 0xa8]
add r15, rbx
xor rbp, r15
rol rbp, 0x20
add rdi, rbp
xor rbx, rdi
rol rbx, 0x28
add r15, qword [rsp + 0x70]
add r15, rbx
xor rbp, r15
rol rbp, 0x30
mov qword [rsp + 0x110], rbp
add rdi, rbp
xor rbx, rdi
rol rbx, 1
add r10, qword [rsp + 0x68]
mov rax, rsi
add r10, rsi
xor r9, r10
rol r9, 0x20
add rdx, r9
xor rax, rdx
rol rax, 0x28
add r10, qword [rsp + 0x60]
add r10, rax
xor r9, r10
rol r9, 0x30
add rdx, r9
mov qword [rsp + 0x50], rdx
xor rax, rdx
rol rax, 1
mov rsi, rax
add r14, qword [rsp + 0x98]
add r14, r11
xor r8, r14
rol r8, 0x20
mov rbp, qword [rsp + 0x48]
add rbp, r8
xor r11, rbp
rol r11, 0x28
add r14, qword [rsp + 0xb8]
add r14, r11
mov qword [rsp + 0xe8], r14
xor r8, r14
rol r8, 0x30
add rbp, r8
xor r11, rbp
rol r11, 1
add r12, qword [rsp + 0xc8]
add r12, rcx
xor r13, r12
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0xc0]
add r12, rcx
xor r13, r12
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor rcx, rax
rol rcx, 1
mov rax, r15
add rax, qword [rsp + 0xd8]
add rax, rsi
xor r13, rax
rol r13, 0x20
mov rdx, r8
add rbp, r13
xor rsi, rbp
rol rsi, 0x28
add rax, qword [rsp + 0x90]
add rax, rsi
xor r13, rax
mov r8, rax
rol r13, 0x30
mov qword [rsp + 0x58], r13
add rbp, r13
mov qword [rsp + 0x48], rbp
mov r15, rsi
xor r15, rbp
rol r15, 1
add r10, qword [rsp + 0xb0]
add r10, r11
mov r13, qword [rsp + 0x110]
xor r13, r10
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0x88]
add r10, r11
xor r13, r10
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
mov rsi, qword [rsp + 0xe8]
add rsi, qword [rsp + 0xa0]
add rsi, rcx
xor r9, rsi
rol r9, 0x20
add rdi, r9
xor rcx, rdi
rol rcx, 0x28
add rsi, qword [rsp + 0x80]
add rsi, rcx
xor r9, rsi
rol r9, 0x30
add rdi, r9
xor rcx, rdi
mov rbp, rdi
rol rcx, 1
add r12, qword [rsp + 0x78]
mov r14, rbx
add r12, rbx
xor rdx, r12
rol rdx, 0x20
mov rbx, qword [rsp + 0x50]
add rbx, rdx
xor r14, rbx
rol r14, 0x28
mov rax, qword [rsp + 0xd0]
add r12, rax
add r12, r14
xor rdx, r12
rol rdx, 0x30
add rbx, rdx
xor r14, rbx
rol r14, 1
add r8, qword [rsp + 0xb8]
add r8, r14
xor r13, r8
rol r13, 0x20
add rbp, r13
xor r14, rbp
rol r14, 0x28
add r8, rax
add r8, r14
xor r13, r8
rol r13, 0x30
add rbp, r13
xor r14, rbp
rol r14, 1
add r10, qword [rsp + 0x90]
add r10, r15
xor r9, r10
rol r9, 0x20
add rbx, r9
xor r15, rbx
rol r15, 0x28
add r10, qword [rsp + 0x98]
add r10, r15
xor r9, r10
rol r9, 0x30
add rbx, r9
mov qword [rsp + 0x50], rbx
xor r15, rbx
rol r15, 1
mov rdi, r15
add rsi, qword [rsp + 0xa8]
add rsi, r11
xor rdx, rsi
rol rdx, 0x20
mov rax, qword [rsp + 0x48]
add rax, rdx
xor r11, rax
rol r11, 0x28
add rsi, qword [rsp + 0x68]
add rsi, r11
xor rdx, rsi
rol rdx, 0x30
add rax, rdx
xor r11, rax
mov r15, rax
rol r11, 1
add r12, qword [rsp + 0x88]
add r12, rcx
mov rbx, qword [rsp + 0x58]
xor rbx, r12
rol rbx, 0x20
mov rax, qword [rsp + 0x40]
add rax, rbx
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0xa0]
add r12, rcx
xor rbx, r12
rol rbx, 0x30
add rax, rbx
xor rcx, rax
rol rcx, 1
add r8, qword [rsp + 0x70]
add r8, rdi
xor rbx, r8
rol rbx, 0x20
add r15, rbx
xor rdi, r15
rol rdi, 0x28
add r8, qword [rsp + 0xd8]
add r8, rdi
xor rbx, r8
rol rbx, 0x30
mov qword [rsp + 0x58], rbx
add r15, rbx
mov qword [rsp + 0x48], r15
xor rdi, r15
rol rdi, 1
mov r15, qword [rsp + 0x60]
add r10, r15
add r10, r11
xor r13, r10
rol r13, 0x20
add rax, r13
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0xc8]
add r10, r11
xor r13, r10
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
add rsi, qword [rsp + 0x78]
add rsi, rcx
xor r9, rsi
rol r9, 0x20
add rbp, r9
xor rcx, rbp
mov rbx, rbp
rol rcx, 0x28
mov rax, qword [rsp + 0xb0]
add rsi, rax
add rsi, rcx
xor r9, rsi
rol r9, 0x30
add rbx, r9
xor rcx, rbx
rol rcx, 1
add r12, qword [rsp + 0x80]
add r12, r14
xor rdx, r12
rol rdx, 0x20
mov rbp, qword [rsp + 0x50]
add rbp, rdx
xor r14, rbp
rol r14, 0x28
add r12, qword [rsp + 0xc0]
add r12, r14
xor rdx, r12
rol rdx, 0x30
add rbp, rdx
xor r14, rbp
rol r14, 1
add r8, rax
add r8, r14
xor r13, r8
rol r13, 0x20
add rbx, r13
xor r14, rbx
rol r14, 0x28
add r8, r15
add r8, r14
xor r13, r8
rol r13, 0x30
add rbx, r13
xor r14, rbx
rol r14, 1
add r10, qword [rsp + 0x98]
add r10, rdi
xor r9, r10
rol r9, 0x20
add rbp, r9
xor rdi, rbp
rol rdi, 0x28
add r10, qword [rsp + 0xa0]
add r10, rdi
xor r9, r10
rol r9, 0x30
add rbp, r9
mov qword [rsp + 0x50], rbp
xor rdi, rbp
rol rdi, 1
add rsi, qword [rsp + 0xd0]
add rsi, r11
xor rdx, rsi
rol rdx, 0x20
mov rax, qword [rsp + 0x48]
add rax, rdx
xor r11, rax
rol r11, 0x28
add rsi, qword [rsp + 0x88]
add rsi, r11
xor rdx, rsi
rol rdx, 0x30
add rax, rdx
xor r11, rax
mov rbp, rax
rol r11, 1
add r12, qword [rsp + 0xd8]
add r12, rcx
mov r15, qword [rsp + 0x58]
xor r15, r12
rol r15, 0x20
mov rax, qword [rsp + 0x40]
add rax, r15
xor rcx, rax
rol rcx, 0x28
add r12, qword [rsp + 0x78]
add r12, rcx
xor r15, r12
rol r15, 0x30
add rax, r15
xor rcx, rax
rol rcx, 1
add r8, qword [rsp + 0xa8]
add r8, rdi
xor r15, r8
rol r15, 0x20
add rbp, r15
xor rdi, rbp
rol rdi, 0x28
add r8, qword [rsp + 0x80]
add r8, rdi
xor r15, r8
rol r15, 0x30
add rbp, r15
mov qword [rsp + 0x48], rbp
xor rdi, rbp
rol rdi, 1
add r10, qword [rsp + 0xb8]
add r10, r11
xor r13, r10
rol r13, 0x20
add rax, r13
xor r11, rax
rol r11, 0x28
add r10, qword [rsp + 0x90]
add r10, r11
xor r13, r10
rol r13, 0x30
add rax, r13
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 1
add rsi, qword [rsp + 0x68]
add rsi, rcx
xor r9, rsi
rol r9, 0x20
add rbx, r9
xor rcx, rbx
rol rcx, 0x28
mov rbp, qword [rsp + 0xc8]
add rsi, rbp
add rsi, rcx
xor r9, rsi
rol r9, 0x30
add rbx, r9
mov qword [rsp + 0x58], rbx
xor rcx, rbx
rol rcx, 1
mov rbx, qword [rsp + 0xc0]
add r12, rbx
add r12, r14
xor rdx, r12
rol rdx, 0x20
mov rax, qword [rsp + 0x50]
add rax, rdx
xor r14, rax
rol r14, 0x28
add r12, qword [rsp + 0x70]
add r12, r14
xor rdx, r12
rol rdx, 0x30
add rax, rdx
xor r14, rax
rol r14, 1
add r8, rbx
add r8, r14
xor r13, r8
rol r13, 0x20
mov rbx, qword [rsp + 0x58]
add rbx, r13
xor r14, rbx
rol r14, 0x28
add r8, qword [rsp + 0x80]
add r8, r14
xor r13, r8
rol r13, 0x30
add rbx, r13
xor r14, rbx
rol r14, 1
add r10, qword [rsp + 0x78]
add r10, rdi
xor r9, r10
rol r9, 0x20
add rax, r9
xor rdi, rax
rol rdi, 0x28
add r10, rbp
add r10, rdi
xor r9, r10
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x50], rax
xor rdi, rax
rol rdi, 1
add rsi, qword [rsp + 0x90]
add rsi, r11
xor rdx, rsi
rol rdx, 0x20
mov rax, qword [rsp + 0x48]
add rax, rdx
xor r11, rax
rol r11, 0x28
add rsi, qword [rsp + 0xb0]
add rsi, r11
xor rdx, rsi
rol rdx, 0x30
add rax, rdx
xor r11, rax
rol r11, 1
add r12, qword [rsp + 0x68]
add r12, rcx
xor r15, r12
rol r15, 0x20
mov rbp, qword [rsp + 0x40]
add rbp, r15
xor rcx, rbp
rol rcx, 0x28
add r12, qword [rsp + 0x70]
add r12, rcx
xor r15, r12
rol r15, 0x30
add rbp, r15
xor rcx, rbp
rol rcx, 1
add r8, qword [rsp + 0x60]
add r8, rdi
xor r15, r8
rol r15, 0x20
add rax, r15
xor rdi, rax
rol rdi, 0x28
add r8, qword [rsp + 0xd0]
add r8, rdi
xor r15, r8
rol r15, 0x30
add rax, r15
mov qword [rsp + 0x48], rax
xor rdi, rax
rol rdi, 1
add r10, qword [rsp + 0xa0]
add r10, r11
xor r13, r10
rol r13, 0x20
add rbp, r13
xor r11, rbp
rol r11, 0x28
add r10, qword [rsp + 0x98]
add r10, r11
xor r13, r10
rol r13, 0x30
add rbp, r13
mov qword [rsp + 0x40], rbp
xor r11, rbp
rol r11, 1
add rsi, qword [rsp + 0x88]
add rsi, rcx
xor r9, rsi
rol r9, 0x20
add rbx, r9
xor rcx, rbx
rol rcx, 0x28
add rsi, qword [rsp + 0xa8]
add rsi, rcx
xor r9, rsi
rol r9, 0x30
add rbx, r9
xor rcx, rbx
rol rcx, 1
add r12, qword [rsp + 0xb8]
add r12, r14
xor rdx, r12
rol rdx, 0x20
mov rax, qword [rsp + 0x50]
add rax, rdx
xor r14, rax
rol r14, 0x28
mov rbp, qword [rsp + 0xd8]
add r12, rbp
add r12, r14
xor rdx, r12
rol rdx, 0x30
add rax, rdx
xor r14, rax
rol r14, 1
add r8, rbp
add r8, r14
xor r13, r8
rol r13, 0x20
add rbx, r13
xor r14, rbx
rol r14, 0x28
add r8, qword [rsp + 0x68]
add r8, r14
xor r13, r8
rol r13, 0x30
add rbx, r13
mov qword [rsp + 0x58], rbx
xor r14, rbx
rol r14, 1
add r10, qword [rsp + 0x80]
add r10, rdi
xor r9, r10
rol r9, 0x20
add rax, r9
xor rdi, rax
rol rdi, 0x28
add r10, qword [rsp + 0x88]
add r10, rdi
xor r9, r10
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x50], rax
xor rdi, rax
rol rdi, 1
add rsi, qword [rsp + 0xc8]
add rsi, r11
mov rbx, rdx
xor rbx, rsi
rol rbx, 0x20
mov rax, qword [rsp + 0x48]
add rax, rbx
xor r11, rax
rol r11, 0x28
add rsi, qword [rsp + 0x70]
add rsi, r11
mov qword [rsp + 0xe8], rsi
xor rbx, rsi
rol rbx, 0x30
add rax, rbx
xor r11, rax
mov rsi, rax
rol r11, 1
add r12, qword [rsp + 0xb0]
add r12, rcx
xor r15, r12
rol r15, 0x20
mov rdx, qword [rsp + 0x40]
add rdx, r15
xor rcx, rdx
rol rcx, 0x28
add r12, qword [rsp + 0x90]
add r12, rcx
xor r15, r12
rol r15, 0x30
add rdx, r15
xor rcx, rdx
add r8, qword [rsp + 0x78]
add r8, rdi
xor r15, r8
rol r15, 0x20
add rsi, r15
xor rdi, rsi
rol rdi, 0x28
add r8, qword [rsp + 0xa0]
add r8, rdi
xor r15, r8
add r10, qword [rsp + 0xc0]
add r10, r11
xor r13, r10
rol r13, 0x20
add rdx, r13
xor r11, rdx
rol r11, 0x28
add r10, qword [rsp + 0xd0]
add r10, r11
xor r13, r10
rol r13, 0x30
mov rbp, qword [rsp + 0x98]
add r12, rbp
add r8, rbp
mov rbp, rdx
add rbp, r13
add r12, r14
mov rdx, rbx
xor rdx, r12
rol rdx, 0x20
mov rbx, qword [rsp + 0x50]
add rbx, rdx
xor r14, rbx
rol r14, 0x28
add r12, qword [rsp + 0x60]
add r12, r14
xor rdx, r12
rol rdx, 0x30
add rbx, rdx
mov qword [rsp + 0x50], rbx
xor r14, rbx
rol r14, 1
add r8, r14
xor r13, r8
add r8, qword [rsp + 0xc0]
rol rcx, 1
rol r15, 0x30
add rsi, r15
mov qword [rsp + 0x48], rsi
xor rdi, rsi
rol rdi, 1
mov rsi, qword [rsp + 0xe8]
add rsi, qword [rsp + 0xa8]
add rsi, rcx
xor r9, rsi
rol r9, 0x20
mov rbx, qword [rsp + 0x58]
add rbx, r9
xor rcx, rbx
rol rcx, 0x28
mov rax, qword [rsp + 0xb8]
add rsi, rax
add rsi, rcx
xor r9, rsi
rol r9, 0x30
add r10, qword [rsp + 0xc8]
add rbx, r9
add r10, rdi
xor r9, r10
add r10, qword [rsp + 0x78]
xor r11, rbp
rol r11, 1
add rsi, qword [rsp + 0xa0]
add rsi, r11
xor rdx, rsi
add rsi, qword [rsp + 0x60]
add r12, rax
xor rcx, rbx
rol rcx, 1
rol r13, 0x20
add rbx, r13
xor r14, rbx
rol r14, 0x28
add r12, rcx
xor r15, r12
add r12, qword [rsp + 0xb0]
add r8, r14
xor r13, r8
add r8, qword [rsp + 0x68]
rol r9, 0x20
mov rax, qword [rsp + 0x50]
add rax, r9
xor rdi, rax
rol rdi, 0x28
add r10, rdi
xor r9, r10
rol r9, 0x30
add rax, r9
mov qword [rsp + 0x50], rax
xor rdi, rax
rol rdi, 1
rol r15, 0x20
add rbp, r15
xor rcx, rbp
rol rcx, 0x28
add r12, rcx
xor r15, r12
rol r15, 0x30
add rbp, r15
mov qword [rsp + 0x40], rbp
add r8, rdi
xor r15, r8
add r8, qword [rsp + 0xa8]
add r10, qword [rsp + 0xd8]
rol r13, 0x30
add rbx, r13
rol rdx, 0x20
mov rax, qword [rsp + 0x48]
add rax, rdx
xor r11, rax
rol r11, 0x28
add rsi, r11
xor rdx, rsi
rol rdx, 0x30
add rax, rdx
xor r11, rax
rol r11, 1
add r10, r11
xor r13, r10
add r10, qword [rsp + 0x80]
xor rcx, rbp
rol rcx, 1
add rsi, qword [rsp + 0xd0]
add rsi, rcx
xor r9, rsi
add rsi, qword [rsp + 0x90]
add r12, qword [rsp + 0x70]
xor r14, rbx
rol r14, 1
rol r15, 0x20
add rax, r15
mov qword [rsp + 0x48], rax
xor rdi, rax
rol rdi, 0x28
add r12, r14
xor rdx, r12
add r12, qword [rsp + 0x88]
add r8, rdi
xor r15, r8
mov rbp, qword [rsp + 0xf8]
xor rbp, r8
rol r9, 0x20
add rbx, r9
xor rcx, rbx
rol rcx, 0x28
add rsi, rcx
xor r9, rsi
rol r9, 0x30
add rbx, r9
xor rcx, rbx
xor rbp, rbx
mov qword [rsp + 0xf8], rbp
rol r13, 0x20
mov rax, qword [rsp + 0x40]
add rax, r13
mov qword [rsp + 0x40], rax
xor r11, rax
rol r11, 0x28
add r10, r11
xor r13, r10
mov rax, qword [rsp + 0x100]
xor rax, r10
mov r8, qword [rsp + 0x180]
mov rbx, qword [rsp + 0x120]
rol r15, 0x30
rol rdx, 0x20
mov rbp, qword [rsp + 0x50]
add rbp, rdx
xor r14, rbp
rol r14, 0x28
add r12, r14
xor rdx, r12
rol rdx, 0x30
add rbp, rdx
xor r14, rbp
xor rax, rbp
mov qword [rsp + 0x100], rax
mov rbp, qword [rsp + 0x48]
add rbp, r15
xor rdi, rbp
mov rax, qword [rsp + 0xf0]
xor rax, rbp
xor rax, rsi
mov qword [rsp + 0xf0], rax
xor qword [rsp + 0x118], r12
mov r12, qword [rsp + 0x118]
rol r13, 0x30
mov rax, qword [rsp + 0x40]
add rax, r13
xor r11, rax
xor r12, rax
xor r8, r13
rol rdi, 1
rol r14, 1
xor r8, r14
mov rbp, r8
xor rbx, rdi
xor rbx, r9
xor qword [rsp + 0xe0], rdx
rol r11, 1
xor qword [rsp + 0xe0], r11
mov rax, qword [rsp + 0x108]
xor rax, r15
rol rcx, 1
xor rax, rcx
mov qword [rsp + 0x108], rax
mov rcx, qword [rsp + 0x138]
cmp qword [rsp + 0x188], rcx
mov rdx, qword [rsp + 0x140]
mov rax, qword [rsp + 0x178]
jne 0x1400085ab
mov rcx, qword [rsp + 0xf8]
mov qword [rax], rcx
mov rcx, qword [rsp + 0x100]
mov qword [rax + 8], rcx
mov rcx, qword [rsp + 0xf0]
mov qword [rax + 0x10], rcx
mov qword [rax + 0x18], r12
mov qword [rax + 0x20], rbp
mov qword [rax + 0x28], rbx
mov rcx, qword [rsp + 0xe0]
mov qword [rax + 0x30], rcx
mov rcx, qword [rsp + 0x108]
mov qword [rax + 0x38], rcx
add rsp, 0x218
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
ud2