Function at 0x140218570
Capabilities:
Encrypt data using chaskey

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x388
movabs r12, 0x7ffffffffffff
movdqu xmm5, xmmword [rdx]
mov qword [rsp + 0x3d0], rcx
movzx ecx, byte [r8 + 5]
mov rax, r8
movups xmmword [rsp + 0x270], xmm5
movdqu xmm5, xmmword [rdx + 0x10]
movzx edx, byte [r8 + 6]
shl rcx, 0x28
shl rdx, 0x30
movups xmmword [rsp + 0x280], xmm5
add rdx, rcx
movzx ecx, byte [r8]
add rdx, rcx
movzx ecx, byte [r8 + 4]
shl rcx, 0x20
add rdx, rcx
movzx ecx, byte [r8 + 3]
shl rcx, 0x18
add rdx, rcx
movzx ecx, byte [r8 + 2]
shl rcx, 0x10
add rdx, rcx
movzx ecx, byte [r8 + 1]
shl rcx, 8
lea r8, [rdx + rcx]
movzx edx, byte [rax + 0xc]
movzx ecx, byte [rax + 0xb]
mov rdi, r8
shr r8, 0x33
shl rcx, 0x25
shl rdx, 0x2d
and rdi, r12
add rdx, rcx
movzx ecx, byte [rax + 0xa]
mov qword [rsp + 0xc0], rdi
shl rcx, 0x1d
add rdx, rcx
movzx ecx, byte [rax + 9]
shl rcx, 0x15
add rdx, rcx
movzx ecx, byte [rax + 8]
shl rcx, 0xd
add rdx, rcx
movzx ecx, byte [rax + 7]
shl rcx, 5
add rcx, rdx
movzx edx, byte [rax + 0x13]
add r8, rcx
movzx ecx, byte [rax + 0x12]
shl rdx, 0x32
mov rbx, r8
shl rcx, 0x2a
and rbx, r12
add rdx, rcx
movzx ecx, byte [rax + 0x11]
mov qword [rsp + 0xc8], rbx
shl rcx, 0x22
add rdx, rcx
movzx ecx, byte [rax + 0x10]
shl rcx, 0x1a
add rdx, rcx
movzx ecx, byte [rax + 0xf]
shr r8, 0x33
shl rcx, 0x12
add rdx, rcx
movzx ecx, byte [rax + 0xe]
shl rcx, 0xa
add rdx, rcx
movzx ecx, byte [rax + 0xd]
lea rdx, [rdx + rcx*4]
movzx ecx, byte [rax + 0x18]
add r8, rdx
movzx edx, byte [rax + 0x19]
shl rcx, 0x27
mov rsi, r8
shr r8, 0x33
shl rdx, 0x2f
and rsi, r12
add rdx, rcx
movzx ecx, byte [rax + 0x17]
mov qword [rsp + 0xd0], rsi
shl rcx, 0x1f
add rdx, rcx
movzx ecx, byte [rax + 0x16]
shl rcx, 0x17
add rdx, rcx
movzx ecx, byte [rax + 0x15]
mov qword [rsp + 0x120], rsi
mov qword [rsp + 0x100], rdi
shl rcx, 0xf
mov qword [rsp + 0xb0], 0
add rdx, rcx
movzx ecx, byte [rax + 0x14]
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x80], 0
shl rcx, 7
mov qword [rsp + 0x60], 0
add rcx, rdx
movzx edx, byte [rax + 0x1e]
mov qword [rsp + 0x90], 1
add r8, rcx
movzx ecx, byte [rax + 0x1d]
mov qword [rsp + 0x200], 0
shl rdx, 0x24
mov r9, r8
mov qword [rsp + 0x130], 0
shl rcx, 0x1c
and r9, r12
mov qword [rsp + 0x220], 0
add rdx, rcx
movzx ecx, byte [rax + 0x1c]
mov qword [rsp + 0xd8], r9
mov qword [rsp + 0x118], r9
shl rcx, 0x14
mov qword [rsp + 0x218], 0
add rdx, rcx
movzx ecx, byte [rax + 0x1b]
mov qword [rsp + 0x210], 1
mov dword [rsp + 0x208], 0xfe
shl rcx, 0xc
mov qword [rsp + 0x108], rbx
mov dword [rsp + 0x20c], 0
add rdx, rcx
movzx ecx, byte [rax + 0x1a]
movzx eax, byte [rax + 0x1f]
shl rcx, 4
and eax, 0x7f
add rcx, rdx
shl rax, 0x2c
shr r8, 0x33
xor ebp, ebp
xor r13d, r13d
add rcx, rax
mov qword [rsp + 0xa0], r13
xor r11d, r11d
lea rax, [rcx + r8]
mov qword [rsp + 0x28], rbp
xor r8d, r8d
mov r10, r11
mov qword [rsp + 0xf0], rax
mov qword [rsp + 0x228], rax
xor eax, eax
mov rbx, rax
nop dword [rax]
mov edi, dword [rsp + 0x208]
mov r15d, dword [rsp + 0x20c]
mov rsi, qword [rsp + 0x210]
mov rdx, qword [rsp + 0x100]
mov eax, edi
mov ecx, edi
mov r9, qword [rsp + 0x218]
mov r11, qword [rsp + 0x120]
sar eax, 3
and ecx, 7
mov rbp, qword [rsp + 0x200]
cdqe
movzx eax, byte [rsp + rax + 0x270]
sar eax, cl
and eax, 1
xor r15d, eax
mov dword [rsp + 0x20c], eax
mov rax, rsi
neg r15
xor rax, rdx
and rax, r15
xor rsi, rax
xor rdx, rax
mov qword [rsp + 0xb8], rsi
mov rsi, qword [rsp + 0x108]
mov qword [rsp + 0xe0], rdx
mov rax, rsi
xor rax, r9
and rax, r15
xor r9, rax
xor rsi, rax
mov rax, qword [rsp + 0x220]
mov r14, r9
mov qword [rsp + 0xf8], rsi
mov r9, rax
xor r9, r11
and r9, r15
xor rax, r9
xor r9, r11
mov r11, qword [rsp + 0x118]
mov r13, rax
mov rax, qword [rsp + 0x130]
mov rcx, rax
xor rcx, r11
and rcx, r15
xor rax, rcx
xor rcx, r11
mov rdi, rax
mov rax, qword [rsp + 0x228]
mov r11, rax
xor r11, rbp
mov rdx, r11
mov r11, qword [rsp + 0x90]
and rdx, r15
xor rax, rdx
xor rbp, rdx
mov rdx, rax
mov rax, r11
mov rsi, rbp
mov rbp, qword [rsp + 0x88]
xor rax, rbx
and rax, r15
xor rbx, rax
xor r11, rax
mov qword [rsp + 0x30], rbx
mov rbx, r11
mov r11, qword [rsp + 0x60]
mov qword [rsp + 0x100], rbx
mov rax, r11
xor rax, r8
and rax, r15
xor r8, rax
xor r11, rax
mov qword [rsp + 0x50], r11
mov r11, qword [rsp + 0x80]
mov rax, r11
xor rax, r10
and rax, r15
xor r11, rax
xor r10, rax
mov qword [rsp + 0x40], r11
mov r11, qword [rsp + 0xa0]
mov rax, r11
xor rax, rbp
and rax, r15
xor rbp, rax
xor r11, rax
mov qword [rsp + 0x60], rbp
mov rbp, qword [rsp + 0xb0]
mov qword [rsp + 0x58], r11
mov r11, qword [rsp + 0x28]
mov rax, rbp
xor rax, r11
and rax, r15
mov r15, rbp
movabs rbp, 0xfffffffffffda
xor r15, rax
xor r11, rax
mov rax, r15
mov r15, qword [rsp + 0xe0]
add r15, rbp
sub r15, rbx
mov qword [rsp + 0x118], r15
mov rbx, qword [rsp + 0xf8]
movabs r15, 0xffffffffffffe
mov rbp, r15
add r15, rbx
mov rbx, qword [rsp + 0x50]
sub r15, rbx
mov rbx, qword [rsp + 0x40]
mov qword [rsp + 0x88], r15
mov r15, rbp
add r15, r9
sub r15, rbx
mov rbx, rbp
mov qword [rsp + 0x90], r15
mov r15, rbp
mov rbp, qword [rsp + 0x60]
add r15, rcx
sub r15, rbp
movabs rbp, 0xfffffffffffda
mov qword [rsp + 0xa0], r15
mov r15, rbx
add r15, rdx
sub r15, rax
mov qword [rsp + 0xb0], r15
mov r15, qword [rsp + 0xb8]
add r15, rbp
mov rbp, qword [rsp + 0x30]
sub r15, rbp
mov rbp, rbx
mov qword [rsp + 0x108], r15
mov r15, rbx
add r15, r14
sub r15, r8
mov qword [rsp + 0x110], r15
mov r15, rbx
add r15, r13
sub r15, r10
mov qword [rsp + 0x28], r15
mov r15, rbx
mov rbx, qword [rsp + 0x58]
add r15, rdi
sub r15, rbx
mov rbx, qword [rsp + 0x30]
mov qword [rsp + 0x80], r15
mov r15, rbp
mov rbp, qword [rsp + 0xb8]
add r15, rsi
add r13, r10
mov r10, qword [rsp + 0x100]
add rax, rdx
add rbx, rbp
lea rbp, [r8 + r14]
mov r14, qword [rsp + 0x58]
lea r8, [r11 + rsi]
mov rsi, qword [rsp + 0xf8]
sub r15, r11
mov r11, qword [rsp + 0x60]
mov qword [rsp + 0x60], rax
add r14, rdi
mov rdi, qword [rsp + 0xe0]
lea rax, [r8 + r8*8]
mov qword [rsp + 0x70], r15
lea rax, [r8 + rax*2]
add rcx, r11
mov qword [rsp + 0xf8], r14
add rdi, r10
mov r10, qword [rsp + 0x50]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x30], rdi
add rsi, r10
mov r10, qword [rsp + 0x40]
mov qword [rsp + 0x100], r8
mov qword [rsp + 0x50], rsi
mov rsi, rax
lea rax, [r14 + r14*8]
lea rax, [r14 + rax*2]
add r10, r9
mov r14, rax
lea rax, [r13 + r13*8]
mov qword [rsp + 0x40], r10
lea rcx, [r13 + rax*2]
lea rax, [rbp + rbp*8]
lea r10, [rbp + rax*2]
mov rax, r10
mul qword [rsp + 0xb0]
mov r9, qword [rsp + 0x90]
mov qword [rsp + 0xb8], rsi
mov r15, qword [rsp + 0x118]
mov qword [rsp + 0x120], r14
mov qword [rsp + 0x148], 0
mov r10, rax
mov r11, rdx
mov rax, qword [rsp + 0xa0]
mov qword [rsp + 0x158], 0
mul rcx
add r10, rax
mov rax, r14
mov r14, rbx
adc r11, rdx
mul r9
add r10, rax
mov rax, rsi
adc r11, rdx
mul qword [rsp + 0x88]
add r10, rax
mov rax, rbx
adc r11, rdx
mul r15
mov rsi, r10
mov r10, r14
mov rdi, r11
mov r11, r15
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul qword [rsp + 0xb0]
mov qword [rsp + 0x130], rsi
mov qword [rsp + 0x138], rdi
mov rcx, rax
mov rbx, rdx
mov rax, qword [rsp + 0x120]
mul qword [rsp + 0xa0]
add rcx, rax
mov rax, qword [rsp + 0xb8]
adc rbx, rdx
mul r9
add rcx, rax
mov rax, qword [rsp + 0x88]
adc rbx, rdx
mov r8, rcx
mov rcx, rsi
mul r14
mov r9, rbx
mov rbx, qword [rsp + 0x88]
add r8, rax
mov rax, r15
adc r9, rdx
mul rbp
add rax, r8
adc rdx, r9
shrd rcx, rdi, 0x33
mov qword [rsp + 0x140], rcx
add rax, qword [rsp + 0x140]
adc rdx, qword [rsp + 0x148]
mov r14, rax
mov rax, qword [rsp + 0xb0]
mov r15, rdx
mul qword [rsp + 0x120]
mov rcx, qword [rsp + 0xa0]
mov r8, rax
mov rax, qword [rsp + 0xb8]
mov r9, rdx
mul rcx
add r8, rax
mov rax, qword [rsp + 0x90]
adc r9, rdx
mul r10
add r8, rax
mov rax, rbx
adc r9, rdx
mul rbp
add r8, rax
mov rax, r11
adc r9, rdx
mul r13
mov rsi, rax
mov rdi, rdx
mov rax, r14
add rsi, r8
adc rdi, r9
shrd rax, r15, 0x33
mov qword [rsp + 0x150], rax
mov rax, qword [rsp + 0xb0]
add rsi, qword [rsp + 0x150]
adc rdi, qword [rsp + 0x158]
mul qword [rsp + 0xb8]
mov r8, rax
mov rax, rcx
mov r9, rdx
mov rcx, r10
mul r10
add r8, rax
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0x168], 0
adc r9, rdx
mov qword [rsp + 0xe0], rcx
mov qword [rsp + 0x178], 0
mul rbp
add r8, rax
mov rax, rbx
mov rbx, qword [rsp + 0xf8]
adc r9, rdx
mul r13
add r8, rax
mov rax, rbx
adc r9, rdx
mul r11
mov r10, rax
mov r11, rdx
mov rax, rsi
add r10, r8
adc r11, r9
shrd rax, rdi, 0x33
mov qword [rsp + 0x160], rax
mov rax, r12
add r10, qword [rsp + 0x160]
adc r11, qword [rsp + 0x168]
and rax, r10
mov qword [rsp + 0x218], rax
mov rax, qword [rsp + 0xb0]
mul rcx
mov r8, rax
mov rax, qword [rsp + 0xa0]
mov r9, rdx
mul rbp
add r8, rax
mov rax, qword [rsp + 0x90]
adc r9, rdx
mul r13
add r8, rax
mov rax, qword [rsp + 0x88]
adc r9, rdx
mul rbx
add r8, rax
mov rax, qword [rsp + 0x118]
adc r9, rdx
mul qword [rsp + 0x100]
add rax, r8
adc rdx, r9
shrd r10, r11, 0x33
mov r11, r12
mov r9, qword [rsp + 0x110]
mov qword [rsp + 0x170], r10
add rax, qword [rsp + 0x170]
adc rdx, qword [rsp + 0x178]
and r11, rax
and rsi, r12
mov r10, qword [rsp + 0x80]
shrd rax, rdx, 0x33
mov qword [rsp + 0x220], r11
mov r11, qword [rsp + 0x108]
lea rdx, [rax + rax*8]
lea rdx, [rax + rdx*2]
mov rax, qword [rsp + 0x130]
and rax, r12
add rdx, rax
mov rax, rdx
shr rdx, 0x33
and rax, r12
mov qword [rsp + 0x228], rax
mov rax, r14
and rax, r12
add rax, rdx
mov rdx, rax
shr rax, 0x33
and rdx, r12
mov qword [rsp + 0x230], rdx
lea rdx, [rsi + rax]
mov rsi, qword [rsp + 0x28]
mov qword [rsp + 0x200], rdx
mov rdx, qword [rsp + 0x70]
lea rax, [rdx + rdx*8]
lea rax, [rdx + rax*2]
mov r14, rax
lea rax, [r10 + r10*8]
lea rcx, [r10 + rax*2]
lea rax, [rsi + rsi*8]
mov r10, r14
lea r8, [rsi + rax*2]
lea rax, [r9 + r9*8]
lea rdi, [r9 + rax*2]
mov rax, rdi
mul qword [rsp + 0x60]
mov rsi, rax
mov rax, qword [rsp + 0x58]
mov rdi, rdx
mul r8
add rsi, rax
mov rax, r11
adc rdi, rdx
mul qword [rsp + 0x30]
mov rbx, qword [rsp + 0x50]
mov qword [rsp + 0x188], 0
mov qword [rsp + 0x88], r10
mov qword [rsp + 0x198], 0
add rsi, rax
mov rax, qword [rsp + 0x40]
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, r14
adc rdi, rdx
mul rbx
add rsi, rax
mov rax, rbx
mov rbx, r9
adc rdi, rdx
mul r11
mov r14, rsi
mov r15, rdi
mov qword [rsp + 0xa0], r14
mov qword [rsp + 0xa8], r15
mov rsi, rax
mov rdi, rdx
mov rax, r9
mul qword [rsp + 0x30]
add rsi, rax
mov rax, r8
adc rdi, rdx
mul qword [rsp + 0x60]
mov r8, rax
mov rax, qword [rsp + 0x58]
mov r9, rdx
add r8, rsi
mov rsi, qword [rsp + 0x28]
adc r9, rdi
mul rcx
mov rdi, qword [rsp + 0x40]
add r8, rax
mov rax, r10
adc r9, rdx
mul rdi
add rax, r8
mov r8, r14
adc rdx, r9
shrd r8, r15, 0x33
mov r9, rbx
mov qword [rsp + 0x180], r8
add rax, qword [rsp + 0x180]
mov qword [rsp + 0x90], rax
adc rdx, qword [rsp + 0x188]
mov rax, rdi
mov rdi, r11
mov qword [rsp + 0x98], rdx
mul r11
mov r8, qword [rsp + 0x50]
mov r10, rax
mov rax, r8
mov r11, rdx
mul rbx
mov rbx, qword [rsp + 0x58]
add r10, rax
mov rax, rsi
adc r11, rdx
mul qword [rsp + 0x30]
add r10, rax
mov rax, qword [rsp + 0x60]
adc r11, rdx
mul rcx
add r10, rax
mov rax, qword [rsp + 0x88]
adc r11, rdx
mul rbx
mov r14, rax
mov r15, rdx
mov rax, qword [rsp + 0x90]
mov rdx, qword [rsp + 0x98]
add r14, r10
adc r15, r11
shrd rax, rdx, 0x33
mov qword [rsp + 0x190], rax
mov rax, rbx
add r14, qword [rsp + 0x190]
mov rbx, rdi
adc r15, qword [rsp + 0x198]
mul rdi
mov r10, rax
mov rax, qword [rsp + 0x40]
mov r11, rdx
mul r9
add r10, rax
mov rax, r8
mov r8, rsi
adc r11, rdx
mul rsi
add r10, rax
mov rax, qword [rsp + 0x80]
adc r11, rdx
mul qword [rsp + 0x30]
mov qword [rsp + 0x1a8], 0
mov qword [rsp + 0x1b8], 0
add r10, rax
mov rax, qword [rsp + 0x60]
adc r11, rdx
mul qword [rsp + 0x88]
mov rsi, rax
mov rdi, rdx
mov rax, r14
add rsi, r10
adc rdi, r11
shrd rax, r15, 0x33
mov qword [rsp + 0x1a0], rax
mov rax, r12
add rsi, qword [rsp + 0x1a0]
adc rdi, qword [rsp + 0x1a8]
and rax, rsi
mov qword [rsp + 0x118], rax
mov rax, qword [rsp + 0x60]
mul rbx
mov r10, rax
mov rax, qword [rsp + 0x58]
mov r11, rdx
mul r9
add r10, rax
mov rax, qword [rsp + 0x40]
adc r11, rdx
mul r8
add r10, rax
mov rax, qword [rsp + 0x50]
adc r11, rdx
mul qword [rsp + 0x80]
add r10, rax
mov rax, qword [rsp + 0x30]
adc r11, rdx
mul qword [rsp + 0x70]
add rax, r10
adc rdx, r11
shrd rsi, rdi, 0x33
mov r11, r12
mov rdi, qword [rsp + 0x28]
mov qword [rsp + 0x1b0], rsi
add rax, qword [rsp + 0x1b0]
adc rdx, qword [rsp + 0x1b8]
and r11, rax
and r14, r12
shrd rax, rdx, 0x33
mov qword [rsp + 0x210], r11
lea r11, [rcx + rcx]
lea rdx, [rax + rax*8]
lea rdx, [rax + rdx*2]
mov rax, qword [rsp + 0xa0]
and rax, r12
add rdx, rax
mov rax, qword [rsp + 0x90]
mov r10, rdx
shr rdx, 0x33
and rax, r12
and r10, r12
add rax, rdx
mov qword [rsp + 0x60], r10
mov r10, qword [rsp + 0x80]
mov rsi, rax
shr rax, 0x33
add r14, rax
mov rax, r11
and rsi, r12
mov r11, rbx
mul rdi
mov qword [rsp + 0x40], rsi
mov rsi, qword [rsp + 0x88]
lea r15, [r10 + r10]
mov qword [rsp + 0x130], r14
lea r8, [rsi + rsi]
mov qword [rsp + 0x30], r15
lea rsi, [rdi + rdi]
mov r14, rax
mov rax, r9
mov r15, rdx
mul r8
add r14, rax
mov rax, rbx
adc r15, rdx
mul rbx
add r14, rax
mov rax, rcx
adc r15, rdx
mul r10
mov rcx, rax
mov rax, rdi
mov rbx, rdx
mov rdi, r9
mul r8
add rcx, rax
lea rax, [r9 + r9]
adc rbx, rdx
mul r11
add rcx, rax
mov rax, r14
adc rbx, rdx
shrd rax, r15, 0x33
mov qword [rsp + 0x1c0], rax
mov rax, r10
mov qword [rsp + 0x1c8], 0
add rcx, qword [rsp + 0x1c0]
adc rbx, qword [rsp + 0x1c8]
mul r8
mov qword [rsp + 0x1d8], 0
mov qword [rsp + 0x1e8], 0
mov qword [rsp + 0x1f8], 0
mov r8, rax
mov rax, r11
mov r9, rdx
mul rsi
add r8, rax
mov rax, rdi
adc r9, rdx
mul rdi
mov r10, rax
mov r11, rdx
mov rax, rcx
add r10, r8
adc r11, r9
shrd rax, rbx, 0x33
mov qword [rsp + 0x1d0], rax
mov rax, qword [rsp + 0x88]
add r10, qword [rsp + 0x1d0]
adc r11, qword [rsp + 0x1d8]
mul qword [rsp + 0x70]
mov r8, rax
mov rax, rsi
mov r9, rdx
mul rdi
mov rsi, rax
mov rdi, rdx
mov rax, qword [rsp + 0x30]
add rsi, r8
adc rdi, r9
mov r9, qword [rsp + 0x108]
mul r9
add rsi, rax
mov rax, r10
adc rdi, rdx
shrd rax, r11, 0x33
mov rdx, qword [rsp + 0x70]
mov qword [rsp + 0x1e0], rax
mov rax, r12
add rsi, qword [rsp + 0x1e0]
adc rdi, qword [rsp + 0x1e8]
and rax, rsi
lea r8, [rdx + rdx]
mov qword [rsp + 0x80], rax
mov rax, r9
mul r8
mov r8, rax
mov r9, rdx
mov rax, qword [rsp + 0x30]
mul qword [rsp + 0x110]
add r8, rax
mov rax, qword [rsp + 0x28]
adc r9, rdx
mul rax
add rax, r8
adc rdx, r9
shrd rsi, rdi, 0x33
mov r9, r12
mov qword [rsp + 0x1f0], rsi
add rax, qword [rsp + 0x1f0]
adc rdx, qword [rsp + 0x1f8]
and r9, rax
and r14, r12
and rcx, r12
shrd rax, rdx, 0x33
and r10, r12
mov qword [rsp + 0xa0], r9
lea rdx, [rax + rax*8]
lea rax, [rax + rdx*2]
add r14, rax
mov rax, r14
shr r14, 0x33
add rcx, r14
and rax, r12
mov rdi, rcx
shr rcx, 0x33
mov qword [rsp + 0x28], rax
lea rdx, [r10 + rcx]
and rdi, r12
mov r10, qword [rsp + 0xb8]
mov qword [rsp + 0xb0], rdi
mov qword [rsp + 0x30], rdx
mov r14, qword [rsp + 0xf8]
lea rcx, [r10 + r10]
mov rbx, qword [rsp + 0x120]
mov r11, qword [rsp + 0xe0]
lea r10, [r14 + r14]
lea r9, [rbx + rbx]
mov qword [rsp + 0x50], r10
lea r10, [r13 + r13]
mov rax, r9
mul r13
mov r8, rax
mov rax, rcx
mov r9, rdx
mul rbp
mov rsi, rax
mov rdi, rdx
mov rax, r11
add rsi, r8
lea r8, [rbp + rbp]
adc rdi, r9
mul r11
add rsi, rax
mov rax, rbx
mov rbx, r14
adc rdi, rdx
mul r14
mov r14, rax
mov rax, rcx
mov r15, rdx
mul r13
add r14, rax
mov rax, r8
adc r15, rdx
mul r11
mov r8, rax
mov r9, rdx
mov rax, rsi
mov rdx, rdi
add r8, r14
adc r9, r15
shrd rax, rdi, 0x33
mov rdi, qword [rsp + 0x210]
shr rdx, 0x33
add r8, rax
mov rax, rbx
adc r9, rdx
mul rcx
mov rcx, rax
mov rax, r11
mov rbx, rdx
mul r10
add rcx, rax
mov rax, rbp
adc rbx, rdx
mul rbp
mov r14, rcx
mov r15, rbx
mov rcx, rax
mov rbx, rdx
mov rax, r8
mov rdx, r9
add rcx, r14
adc rbx, r15
shrd rax, r9, 0x33
mov r9, qword [rsp + 0x218]
shr rdx, 0x33
add rcx, rax
mov rax, qword [rsp + 0xb8]
adc rbx, rdx
mul qword [rsp + 0x100]
mov r14, rax
mov rax, r10
mov r15, rdx
mul rbp
mov r10, rax
mov r11, rdx
mov rax, qword [rsp + 0x50]
add r10, r14
adc r11, r15
mul qword [rsp + 0xe0]
mov r14, rax
mov r15, rdx
mov rax, rcx
mov rdx, rbx
add r14, r10
mov r10, r12
adc r15, r11
shrd rax, rbx, 0x33
mov r11, qword [rsp + 0x100]
mov rbx, qword [rsp + 0x60]
shr rdx, 0x33
add r14, rax
mov rax, qword [rsp + 0xe0]
adc r15, rdx
and r10, r14
mov qword [rsp + 0x58], r10
lea r10, [r11 + r11]
mul r10
mov r10, rax
mov rax, qword [rsp + 0x50]
mov r11, rdx
mul rbp
add r10, rax
mov rax, r13
adc r11, rdx
mul r13
mov r13, r12
add rax, r10
mov r10, qword [rsp + 0x130]
adc rdx, r11
shrd r14, r15, 0x33
shr r15, 0x33
add rax, r14
mov r14, qword [rsp + 0x40]
adc rdx, r15
and r13, rax
and rsi, r12
and r8, r12
mov r15, qword [rsp + 0x228]
shrd rax, rdx, 0x33
mov rbp, r13
and rcx, r12
lea rdx, [rax + rax*8]
lea r11, [rbx + r15]
lea rax, [rax + rdx*2]
mov rdx, qword [rsp + 0x118]
add rsi, rax
mov qword [rsp + 0x88], r11
mov r11, qword [rsp + 0x230]
mov r13, rsi
shr rsi, 0x33
add r14, r11
lea rax, [r8 + rsi]
lea rsi, [rdx + r9]
and r13, r12
mov qword [rsp + 0x60], r14
mov r8, rax
shr rax, 0x33
movabs r14, 0xfffffffffffda
add rcx, rax
lea rax, [r15 + r14]
mov qword [rsp + 0x50], r13
and r8, r12
mov r14, rax
mov r15, qword [rsp + 0x40]
mov r13, qword [rsp + 0x200]
mov qword [rsp + 0x118], rsi
sub r14, rbx
mov rsi, qword [rsp + 0x220]
movabs rbx, 0xffffffffffffe
lea rax, [r11 + rbx]
add r13, r10
mov r10, rdi
mov qword [rsp + 0x110], r14
mov r11, rax
add r10, rsi
mov qword [rsp + 0x100], r13
sub r11, r15
mov r15, qword [rsp + 0x200]
mov qword [rsp + 0x108], r10
mov qword [rsp + 0x90], r11
lea rax, [r15 + rbx]
mov r15, qword [rsp + 0x130]
mov r13, rax
lea rax, [r9 + rbx]
sub r13, r15
sub rax, rdx
mov r15, qword [rsp + 0xa0]
mov rdx, qword [rsp + 0x30]
mov qword [rsp + 0xe0], r13
mov r13, rax
lea rax, [rsi + rbx]
mov rsi, qword [rsp + 0x80]
mov r10, rax
lea rax, [r15 + r15*8]
lea r9, [r15 + rax*2]
lea rax, [rsi + rsi*8]
sub r10, rdi
mov rdi, qword [rsp + 0xb0]
lea r11, [rsi + rax*2]
lea rax, [rdx + rdx*8]
mov qword [rsp + 0xf8], r10
lea r10, [rdx + rax*2]
mov rax, r9
mul r8
mov r14, rax
mov r15, rdx
mov rax, qword [rsp + 0x28]
mul qword [rsp + 0x50]
add r14, rax
mov rax, r11
adc r15, rdx
mul rcx
add r14, rax
lea rax, [rdi + rdi*8]
lea rax, [rdi + rax*2]
adc r15, rdx
mul rbp
add r14, rax
mov rax, qword [rsp + 0x58]
adc r15, rdx
mov rbx, r14
mul r10
mov rsi, r15
add rbx, rax
mov rax, qword [rsp + 0x58]
adc rsi, rdx
mov qword [rsp + 0x40], rbx
mul r11
mov qword [rsp + 0x48], rsi
mov r14, rax
mov rax, qword [rsp + 0x28]
mov r15, rdx
mul r8
add r14, rax
mov rax, r9
adc r15, rdx
mul rcx
add r14, rax
mov rax, rdi
mov rdi, rsi
mov rsi, rbx
adc r15, rdx
mul qword [rsp + 0x50]
mov rbx, qword [rsp + 0xb0]
add r14, rax
mov rax, r10
adc r15, rdx
mul rbp
add rax, r14
adc rdx, r15
shrd rsi, rdi, 0x33
shr rdi, 0x33
add rax, rsi
adc rdx, rdi
mov r14, rax
mov rax, r11
mov r15, rdx
mul rbp
mov qword [rsp + 0x70], r14
mov qword [rsp + 0x78], r15
mov r10, rax
mov rax, qword [rsp + 0x58]
mov r11, rdx
mul r9
add r10, rax
mov rax, qword [rsp + 0x28]
adc r11, rdx
mul rcx
add r10, rax
mov rax, rbx
adc r11, rdx
mul r8
mov rsi, r10
mov r10, r14
mov rdi, r11
mov r11, r15
add rsi, rax
mov rax, qword [rsp + 0x30]
adc rdi, rdx
mul qword [rsp + 0x50]
add rax, rsi
adc rdx, rdi
shrd r10, r15, 0x33
shr r11, 0x33
add rax, r10
adc rdx, r11
mov r14, rax
mov rax, r9
mov r9, rbx
mov r15, rdx
mul rbp
mov rsi, rax
mov rdi, rdx
mov rax, qword [rsp + 0x80]
mul qword [rsp + 0x50]
add rsi, rax
mov rax, qword [rsp + 0x58]
adc rdi, rdx
mul qword [rsp + 0x28]
add rsi, rax
mov rax, rbx
mov rbx, r14
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, qword [rsp + 0x30]
adc rdi, rdx
mul r8
mov r10, rax
mov r11, rdx
mov rax, r14
mov rdx, r15
add r10, rsi
adc r11, rdi
shrd rax, r15, 0x33
mov rdi, r9
shr rdx, 0x33
add r10, rax
mov rax, r12
adc r11, rdx
and rax, r10
mov qword [rsp + 0x130], rax
mov rax, qword [rsp + 0x28]
mul rbp
mov r14, rax
mov r15, rdx
mov rax, qword [rsp + 0xa0]
mul qword [rsp + 0x50]
add r14, rax
mov rax, qword [rsp + 0x80]
adc r15, rdx
mul r8
add r14, rax
mov rax, qword [rsp + 0x58]
mov rsi, qword [rsp + 0x80]
adc r15, rdx
mul r9
mov r9, qword [rsp + 0x30]
add r14, rax
mov rax, r9
adc r15, rdx
mul rcx
add rax, r14
adc rdx, r15
shrd r10, r11, 0x33
shr r11, 0x33
add rax, r10
mov r10, qword [rsp + 0xf8]
adc rdx, r11
mov qword [rsp + 0x268], rax
mov r15, rax
mov r11, qword [rsp + 0x28]
shrd rax, rdx, 0x33
and r15, r12
lea rdx, [rax + rax*8]
mov qword [rsp + 0x200], r15
mov r15, qword [rsp + 0xa0]
lea rdx, [rax + rdx*2]
mov rax, qword [rsp + 0x40]
and rax, r12
add rdx, rax
mov rax, rdx
shr rdx, 0x33
and rax, r12
mov qword [rsp + 0x210], rax
mov rax, qword [rsp + 0x70]
and rax, r12
add rax, rdx
mov rdx, rax
shr rax, 0x33
and rdx, r12
mov qword [rsp + 0x218], rdx
mov rdx, rbx
mov rbx, qword [rsp + 0x50]
and rdx, r12
add rax, rdx
movabs rdx, 0xfffffffffffda
add rbx, rdx
mov qword [rsp + 0x220], rax
movabs rax, 0xffffffffffffe
mov rdx, rbx
mov rbx, qword [rsp + 0x58]
add r8, rax
add rcx, rax
sub r8, rdi
mov rdi, rax
sub rdx, r11
sub rcx, r9
add rax, rbx
mov qword [rsp + 0x50], r8
mov rbx, qword [rsp + 0x110]
add rbp, rdi
sub rax, rsi
mov qword [rsp + 0xb8], rdx
mov r11, qword [rsp + 0x90]
sub rbp, r15
mov qword [rsp + 0x58], rax
lea rax, [r10 + r10*8]
mov r15, qword [rsp + 0xe0]
lea r8, [r10 + rax*2]
mov rax, rbx
mov qword [rsp + 0x40], rcx
mul rbx
lea r10, [r8 + r8]
mov qword [rsp + 0x70], rbp
lea r9, [r15 + r15]
lea rbp, [r13 + r13]
mov rsi, rax
mov rax, r11
mov rdi, rdx
mul r10
add rsi, rax
lea rax, [r13 + r13*8]
lea rcx, [r13 + rax*2]
adc rdi, rdx
lea rax, [rcx + rcx]
mul r15
add rsi, rax
mov r14, rsi
lea rsi, [r11 + r11]
adc rdi, rdx
mov rax, rsi
mov r15, rdi
mul rbx
mov rsi, rax
mov rax, qword [rsp + 0xe0]
mov rdi, rdx
mul r10
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul r13
mov rcx, rax
mov rbx, rdx
mov rax, r14
mov rdx, r15
add rcx, rsi
adc rbx, rdi
shrd rax, r15, 0x33
mov r15, r14
shr rdx, 0x33
add rcx, rax
mov rax, r11
adc rbx, rdx
mul r11
mov rsi, rax
mov rax, r13
mov rdi, rdx
mov r13, qword [rsp + 0x110]
mul r10
mov r10, rax
mov r11, rdx
mov rax, r13
add r10, rsi
adc r11, rdi
mul r9
mov rsi, rax
mov rdi, rdx
mov rax, rcx
mov rdx, rbx
add rsi, r10
adc rdi, r11
shrd rax, rbx, 0x33
shr rdx, 0x33
add rsi, rax
mov rax, r8
adc rdi, rdx
mul qword [rsp + 0xf8]
mov r10, rax
mov rax, r13
mov r11, rdx
mul rbp
add r10, rax
mov rax, r9
adc r11, rdx
mul qword [rsp + 0x90]
mov r8, rax
mov r9, rdx
mov rax, rsi
mov rdx, rdi
add r8, r10
mov r10, qword [rsp + 0xf8]
adc r9, r11
shrd rax, rdi, 0x33
shr rdx, 0x33
add r8, rax
mov rax, r13
mov r13, qword [rsp + 0xe0]
adc r9, rdx
mov rdx, r12
add r10, r10
and rdx, r8
mov qword [rsp + 0x110], rdx
mul r10
mov r10, rax
mov rax, qword [rsp + 0x90]
mov r11, rdx
mul rbp
add r10, rax
mov rax, r13
adc r11, rdx
mul r13
add rax, r10
mov r10, r12
adc rdx, r11
shrd r8, r9, 0x33
shr r9, 0x33
add rax, r8
adc rdx, r9
and r10, rax
and r15, r12
and rcx, r12
shrd rax, rdx, 0x33
mov qword [rsp + 0xf8], r10
and rsi, r12
lea rdx, [rax + rax*8]
lea rax, [rax + rdx*2]
add rax, r15
mov r10, rax
shr rax, 0x33
and r10, r12
add rcx, rax
mov eax, 0x1db42
mov qword [rsp + 0xe0], r10
mul qword [rsp + 0xb8]
mov r13, rcx
shr rcx, 0x33
lea rbx, [rsi + rcx]
and r13, r12
mov qword [rsp + 0x90], rbx
mov r9, rdx
mov r8, rax
mov eax, 0x1db42
mul qword [rsp + 0x50]
mov rcx, r8
mov rbx, r9
shrd rcx, r9, 0x33
shr rbx, 0x33
add rcx, rax
mov eax, 0x1db42
adc rbx, rdx
mul qword [rsp + 0x40]
mov r10, rcx
shrd r10, rbx, 0x33
mov r11, rbx
shr r11, 0x33
add rax, r10
adc rdx, r11
mov rdi, rax
mov eax, 0x1db42
mov rbp, rdx
mul qword [rsp + 0x58]
mov r10, rdi
mov qword [rsp + 0x230], rdi
shrd r10, rbp, 0x33
mov r11, rbp
mov qword [rsp + 0x238], rbp
shr r11, 0x33
add rax, r10
adc rdx, r11
mov rsi, rax
mov eax, 0x1db42
mov r11, qword [rsp + 0x88]
mov rdi, rdx
mul qword [rsp + 0x70]
mov r14, rsi
mov qword [rsp + 0x240], rsi
mov r15, rdi
shrd r14, rdi, 0x33
mov qword [rsp + 0x248], rdi
shr r15, 0x33
add r14, rax
adc r15, rdx
mov rax, r14
and r8, r12
and rcx, r12
shrd rax, r15, 0x33
lea rdx, [rax + rax*8]
lea rax, [rax + rdx*2]
mov rdx, qword [rsp + 0x100]
add r8, rax
mov qword [rsp + 0x250], r8
mov rax, r8
lea r9, [rdx + rdx]
mov r8, qword [rsp + 0x108]
shr rax, 0x33
lea rbp, [rcx + rax]
lea rax, [r8 + r8*8]
mov rcx, qword [rsp + 0x118]
lea r8, [r8 + rax*2]
mov rax, r11
mov qword [rsp + 0x258], rbp
mul r11
lea r10, [r8 + r8]
lea rbp, [rcx + rcx]
mov rsi, rax
mov rax, qword [rsp + 0x60]
mov rdi, rdx
mul r10
add rsi, rax
lea rax, [rcx + rcx*8]
lea rcx, [rcx + rax*2]
adc rdi, rdx
mov rbx, rsi
lea rax, [rcx + rcx]
mov rsi, rdi
mul qword [rsp + 0x100]
add rbx, rax
adc rsi, rdx
mov rdx, qword [rsp + 0x60]
mov qword [rsp + 0x120], rbx
mov qword [rsp + 0x128], rsi
lea rbx, [rdx + rdx]
mov rax, rbx
mul r11
mov r11, qword [rsp + 0x118]
mov rsi, rax
mov rax, qword [rsp + 0x100]
mov rdi, rdx
mul r10
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul r11
mov rcx, rax
mov rbx, rdx
mov rax, qword [rsp + 0x120]
mov rdx, qword [rsp + 0x128]
add rcx, rsi
mov rsi, qword [rsp + 0x60]
adc rbx, rdi
shrd rax, rdx, 0x33
shr rdx, 0x33
add rcx, rax
mov rax, rsi
adc rbx, rdx
mul rsi
mov rsi, rax
mov rax, r11
mov rdi, rdx
mul r10
mov r10, rax
mov rax, qword [rsp + 0x88]
mov r11, rdx
add r10, rsi
adc r11, rdi
mul r9
mov rsi, rax
mov rdi, rdx
mov rax, rcx
mov rdx, rbx
add rsi, r10
adc rdi, r11
shrd rax, rbx, 0x33
shr rdx, 0x33
add rsi, rax
mov rax, r8
adc rdi, rdx
mul qword [rsp + 0x108]
mov r10, rax
mov rax, qword [rsp + 0x88]
mov r11, rdx
mul rbp
add r10, rax
mov rax, r9
adc r11, rdx
mul qword [rsp + 0x60]
mov r8, rax
mov r9, rdx
mov rax, rsi
mov rdx, rdi
add r8, r10
adc r9, r11
shrd rax, rdi, 0x33
shr rdx, 0x33
add r8, rax
mov rax, qword [rsp + 0x108]
adc r9, rdx
mov rdx, r12
and rdx, r8
lea r10, [rax + rax]
mov qword [rsp + 0x118], rdx
mov rax, qword [rsp + 0x88]
mul r10
mov r10, rax
mov rax, qword [rsp + 0x60]
mov r11, rdx
mul rbp
mov rbp, qword [rsp + 0x100]
add r10, rax
mov rax, rbp
adc r11, rdx
mul rbp
add rax, r10
adc rdx, r11
shrd r8, r9, 0x33
mov r11, qword [rsp + 0x28]
shr r9, 0x33
add rax, r8
mov r8, qword [rsp + 0x250]
adc rdx, r9
mov rbp, rax
and rcx, r12
and rsi, r12
mov qword [rsp + 0x260], rax
shrd rax, rdx, 0x33
and r8, r12
mov r9, qword [rsp + 0x30]
lea rdx, [rax + rax*8]
lea r8, [r8 + r11]
and rbp, r12
mov r11, qword [rsp + 0xe0]
lea rax, [rax + rdx*2]
mov rdx, qword [rsp + 0x120]
mov qword [rsp + 0x28], r8
mov r8, qword [rsp + 0x258]
mov qword [rsp + 0x228], rbp
and rdx, r12
add rax, rdx
mov rdx, rax
shr rax, 0x33
add rcx, rax
mov rax, qword [rsp + 0xb0]
and rdx, r12
mov rbx, rcx
shr rcx, 0x33
mov qword [rsp + 0x100], rdx
mov rdx, qword [rsp + 0x90]
add rcx, rsi
and rbx, r12
mov rsi, qword [rsp + 0x80]
mov qword [rsp + 0x120], rcx
mov rcx, r8
shr r8, 0x33
and rcx, r12
mov qword [rsp + 0x108], rbx
add rcx, rax
mov rax, qword [rsp + 0x230]
and rax, r12
add rax, r9
mov r9, qword [rsp + 0xf8]
lea rbx, [rax + r8]
mov rax, qword [rsp + 0x240]
and rax, r12
lea rbp, [rax + rsi]
mov rsi, qword [rsp + 0xa0]
mov rax, r14
and rax, r12
add rax, rsi
mov rsi, qword [rsp + 0x110]
mov qword [rsp + 0x30], rax
lea rax, [r9 + r9*8]
lea r10, [r9 + rax*2]
lea rax, [rsi + rsi*8]
lea r9, [rsi + rax*2]
lea rax, [rdx + rdx*8]
lea r8, [rdx + rax*2]
mov rax, qword [rsp + 0xd0]
mul r9
mov r14, rax
mov rax, qword [rsp + 0xc8]
mov r15, rdx
mul r10
add r14, rax
mov rax, r11
adc r15, rdx
mul qword [rsp + 0xc0]
add r14, rax
lea rax, [r13 + r13*8]
adc r15, rdx
lea rax, [r13 + rax*2]
mul qword [rsp + 0xf0]
add r14, rax
mov rax, qword [rsp + 0xd8]
adc r15, rdx
mov rsi, r14
mul r8
mov rdi, r15
add rsi, rax
mov rax, qword [rsp + 0xd8]
adc rdi, rdx
mul r9
mov r14, rax
mov rax, qword [rsp + 0xd0]
mov r15, rdx
mul r10
add r14, rax
mov rax, r11
adc r15, rdx
mul qword [rsp + 0xc8]
add r14, rax
mov rax, qword [rsp + 0xc0]
mov qword [rsp + 0x60], rsi
adc r15, rdx
mov qword [rsp + 0x68], rdi
mul r13
add r14, rax
mov rax, r8
mov r8, qword [rsp + 0xf0]
adc r15, rdx
mul r8
add rax, r14
mov r14, rsi
adc rdx, r15
mov r15, rdi
shrd r14, rdi, 0x33
shr r15, 0x33
add r14, rax
mov rax, r9
adc r15, rdx
mul r8
mov r8, rax
mov rax, qword [rsp + 0xd8]
mov r9, rdx
mul r10
add r8, rax
mov rax, r11
adc r9, rdx
mul qword [rsp + 0xd0]
add r8, rax
mov rax, qword [rsp + 0xc8]
adc r9, rdx
mov rsi, r8
mul r13
mov rdi, r9
mov r8, rax
mov r9, rdx
add r8, rsi
mov rsi, qword [rsp + 0xc0]
adc r9, rdi
mov rdi, qword [rsp + 0x90]
mov rax, rdi
mul rsi
add r8, rax
mov rax, r14
adc r9, rdx
shrd rax, r15, 0x33
mov rdx, r15
shr rdx, 0x33
add r8, rax
mov rax, r10
adc r9, rdx
mul qword [rsp + 0xf0]
mov r10, rax
mov rax, qword [rsp + 0x110]
mov r11, rdx
mul rsi
add r10, rax
mov rax, qword [rsp + 0xe0]
adc r11, rdx
mul qword [rsp + 0xd8]
add r10, rax
mov rax, qword [rsp + 0xd0]
adc r11, rdx
mul r13
add r10, rax
mov rax, rdi
adc r11, rdx
mul qword [rsp + 0xc8]
mov rsi, rax
mov rdi, rdx
mov rax, r8
mov rdx, r9
add rsi, r10
adc rdi, r11
shrd rax, r9, 0x33
shr rdx, 0x33
add rsi, rax
mov rax, qword [rsp + 0x110]
adc rdi, rdx
mov rdx, r12
and rdx, rsi
mov qword [rsp + 0x88], rdx
mul qword [rsp + 0xc8]
mov r10, rax
mov r11, rdx
mov rax, qword [rsp + 0xf8]
mul qword [rsp + 0xc0]
add r10, rax
mov rax, qword [rsp + 0xe0]
adc r11, rdx
mul qword [rsp + 0xf0]
add r10, rax
mov rax, r13
adc r11, rdx
mul qword [rsp + 0xd8]
add r10, rax
mov rax, qword [rsp + 0x90]
adc r11, rdx
mul qword [rsp + 0xd0]
add rax, r10
adc rdx, r11
shrd rsi, rdi, 0x33
shr rdi, 0x33
add rax, rsi
adc rdx, rdi
mov qword [rsp + 0xf8], rax
mov r11, rax
and r8, r12
shrd rax, rdx, 0x33
and r11, r12
lea rdx, [rax + rax*8]
mov qword [rsp + 0xb0], r11
lea rdx, [rax + rdx*2]
mov rax, qword [rsp + 0x60]
and rax, r12
add rdx, rax
mov rax, r14
mov rsi, rdx
and rax, r12
shr rdx, 0x33
and rsi, r12
add rax, rdx
mov qword [rsp + 0x90], rsi
mov rdx, rax
mov rsi, qword [rsp + 0x30]
shr rax, 0x33
and rdx, r12
mov qword [rsp + 0x60], rdx
lea rdx, [r8 + rax]
lea rax, [rsi + rsi*8]
lea r8, [rsi + rax*2]
lea rax, [rbp + rbp*8]
mov qword [rsp + 0x80], rdx
lea r10, [rbp + rax*2]
lea rax, [rbx + rbx*8]
lea r9, [rbx + rax*2]
mov rax, qword [rsp + 0x40]
mov r13, qword [rsp + 0x50]
mov r11, qword [rsp + 0xb8]
mul r10
mov r14, rax
mov rax, r13
mov r15, rdx
mul r8
add r14, rax
mov rax, qword [rsp + 0x28]
adc r15, rdx
mul r11
add r14, rax
lea rax, [rcx + rcx*8]
adc r15, rdx
lea rax, [rcx + rax*2]
mul qword [rsp + 0x70]
add r14, rax
mov rax, qword [rsp + 0x58]
adc r15, rdx
mov rsi, r14
mul r9
mov rdi, r15
add rsi, rax
mov rax, qword [rsp + 0x58]
adc rdi, rdx
mov qword [rsp + 0xe0], rsi
mul r10
mov qword [rsp + 0xe8], rdi
mov r14, rax
mov rax, qword [rsp + 0x40]
mov r15, rdx
mul r8
add r14, rax
mov rax, qword [rsp + 0x28]
adc r15, rdx
mul r13
add r14, rax
mov rax, r11
adc r15, rdx
mul rcx
add r14, rax
mov rax, r9
mov r9, qword [rsp + 0x70]
adc r15, rdx
mul r9
add rax, r14
adc rdx, r15
shrd rsi, rdi, 0x33
mov r15, qword [rsp + 0xb8]
shr rdi, 0x33
add rax, rsi
adc rdx, rdi
mov r13, rax
mov rax, r10
mov r14, rdx
mul r9
mov r10, rax
mov rax, qword [rsp + 0x58]
mov r11, rdx
mul r8
add r10, rax
mov rax, qword [rsp + 0x28]
adc r11, rdx
mul qword [rsp + 0x40]
mov rsi, r10
mov rdi, r11
add rsi, rax
mov rax, qword [rsp + 0x50]
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, r15
adc rdi, rdx
mul rbx
mov r10, rax
mov r11, rdx
mov rax, r13
mov rdx, r14
add r10, rsi
adc r11, rdi
shrd rax, r14, 0x33
shr rdx, 0x33
add r10, rax
mov rax, r8
adc r11, rdx
mul r9
mov r8, rax
mov rax, r15
mov r9, rdx
mul rbp
add r8, rax
mov rax, qword [rsp + 0x28]
adc r9, rdx
mul qword [rsp + 0x58]
mov rsi, r8
mov rdi, r9
add rsi, rax
mov rax, qword [rsp + 0x40]
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, qword [rsp + 0x50]
adc rdi, rdx
mul rbx
mov r8, rax
mov r9, rdx
mov rax, r10
mov rdx, r11
add r8, rsi
adc r9, rdi
shrd rax, r11, 0x33
shr rdx, 0x33
add r8, rax
mov rax, r12
adc r9, rdx
and rax, r8
mov qword [rsp + 0xa0], rax
mov rax, qword [rsp + 0x50]
mul rbp
mov rsi, rax
mov rax, qword [rsp + 0x30]
mov rdi, rdx
mul r15
add rsi, rax
mov rax, qword [rsp + 0x28]
adc rdi, rdx
mul qword [rsp + 0x70]
add rsi, rax
mov rax, qword [rsp + 0x58]
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, qword [rsp + 0x40]
adc rdi, rdx
mul rbx
add rax, rsi
adc rdx, rdi
shrd r8, r9, 0x33
shr r9, 0x33
add r8, rax
adc r9, rdx
mov rax, r8
mov rdx, r8
and r10, r12
shrd r8, r9, 0x33
and rax, r12
sub dword [rsp + 0x208], 1
mov qword [rsp + 0x28], rax
lea rax, [r8 + r8*8]
lea rcx, [r8 + rax*2]
mov rax, qword [rsp + 0xe0]
mov edi, dword [rsp + 0x208]
and rax, r12
add rcx, rax
mov rax, r13
mov rbx, rcx
and rax, r12
shr rcx, 0x33
add rax, rcx
and rbx, r12
mov r8, rax
shr rax, 0x33
and r8, r12
add r10, rax
cmp edi, 0xffffffff
jne 0x140218838
mov rdi, qword [rsp + 0x210]
mov r13, qword [rsp + 0xa0]
mov qword [rsp + 0x2c8], r8
mov qword [rsp + 0x2d0], r10
mov rbp, qword [rsp + 0x28]
mov qword [rsp + 0x290], rdi
mov rdi, qword [rsp + 0x218]
mov qword [rsp + 0x2c0], rbx
mov eax, dword [rsp + 0x20c]
mov qword [rsp + 0x298], rdi
mov rdi, qword [rsp + 0x220]
mov qword [rsp + 0x2d8], r13
neg rax
movdqu xmm0, xmmword [rsp + 0x290]
mov qword [rsp + 0x2a0], rdi
mov rdi, qword [rsp + 0x130]
movq xmm4, rax
punpcklqdq xmm4, xmm4
mov qword [rsp + 0x2a8], rdi
mov rdi, qword [rsp + 0x100]
mov qword [rsp + 0x2f0], rdi
mov rdi, qword [rsp + 0x108]
mov qword [rsp + 0x2f8], rdi
mov rdi, qword [rsp + 0x120]
mov qword [rsp + 0x300], rdi
mov rdi, qword [rsp + 0x118]
mov qword [rsp + 0x308], rdi
mov rdi, qword [rsp + 0x90]
mov qword [rsp + 0x320], rdi
mov rdi, qword [rsp + 0x60]
mov qword [rsp + 0x328], rdi
mov rdi, qword [rsp + 0x80]
mov qword [rsp + 0x330], rdi
mov rdi, qword [rsp + 0x88]
mov qword [rsp + 0x338], rdi
pxor xmm0, xmmword [rsp + 0x2f0]
mov rdi, qword [rsp + 0x268]
mov rcx, qword [rsp + 0x260]
movdqu xmm3, xmmword [rsp + 0x2c0]
pand xmm0, xmm4
movdqu xmm2, xmmword [rsp + 0x2d0]
xor rcx, rdi
mov rdi, qword [rsp + 0xf8]
pxor xmm3, xmmword [rsp + 0x320]
pxor xmm2, xmmword [rsp + 0x330]
and rcx, r12
mov r13, qword [rsp + 0x200]
xor rdx, rdi
and rcx, rax
pand xmm3, xmm4
movdqu xmm1, xmmword [rsp + 0x2a0]
and rdx, r12
pand xmm2, xmm4
xor r13, rcx
pxor xmm3, xmmword [rsp + 0x2c0]
and rax, rdx
lea rcx, [rsp + 0x2c0]
pxor xmm2, xmmword [rsp + 0x2d0]
xor rax, rbp
pxor xmm1, xmmword [rsp + 0x300]
lea rdx, [rsp + 0x350]
mov qword [rsp + 0x2e0], rax
pxor xmm0, xmmword [rsp + 0x290]
mov qword [rsp + 0x370], rax
pand xmm1, xmm4
pxor xmm1, xmmword [rsp + 0x2a0]
movups xmmword [rsp + 0x2c0], xmm3
movups xmmword [rsp + 0x2d0], xmm2
movhlps xmm5, xmm1
movups xmmword [rsp + 0x350], xmm3
movq r15, xmm5
movhlps xmm5, xmm0
movups xmmword [rsp + 0x360], xmm2
movq rbx, xmm5
call fcn.1401fca70
movq r10, xmm1
movq rcx, xmm0
mov rax, qword [rsp + 0x2e0]
mov rdi, qword [rsp + 0x2e0]
mov rbp, qword [rsp + 0x2d0]
mov qword [rsp + 0x28], r15
lea rax, [rax + rax*8]
mov r11, qword [rsp + 0x2c8]
lea r9, [rdi + rax*2]
mov rax, qword [rsp + 0x2d8]
mov rdi, qword [rsp + 0x2d8]
mov qword [rsp + 0x50], r9
lea rax, [rax + rax*8]
lea r14, [rdi + rax*2]
lea rax, [rbp + rbp*8]
lea r8, [rbp + rax*2]
mov rax, r15
mul r8
mov rsi, rax
mov rax, r14
mov rdi, rdx
mul r10
add rsi, rax
mov rax, r9
adc rdi, rdx
mul rbx
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul qword [rsp + 0x2c0]
add rsi, rax
lea rax, [r11 + r11*8]
lea rax, [r11 + rax*2]
adc rdi, rdx
mul r13
add rsi, rax
mov rax, r15
adc rdi, rdx
mul r14
mov qword [rsp + 0x30], rsi
mov qword [rsp + 0x38], rdi
mov rsi, rax
mov rax, r9
mov rdi, rdx
mul r10
add rsi, rax
mov rax, rbx
adc rdi, rdx
mul qword [rsp + 0x2c0]
add rsi, rax
mov rax, r11
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, r8
adc rdi, rdx
mul r13
add rax, rsi
mov rsi, qword [rsp + 0x30]
adc rdx, rdi
mov rdi, qword [rsp + 0x38]
xor r9d, r9d
shrd rsi, rdi, 0x33
add rax, rsi
mov r8, rax
mov rax, qword [rsp + 0x50]
adc rdx, r9
mov r9, rdx
mov qword [rsp + 0x40], r8
mul r15
mov qword [rsp + 0x48], r9
mov rsi, rax
mov rdi, rdx
mov rax, r10
mul qword [rsp + 0x2c0]
add rsi, rax
mov rax, rbx
adc rdi, rdx
mul r11
add rsi, rax
mov rax, rbp
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, r14
mov r14, r8
adc rdi, rdx
mul r13
add rax, rsi
adc rdx, rdi
shrd r14, r9, 0x33
xor r15d, r15d
add r14, rax
mov rax, qword [rsp + 0x28]
adc r15, rdx
mul qword [rsp + 0x2c0]
mov rsi, rax
mov rax, r10
mov rdi, rdx
mul r11
add rsi, rax
mov rax, rbx
adc rdi, rdx
mul rbp
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul qword [rsp + 0x2d8]
add rsi, rax
mov rax, qword [rsp + 0x50]
adc rdi, rdx
mul r13
add rax, rsi
mov rsi, r14
adc rdx, rdi
shrd rsi, r15, 0x33
xor r9d, r9d
mov r8, rsi
add r8, rax
mov rax, qword [rsp + 0x28]
adc r9, rdx
mul r11
mov rsi, rax
mov rax, r10
mov rdi, rdx
mov r10, r8
mul rbp
add rsi, rax
mov rax, rbx
adc rdi, rdx
mul qword [rsp + 0x2d8]
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul qword [rsp + 0x2e0]
mov rcx, rax
mov rbx, rdx
mov rax, r13
add rcx, rsi
adc rbx, rdi
mul qword [rsp + 0x2c0]
mov rdi, qword [rsp + 0x3d0]
add rcx, rax
adc rbx, rdx
shrd r10, r9, 0x33
xor edx, edx
add rcx, r10
adc rbx, rdx
mov rax, rcx
and r14, r12
and r8, r12
shrd rax, rbx, 0x33
and rcx, r12
movabs rbx, 0x1ffffffffffffc0
lea rdx, [rax + rax*8]
lea r10, [rax + rdx*2]
mov rax, qword [rsp + 0x30]
and rax, r12
add r10, rax
mov rax, qword [rsp + 0x40]
mov rdx, r10
and r10, r12
and rax, r12
shr rdx, 0x33
add rax, rdx
movabs rdx, 0xfff8000000000013
add r10, rdx
mov r9, rax
shr rax, 0x33
mov rdx, r10
and r9, r12
add rax, r14
sar rdx, 0x33
neg edx
movzx edx, dl
sub r9, rdx
sub r9, r12
mov rdx, r9
sar rdx, 0x33
neg edx
movzx edx, dl
sub rax, rdx
sub rax, r12
mov rdx, rax
sar rdx, 0x33
neg edx
movzx edx, dl
sub r8, rdx
sub r8, r12
mov r11, r8
sar r11, 0x33
neg r11d
movzx r11d, r11b
sub rcx, r11
mov r11, r10
movabs r10, 0x7ffffffffffed
mov rdx, rcx
sub rdx, r12
mov rcx, rdx
sar rcx, 0x33
and r11, r12
and r10, rcx
and r9, r12
and rcx, r12
add r11, r10
add r9, rcx
and rax, r12
and rdx, r12
mov r10, r11
shr r11, 0x33
add rax, rcx
add rdx, rcx
add r9, r11
and r10, r12
mov r11, r9
mov dword [rdi], r10d
shr r11, 0x33
add rax, r11
mov r11, r8
and r11, r12
mov r8, rax
shl rax, 6
add r11, rcx
shr r8, 0x33
and rax, rbx
movabs rcx, 0x7ffffffffffff0
add r11, r8
lea r8, [r9*8]
movabs r9, 0x3ffffffffffff8
and r8, r9
mov r9, r10
mov rbx, r11
shr r11, 0x33
shr r9, 0x30
and rbx, r12
add rdx, r11
add r9, r8
shr r8, 0x30
add rax, r8
shl rdx, 4
mov r8, rax
shr r8, 0x38
and rdx, rcx
lea r8, [r8 + rbx*2]
mov rcx, r8
shr rcx, 0x30
add rdx, rcx
mov rcx, r10
shr r10, 0x28
shr rcx, 0x20
mov byte [rdi + 5], r10b
mov byte [rdi + 4], cl
mov rcx, r9
shr rcx, 0x20
mov dword [rdi + 6], r9d
shr r9, 0x28
mov byte [rdi + 0xa], cl
mov rcx, rax
shr rcx, 0x20
mov dword [rdi + 0xc], eax
mov byte [rdi + 0x10], cl
mov rcx, rax
shr rax, 0x30
mov byte [rdi + 0x12], al
mov rax, r8
shr rcx, 0x28
shr rax, 0x20
mov dword [rdi + 0x13], r8d
shr r8, 0x28
mov byte [rdi + 0x17], al
mov rax, rdx
shr rax, 0x20
mov dword [rdi + 0x19], edx
mov byte [rdi + 0x1d], al
mov rax, rdx
shr rdx, 0x30
shr rax, 0x28
mov byte [rdi + 0xb], r9b
mov byte [rdi + 0x11], cl
mov byte [rdi + 0x18], r8b
mov byte [rdi + 0x1e], al
mov byte [rdi + 0x1f], dl
add rsp, 0x388
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret