Function at 0x78aa80
Capabilities:
Encrypt data using chaskey

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x338
movdqu xmm4, xmmword [rdx]
movzx r9d, byte [r8 + 2]
shl r9, 0x10
mov qword [rsp + 0x380], rcx
movzx ecx, byte [r8 + 6]
mov rax, r8
movups xmmword [rsp + 0x280], xmm4
movdqu xmm4, xmmword [rdx + 0x10]
movzx edx, byte [r8 + 5]
shl rcx, 0x30
shl rdx, 0x28
movups xmmword [rsp + 0x290], xmm4
add rcx, rdx
movzx edx, byte [r8]
add rcx, rdx
movzx edx, byte [r8 + 4]
shl rdx, 0x20
add rcx, rdx
movzx edx, byte [r8 + 3]
shl rdx, 0x18
add rcx, rdx
movzx edx, byte [rax + 0xc]
add rcx, r9
movzx r9d, byte [r8 + 1]
movabs r8, 0x7ffffffffffff
shl r9, 8
add r9, rcx
mov rcx, rdx
movzx edx, byte [rax + 0xb]
shl rcx, 0x2d
mov rbx, r9
shl rdx, 0x25
and rbx, r8
add rdx, rcx
movzx ecx, byte [rax + 0xa]
mov qword [rsp + 0xb0], rbx
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 rdx, rcx
mov rcx, r9
shr rcx, 0x33
lea r9, [rdx + rcx]
movzx edx, byte [rax + 0x13]
mov rdi, r9
mov rcx, rdx
movzx edx, byte [rax + 0x12]
and rdi, r8
shl rcx, 0x32
mov qword [rsp + 0xb8], rdi
shl rdx, 0x2a
add rdx, rcx
movzx ecx, byte [rax + 0x11]
shl rcx, 0x22
add rdx, rcx
movzx ecx, byte [rax + 0x10]
shl rcx, 0x1a
add rdx, rcx
movzx ecx, byte [rax + 0xf]
shl rcx, 0x12
add rdx, rcx
movzx ecx, byte [rax + 0xe]
shl rcx, 0xa
add rdx, rcx
movzx ecx, byte [rax + 0xd]
lea rcx, [rdx + rcx*4]
mov rdx, r9
shr rdx, 0x33
lea r9, [rcx + rdx]
movzx edx, byte [rax + 0x19]
mov rsi, r9
mov rcx, rdx
movzx edx, byte [rax + 0x18]
and rsi, r8
shl rcx, 0x2f
mov qword [rsp + 0xc0], rsi
shl rdx, 0x27
add rdx, rcx
movzx ecx, byte [rax + 0x17]
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 + 0xf8], rsi
mov qword [rsp + 0x98], rdi
shl rcx, 0xf
mov qword [rsp + 0x60], rbx
mov qword [rsp + 0x228], 0
add rdx, rcx
movzx ecx, byte [rax + 0x14]
mov qword [rsp + 0xa0], 0
mov qword [rsp + 0x80], 0
shl rcx, 7
mov qword [rsp + 0x128], 0
add rdx, rcx
mov rcx, r9
mov qword [rsp + 0x110], 0
shr rcx, 0x33
mov qword [rsp + 0x100], 1
lea r9, [rdx + rcx]
movzx edx, byte [rax + 0x1e]
mov qword [rsp + 0x210], 0
mov r14, r9
mov rcx, rdx
movzx edx, byte [rax + 0x1d]
and r14, r8
mov qword [rsp + 0x208], 0
shl rcx, 0x24
mov qword [rsp + 0x220], 0
shl rdx, 0x1c
mov qword [rsp + 0x218], 0
add rdx, rcx
movzx ecx, byte [rax + 0x1c]
mov qword [rsp + 0x200], 1
mov dword [rsp + 0x1f8], 0xfe
shl rcx, 0x14
mov qword [rsp + 0xc8], r14
add rdx, rcx
movzx ecx, byte [rax + 0x1b]
mov dword [rsp + 0x1fc], 0
mov qword [rsp + 0x1f0], r14
shl rcx, 0xc
add rdx, rcx
movzx ecx, byte [rax + 0x1a]
movzx eax, byte [rax + 0x1f]
shl rcx, 4
and eax, 0x7f
add rdx, rcx
shl rax, 0x2c
add rax, rdx
mov rdx, r9
shr rdx, 0x33
xor r14d, r14d
xor r13d, r13d
xor ebp, ebp
add rax, rdx
mov rdx, r14
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0x120], rax
nop dword [rax]
mov ebx, dword [rsp + 0x1f8]
mov r11d, dword [rsp + 0x1fc]
mov rdi, qword [rsp + 0x60]
mov rsi, qword [rsp + 0x218]
mov eax, ebx
mov ecx, ebx
mov r10, qword [rsp + 0xf8]
mov r15, qword [rsp + 0x1f0]
sar eax, 3
and ecx, 7
cdqe
movzx eax, byte [rsp + rax + 0x280]
sar eax, cl
and eax, 1
xor r11d, eax
mov dword [rsp + 0x1fc], eax
mov rax, qword [rsp + 0x200]
mov ecx, r11d
mov r11, qword [rsp + 0x98]
mov r12, rax
neg rcx
xor r12, rdi
and r12, rcx
mov r9, r12
xor rax, r12
xor r9, rdi
mov rdi, rsi
mov qword [rsp + 0x20], rax
xor rdi, r11
and rdi, rcx
xor rsi, rdi
xor rdi, r11
mov qword [rsp + 0x60], rdi
mov rdi, qword [rsp + 0x220]
mov qword [rsp + 0x50], rsi
mov r11, rdi
xor r11, r10
mov rsi, r11
and rsi, rcx
mov r11, rsi
xor rdi, rsi
xor r11, r10
mov qword [rsp + 0x70], rdi
mov qword [rsp + 0x98], r11
mov r11, qword [rsp + 0x208]
mov r10, r11
xor r10, r15
mov rbx, r10
mov r10, qword [rsp + 0x210]
and rbx, rcx
mov r12, rbx
xor r11, rbx
xor r12, r15
mov r15, qword [rsp + 0x120]
mov qword [rsp + 0xd0], r11
mov qword [rsp + 0xe8], r12
mov r12, r10
xor r12, r15
mov r11, r12
and r11, rcx
mov rsi, r11
xor r10, r11
mov r11, qword [rsp + 0xa0]
xor rsi, r15
mov r15, qword [rsp + 0x100]
mov qword [rsp + 0xf8], r10
mov qword [rsp + 0x120], rsi
mov r10, qword [rsp + 0x228]
mov r12, r15
xor r12, r13
and r12, rcx
xor r13, r12
xor r12, r15
mov r15, qword [rsp + 0x110]
mov rdi, r15
xor rdi, rbp
and rdi, rcx
xor rbp, rdi
xor rdi, r15
mov r15, qword [rsp + 0x128]
mov qword [rsp + 0x128], r9
mov rsi, r15
xor rsi, rdx
and rsi, rcx
xor rdx, rsi
xor rsi, r15
mov r15, qword [rsp + 0x80]
mov rbx, r15
xor rbx, r11
and rbx, rcx
xor r15, rbx
xor rbx, r11
mov r11, r10
xor r11, r14
and r11, rcx
movabs rcx, 0xffffffffffffe
xor r14, r11
xor r11, r10
movabs r10, 0xffffffffffffe
mov qword [rsp + 0xf0], r14
movabs r14, 0xfffffffffffda
add r14, r9
movabs r9, 0xffffffffffffe
add r9, qword [rsp + 0x60]
sub r9, rdi
sub r14, r12
mov qword [rsp + 0x80], r9
add rcx, qword [rsp + 0x98]
movabs r9, 0xffffffffffffe
add r9, qword [rsp + 0xe8]
sub rcx, rsi
mov qword [rsp + 0x100], rsi
movabs rsi, 0xffffffffffffe
sub r9, rbx
add rsi, qword [rsp + 0x70]
add r10, qword [rsp + 0x120]
mov qword [rsp + 0x110], r15
mov qword [rsp + 0xa0], r9
sub r10, r11
movabs r9, 0xfffffffffffda
add r9, qword [rsp + 0x20]
mov rax, r9
sub rax, r13
mov qword [rsp + 0x38], rax
movabs rax, 0xffffffffffffe
add rax, qword [rsp + 0x50]
mov r9, rax
mov rax, rsi
movabs rsi, 0xffffffffffffe
add rsi, qword [rsp + 0xd0]
sub rax, rdx
sub rsi, r15
sub r9, rbp
mov qword [rsp + 0x90], rax
mov rax, qword [rsp + 0xf0]
mov qword [rsp + 0x40], rsi
movabs rsi, 0xffffffffffffe
add rsi, qword [rsp + 0xf8]
mov r15, rsi
add rdi, qword [rsp + 0x60]
add rdx, qword [rsp + 0x70]
sub r15, rax
add r12, qword [rsp + 0x128]
add rax, qword [rsp + 0xf8]
add r11, qword [rsp + 0x120]
mov rsi, qword [rsp + 0x100]
mov qword [rsp + 0xf0], r15
add rsi, qword [rsp + 0x98]
add rbp, qword [rsp + 0x50]
mov qword [rsp + 0x1f0], r12
mov r12, rax
add r13, qword [rsp + 0x20]
mov qword [rsp + 0x50], rdi
lea rax, [rax + rax*8]
add rbx, qword [rsp + 0xe8]
mov qword [rsp + 0x20], rdx
lea rdi, [r12 + rax*2]
mov qword [rsp + 0x60], rsi
mov rdx, qword [rsp + 0x110]
add rdx, qword [rsp + 0xd0]
mov qword [rsp + 0x70], r11
mov r11, qword [rsp + 0x20]
lea rax, [rdx + rdx*8]
mov qword [rsp + 0xd0], rdx
lea rsi, [rdx + rax*2]
mov qword [rsp + 0xe8], r12
mov r12, rdi
lea rax, [r11 + r11*8]
mov r15, rsi
mov qword [rsp + 0x98], r13
lea r11, [r11 + rax*2]
lea rax, [rbp + rbp*8]
mov qword [rsp + 0xf8], r15
lea rsi, [rbp + rax*2]
mov qword [rsp + 0x138], 0
mov qword [rsp + 0x148], 0
mov rax, rsi
mul r10
mov rsi, rax
mov rax, qword [rsp + 0xa0]
mov rdi, rdx
mul r11
add rsi, rax
mov rax, r15
mov r15, r12
adc rdi, rdx
mul rcx
mov qword [rsp + 0x120], r15
add rsi, rax
mov rax, r12
adc rdi, rdx
mul qword [rsp + 0x80]
add rsi, rax
mov rax, r13
adc rdi, rdx
mul r14
add rsi, rax
mov rax, r11
adc rdi, rdx
mul r10
mov r12, rsi
mov r13, rdi
mov qword [rsp + 0x100], r12
mov qword [rsp + 0x108], r13
mov rsi, rax
mov rdi, rdx
mov rax, qword [rsp + 0xf8]
mul qword [rsp + 0xa0]
add rsi, rax
mov rax, r15
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, qword [rsp + 0x80]
adc rdi, rdx
mul qword [rsp + 0x98]
add rsi, rax
mov rax, rbp
adc rdi, rdx
mul r14
add rax, rsi
mov rsi, r12
adc rdx, rdi
shrd rsi, r13, 0x33
mov qword [rsp + 0x130], rsi
add rax, qword [rsp + 0x130]
mov r11, rax
mov rax, qword [rsp + 0xf8]
adc rdx, qword [rsp + 0x138]
mov r12, rdx
mov qword [rsp + 0x110], r11
mul r10
mov qword [rsp + 0x118], r12
mov rsi, rax
mov rdi, rdx
mov rax, r15
mul qword [rsp + 0xa0]
add rsi, rax
mov rax, qword [rsp + 0x98]
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, qword [rsp + 0x80]
adc rdi, rdx
mul rbp
add rsi, rax
mov rax, qword [rsp + 0x20]
adc rdi, rdx
mul r14
add rax, rsi
mov rsi, r11
adc rdx, rdi
shrd rsi, r12, 0x33
mov qword [rsp + 0x140], rsi
add rax, qword [rsp + 0x140]
mov r12, rax
adc rdx, qword [rsp + 0x148]
mov rax, r15
mov r13, rdx
mul r10
mov rsi, rax
mov rax, qword [rsp + 0xa0]
mov rdi, rdx
mov r11, qword [rsp + 0x98]
mov r15, qword [rsp + 0xd0]
mov qword [rsp + 0x158], 0
mov qword [rsp + 0x168], 0
mul r11
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul rbp
add rsi, rax
mov rax, qword [rsp + 0x80]
adc rdi, rdx
mul qword [rsp + 0x20]
add rsi, rax
mov rax, r15
adc rdi, rdx
mul r14
add rsi, rax
mov rax, r12
adc rdi, rdx
shrd rax, r13, 0x33
mov r13, r12
mov qword [rsp + 0x150], rax
add rsi, qword [rsp + 0x150]
mov rax, r10
mov rdx, rsi
adc rdi, qword [rsp + 0x158]
and rdx, r8
mov qword [rsp + 0x218], rdx
mul r11
mov r10, rax
mov rax, qword [rsp + 0xa0]
mov r11, rdx
mul rbp
add r10, rax
mov rax, rcx
adc r11, rdx
mul qword [rsp + 0x20]
add r10, rax
mov rax, qword [rsp + 0x80]
adc r11, rdx
mul r15
mov r15, qword [rsp + 0xf0]
add r10, rax
mov rax, r14
adc r11, rdx
mul qword [rsp + 0xe8]
add r10, rax
mov rax, rsi
adc r11, rdx
shrd rax, rdi, 0x33
mov rdi, qword [rsp + 0x40]
mov qword [rsp + 0x160], rax
add r10, qword [rsp + 0x160]
adc r11, qword [rsp + 0x168]
mov rdx, r10
and r13, r8
shrd r10, r11, 0x33
and rdx, r8
lea rax, [r10 + r10*8]
mov qword [rsp + 0x220], rdx
lea rdx, [r10 + rax*2]
mov r10, qword [rsp + 0x100]
mov rax, qword [rsp + 0x110]
and r10, r8
and rax, r8
mov rsi, r10
add rsi, rdx
mov r10, rsi
shr rsi, 0x33
lea r14, [rax + rsi]
mov rsi, qword [rsp + 0x90]
and r10, r8
mov rax, r14
shr r14, 0x33
mov qword [rsp + 0x100], r10
and rax, r8
add r14, r13
mov qword [rsp + 0x110], rax
lea rax, [r15 + r15*8]
mov qword [rsp + 0x128], r14
lea r14, [r15 + rax*2]
lea rax, [rdi + rdi*8]
mov r15, qword [rsp + 0x1f0]
lea rcx, [rdi + rax*2]
lea rax, [rsi + rsi*8]
mov rdi, qword [rsp + 0x38]
lea rsi, [rsi + rax*2]
lea rax, [r9 + r9*8]
lea r10, [r9 + rax*2]
mov rax, r10
mul qword [rsp + 0x70]
mov r10, rax
mov rax, rsi
mov r11, rdx
mul rbx
add r10, rax
mov rax, rdi
adc r11, rdx
mul r15
add r10, rax
mov rax, qword [rsp + 0x60]
adc r11, rdx
mul rcx
add r10, rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + 0x178], 0
mov qword [rsp + 0x188], 0
adc r11, rdx
mov qword [rsp + 0x198], 0
mul r14
add r10, rax
mov rax, qword [rsp + 0x50]
adc r11, rdx
mov r12, r10
mul rdi
mov r13, r11
mov qword [rsp + 0x80], r12
mov qword [rsp + 0x88], r13
mov r10, rax
mov rax, r15
mov r11, rdx
mul r9
add r10, rax
mov rax, rsi
adc r11, rdx
mul qword [rsp + 0x70]
add r10, rax
mov rax, rcx
adc r11, rdx
mul rbx
add r10, rax
mov rax, qword [rsp + 0x60]
adc r11, rdx
mul r14
add rax, r10
mov r10, r12
adc rdx, r11
shrd r10, r13, 0x33
mov qword [rsp + 0x170], r10
add rax, qword [rsp + 0x170]
mov r12, rax
mov rax, qword [rsp + 0x60]
adc rdx, qword [rsp + 0x178]
mov r13, rdx
mov rsi, r12
mul rdi
mov r10, rax
mov rax, qword [rsp + 0x50]
mov r11, rdx
mul r9
add r10, rax
mov rax, qword [rsp + 0x90]
adc r11, rdx
mul r15
add r10, rax
mov rax, qword [rsp + 0x70]
adc r11, rdx
mul rcx
add r10, rax
mov rax, r14
adc r11, rdx
mul rbx
add rax, r10
adc rdx, r11
shrd rsi, r13, 0x33
mov qword [rsp + 0x180], rsi
add rax, qword [rsp + 0x180]
mov rsi, rax
mov rax, qword [rsp + 0x38]
adc rdx, qword [rsp + 0x188]
mov rdi, rdx
mov qword [rsp + 0xa0], rsi
mul rbx
mov qword [rsp + 0xa8], rdi
mov r10, rax
mov rax, qword [rsp + 0x60]
mov r11, rdx
mul r9
add r10, rax
mov rax, qword [rsp + 0x50]
adc r11, rdx
mul qword [rsp + 0x90]
add r10, rax
mov rax, r15
adc r11, rdx
mul qword [rsp + 0x40]
add r10, rax
mov rax, qword [rsp + 0x70]
adc r11, rdx
mul r14
add r10, rax
mov rax, rsi
adc r11, rdx
shrd rax, rdi, 0x33
mov qword [rsp + 0x190], rax
add r10, qword [rsp + 0x190]
mov rdx, r10
adc r11, qword [rsp + 0x198]
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x1a8], 0
and rdx, r8
mov r13, qword [rsp + 0x38]
mov qword [rsp + 0x1f0], rdx
mul qword [rsp + 0x38]
mov rsi, rax
mov rax, rbx
mov rdi, rdx
mul r9
mov rbx, rsi
mov rsi, rdi
add rbx, rax
mov rax, qword [rsp + 0x60]
adc rsi, rdx
mul qword [rsp + 0x90]
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rsi
mov rbx, qword [rsp + 0x40]
mov rsi, rax
mov rdi, rdx
add rsi, qword [rsp + 0x70]
mov rax, qword [rsp + 0x50]
adc rdi, qword [rsp + 0x78]
mul qword [rsp + 0x40]
add rsi, rax
mov rax, r15
mov r15, qword [rsp + 0xf0]
adc rdi, rdx
mul r15
add rsi, rax
adc rdi, rdx
shrd r10, r11, 0x33
mov r11, qword [rsp + 0x90]
mov qword [rsp + 0x1a0], r10
add rsi, qword [rsp + 0x1a0]
mov rax, rsi
adc rdi, qword [rsp + 0x1a8]
mov r10, qword [rsp + 0x80]
and r12, r8
shrd rsi, rdi, 0x33
and rax, r8
mov qword [rsp + 0xf0], rax
lea rax, [rsi + rsi*8]
and r10, r8
lea rdx, [rsi + rax*2]
mov rsi, qword [rsp + 0xa0]
mov rax, r12
add r10, rdx
mov rdx, r10
shr r10, 0x33
and rsi, r8
add rax, r10
and rdx, r8
mov r12, rax
shr rax, 0x33
mov qword [rsp + 0x200], rdx
lea r10, [rsi + rax]
lea rsi, [rcx + rcx]
and r12, r8
mov rax, rsi
mov qword [rsp + 0x210], r10
lea r10, [r14 + r14]
mul r11
mov qword [rsp + 0x208], r12
lea r12, [rbx + rbx]
mov qword [rsp + 0x50], r12
lea r12, [r11 + r11]
mov rsi, rax
mov rax, r10
mov rdi, rdx
mul r9
add rsi, rax
mov rax, r13
adc rdi, rdx
mul r13
add rsi, rax
mov rax, rcx
adc rdi, rdx
mul rbx
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], rdi
mov rcx, rax
mov rax, r11
mov rbx, rdx
mul r10
add rcx, rax
lea rax, [r9 + r9]
adc rbx, rdx
mul r13
add rcx, rax
mov rax, rsi
adc rbx, rdx
shrd rax, rdi, 0x33
mov qword [rsp + 0x1b0], rax
mov rax, r10
mov qword [rsp + 0x1b8], 0
add rcx, qword [rsp + 0x1b0]
adc rbx, qword [rsp + 0x1b8]
mul qword [rsp + 0x40]
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x1c8], 0
mov qword [rsp + 0x1d8], 0
mov r10, rax
mov rax, r13
mov r11, rdx
mov qword [rsp + 0x1e8], 0
mul r12
add r10, rax
mov rax, r9
adc r11, rdx
mul r9
mov rsi, rax
mov rdi, rdx
mov rax, r14
add rsi, r10
mov r10, r15
adc rdi, r11
shrd rcx, rbx, 0x33
mov r11, qword [rsp + 0x38]
mov qword [rsp + 0x1c0], rcx
add rsi, qword [rsp + 0x1c0]
adc rdi, qword [rsp + 0x1c8]
mul r15
mov rcx, qword [rsp + 0x40]
mov r14, rax
mov rax, r12
mov r15, rdx
mov r12, qword [rsp + 0x50]
mul r9
add r14, rax
mov rax, r12
adc r15, rdx
mul r11
add r14, rax
mov rax, rsi
adc r15, rdx
shrd rax, rdi, 0x33
mov qword [rsp + 0x1d0], rax
mov rax, r11
add r14, qword [rsp + 0x1d0]
adc r15, qword [rsp + 0x1d8]
add r10, r10
mov r13, r14
mul r10
and r13, r8
mov qword [rsp + 0x80], r13
mov r10, rax
mov rax, r12
mov r11, rdx
mul r9
mov r9, qword [rsp + 0x90]
add r10, rax
mov rax, r9
adc r11, rdx
mul r9
add r10, rax
adc r11, rdx
shrd r14, r15, 0x33
mov r15, qword [rsp + 0x120]
mov qword [rsp + 0x1e0], r14
add r10, qword [rsp + 0x1e0]
mov r9, r10
adc r11, qword [rsp + 0x1e8]
and rcx, r8
and rsi, r8
and r9, r8
shrd r10, r11, 0x33
mov qword [rsp + 0xa0], r9
mov r9, qword [rsp + 0x60]
lea rax, [r10 + r10*8]
lea rbx, [r10 + rax*2]
and r9, r8
add rbx, r9
mov r9, rbx
shr rbx, 0x33
add rbx, rcx
and r9, r8
lea rcx, [r15 + r15]
mov qword [rsp + 0x38], r9
mov r9, rbx
shr rbx, 0x33
add rsi, rbx
and r9, r8
mov rbx, qword [rsp + 0xd0]
mov qword [rsp + 0x90], r9
mov qword [rsp + 0x40], rsi
mov rdi, qword [rsp + 0x20]
lea r9, [rbx + rbx]
mov rsi, qword [rsp + 0xf8]
mov r15, qword [rsp + 0x98]
lea r14, [rdi + rdi]
lea r12, [rsi + rsi]
mov rax, r12
mul rdi
mov r12, rax
mov rax, rcx
mov r13, rdx
mul rbp
add r12, rax
mov rax, r15
adc r13, rdx
mul r15
add r12, rax
mov rax, rsi
adc r13, rdx
mul rbx
mov r10, rax
mov rax, rdi
mov r11, rdx
mul rcx
add r10, rax
lea rax, [rbp + rbp]
adc r11, rdx
mul r15
add r10, rax
mov rax, r12
adc r11, rdx
shrd rax, r13, 0x33
mov rdx, r13
shr rdx, 0x33
add r10, rax
mov rax, rbx
adc r11, rdx
mul rcx
mov rcx, rax
mov rax, r15
mov rbx, rdx
mul r14
add rcx, rax
mov rax, rbp
adc rbx, rdx
mul rbp
mov rsi, rax
mov rdi, rdx
mov rax, qword [rsp + 0x120]
add rsi, rcx
mov rcx, r10
adc rdi, rbx
shrd rcx, r11, 0x33
mov rbx, r11
mov r11, qword [rsp + 0xf0]
shr rbx, 0x33
add rsi, rcx
adc rdi, rbx
mul qword [rsp + 0xe8]
mov rcx, rax
mov rax, r14
mov rbx, rdx
mul rbp
add rcx, rax
mov rax, r15
adc rbx, rdx
mul r9
add rcx, rax
mov rax, rsi
adc rbx, rdx
shrd rax, rdi, 0x33
mov rdx, rdi
mov rdi, qword [rsp + 0x208]
shr rdx, 0x33
add rcx, rax
mov rax, r15
mov r14, rcx
adc rbx, rdx
and r14, r8
mov qword [rsp + 0x70], r14
mov r14, qword [rsp + 0xe8]
add r14, r14
mul r14
mov r14, rax
mov rax, r9
mov r15, rdx
mov r9, qword [rsp + 0x20]
mul rbp
mov rbp, qword [rsp + 0x210]
add r14, rax
mov rax, r9
adc r15, rdx
mul r9
add r14, rax
adc r15, rdx
shrd rcx, rbx, 0x33
shr rbx, 0x33
add rcx, r14
adc rbx, r15
mov r15, rcx
and r12, r8
and r10, r8
shrd rcx, rbx, 0x33
and rsi, r8
mov rbx, qword [rsp + 0x100]
and r15, r8
lea rax, [rcx + rcx*8]
lea rdx, [rcx + rax*2]
mov rax, qword [rsp + 0x200]
add r12, rdx
mov rdx, qword [rsp + 0x1f0]
mov rcx, r12
shr r12, 0x33
add rbx, rax
add r10, r12
and rcx, r8
mov qword [rsp + 0x98], rbx
mov r13, rdx
mov r14, rcx
mov rcx, r10
shr r10, 0x33
mov rbx, qword [rsp + 0x218]
and rcx, r8
mov r9, rcx
lea rcx, [rsi + r10]
mov rsi, qword [rsp + 0x110]
add r13, rbx
mov r10, qword [rsp + 0x128]
mov qword [rsp + 0x228], r13
add rsi, rdi
mov r13, qword [rsp + 0x220]
mov qword [rsp + 0x60], rsi
add r10, rbp
movabs rsi, 0xfffffffffffda
add rsi, qword [rsp + 0x100]
mov r12, rsi
mov qword [rsp + 0xf8], r10
mov r10, r11
sub r12, rax
add r10, r13
mov qword [rsp + 0x100], r12
movabs r12, 0xffffffffffffe
add r12, qword [rsp + 0x110]
mov rax, r12
mov r12, qword [rsp + 0x80]
mov qword [rsp + 0x120], r10
sub rax, rdi
movabs rdi, 0xffffffffffffe
add rdi, rbx
mov qword [rsp + 0x50], rax
movabs rax, 0xffffffffffffe
add rax, qword [rsp + 0x128]
sub rax, rbp
mov rbp, rdi
sub rbp, rdx
mov qword [rsp + 0x110], rax
movabs rdx, 0xffffffffffffe
add rdx, r13
mov rdi, rdx
sub rdi, r11
mov r11, qword [rsp + 0xa0]
mov qword [rsp + 0x128], rdi
mov rdx, qword [rsp + 0x40]
lea rax, [r11 + r11*8]
lea r10, [r11 + rax*2]
lea rax, [r12 + r12*8]
lea rbx, [r12 + rax*2]
lea rax, [rdx + rdx*8]
lea r11, [rdx + rax*2]
mov rax, r10
mul r9
mov rsi, rax
mov rax, qword [rsp + 0x38]
mov rdi, rdx
mul r14
add rsi, rax
mov rax, rbx
adc rdi, rdx
mul rcx
add rsi, rax
adc rdi, rdx
mov r12, rsi
mov rsi, qword [rsp + 0x70]
mov r13, rdi
mov rdi, qword [rsp + 0x90]
lea rax, [rdi + rdi*8]
lea rax, [rdi + rax*2]
mul r15
add r12, rax
mov rax, rsi
adc r13, rdx
mul r11
add r12, rax
mov rax, rsi
adc r13, rdx
mul rbx
mov qword [rsp + 0x20], r12
mov qword [rsp + 0x28], r13
mov rsi, rax
mov rax, qword [rsp + 0x38]
mov rdi, rdx
mul r9
add rsi, rax
mov rax, r10
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, qword [rsp + 0x90]
adc rdi, rdx
mul r14
add rsi, rax
mov rax, r11
adc rdi, rdx
mul r15
add rax, rsi
mov rsi, r12
adc rdx, rdi
shrd rsi, r13, 0x33
mov rdi, r13
shr rdi, 0x33
add rax, rsi
adc rdx, rdi
mov r11, rax
mov rax, rbx
mov r12, rdx
mul r15
mov rbx, r11
mov qword [rsp + 0xd0], r11
mov qword [rsp + 0xd8], r12
mov rsi, rax
mov rax, qword [rsp + 0x70]
mov rdi, rdx
mul r10
add rsi, rax
mov rax, qword [rsp + 0x38]
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, qword [rsp + 0x90]
adc rdi, rdx
mul r9
add rsi, rax
mov rax, qword [rsp + 0x40]
adc rdi, rdx
mul r14
add rax, rsi
mov rsi, r12
adc rdx, rdi
shrd rbx, r12, 0x33
mov rdi, qword [rsp + 0x38]
shr rsi, 0x33
mov r12, rbx
mov rbx, qword [rsp + 0x90]
add r12, rax
mov r13, rsi
mov rax, r10
adc r13, rdx
mul r15
mov r10, rax
mov rax, qword [rsp + 0x80]
mov r11, rdx
mul r14
add r10, rax
mov rax, qword [rsp + 0x70]
adc r11, rdx
mul rdi
add r10, rax
mov rax, rbx
adc r11, rdx
mul rcx
add r10, rax
mov rax, qword [rsp + 0x40]
adc r11, rdx
mul r9
add r10, rax
mov rax, r12
adc r11, rdx
shrd rax, r13, 0x33
mov rdx, r13
shr rdx, 0x33
add r10, rax
mov rax, rdi
adc r11, rdx
mov rdx, r10
and rdx, r8
mov qword [rsp + 0x208], rdx
mul r15
mov rsi, rax
mov rax, qword [rsp + 0xa0]
mov rdi, rdx
mul r14
add rsi, rax
mov rax, qword [rsp + 0x80]
adc rdi, rdx
mul r9
add rsi, rax
mov rax, qword [rsp + 0x70]
adc rdi, rdx
mul rbx
add rsi, rax
mov rax, qword [rsp + 0x40]
adc rdi, rdx
mul rcx
add rsi, rax
adc rdi, rdx
shrd r10, r11, 0x33
shr r11, 0x33
add rsi, r10
adc rdi, r11
mov qword [rsp + 0x278], rsi
mov rdx, rsi
shrd rsi, rdi, 0x33
and rdx, r8
lea rax, [rsi + rsi*8]
mov qword [rsp + 0x210], rdx
lea rdx, [rsi + rax*2]
mov rsi, qword [rsp + 0x20]
and rsi, r8
add rdx, rsi
mov rsi, rdx
shr rdx, 0x33
and rsi, r8
mov qword [rsp + 0x200], rsi
mov rsi, qword [rsp + 0xd0]
and rsi, r8
add rdx, rsi
mov rsi, rdx
shr rdx, 0x33
and rsi, r8
mov qword [rsp + 0x218], rsi
mov rsi, r12
and rsi, r8
lea rsi, [rsi + rdx]
mov qword [rsp + 0x220], rsi
movabs rsi, 0xfffffffffffda
add r14, rsi
add rsi, 0x24
sub r14, qword [rsp + 0x38]
lea r12, [r9 + rsi]
mov qword [rsp + 0xd0], r14
lea r14, [rcx + rsi]
mov rdx, qword [rsp + 0x128]
mov r9, r12
mov rcx, qword [rsp + 0x50]
mov r11, r14
mov r14, qword [rsp + 0x70]
sub r9, rbx
lea rax, [rdx + rdx*8]
add r15, rsi
sub r11, qword [rsp + 0x40]
mov rbx, qword [rsp + 0x110]
lea r10, [rdx + rax*2]
add r14, rsi
mov rdi, qword [rsp + 0x100]
lea rsi, [r10 + r10]
sub r14, qword [rsp + 0x80]
sub r15, qword [rsp + 0xa0]
mov qword [rsp + 0xf0], r11
mov rax, rbx
mov qword [rsp + 0x20], r14
add rax, rax
mov qword [rsp + 0x70], r15
mov qword [rsp + 0x1f0], rax
mov rax, rcx
mul rsi
mov qword [rsp + 0xe8], r9
lea r9, [rbp + rbp]
mov r12, rax
mov rax, rdi
mov r13, rdx
mul rdi
add r12, rax
lea rax, [rbp + rbp*8]
lea r11, [rbp + rax*2]
adc r13, rdx
mov r14, r12
lea rax, [r11 + r11]
lea r12, [rcx + rcx]
mov r15, r13
mul rbx
add r14, rax
mov rax, r12
adc r15, rdx
mul rdi
mov r12, rax
mov rax, rbx
mov r13, rdx
mul rsi
mov rcx, rax
mov rbx, rdx
mov rax, r11
mov r11, qword [rsp + 0x50]
add rcx, r12
adc rbx, r13
mul rbp
add rcx, rax
mov rax, r14
adc rbx, rdx
shrd rax, r15, 0x33
mov rdx, r15
shr rdx, 0x33
add rcx, rax
mov rax, rbp
mov rbp, qword [rsp + 0x100]
adc rbx, rdx
mul rsi
mov rsi, rax
mov rax, r11
mov rdi, rdx
mul r11
add rsi, rax
mov rax, qword [rsp + 0x1f0]
adc rdi, rdx
mul rbp
mov r12, rax
mov r13, rdx
mov rax, rcx
mov rdx, rbx
add r12, rsi
adc r13, rdi
mov rdi, qword [rsp + 0x128]
shrd rax, rbx, 0x33
shr rdx, 0x33
add r12, rax
mov rax, r10
adc r13, rdx
mul rdi
lea rsi, [rdi + rdi]
mov r10, rax
mov rax, rbp
mov r11, rdx
mul r9
add r10, rax
mov rax, qword [rsp + 0x1f0]
adc r11, rdx
mul qword [rsp + 0x50]
add r10, rax
mov rax, r12
adc r11, rdx
shrd rax, r13, 0x33
mov rdx, r13
shr rdx, 0x33
add r10, rax
mov rax, r10
adc r11, rdx
and rax, r8
mov qword [rsp + 0x100], rax
mov rax, rbp
mov rbp, qword [rsp + 0x110]
mul rsi
mov rsi, rax
mov rax, qword [rsp + 0x50]
mov rdi, rdx
mul r9
add rsi, rax
mov rax, rbp
adc rdi, rdx
mul rbp
add rsi, rax
adc rdi, rdx
shrd r10, r11, 0x33
shr r11, 0x33
add rsi, r10
adc rdi, r11
mov rbp, rsi
and rcx, r8
and r12, r8
shrd rsi, rdi, 0x33
and rbp, r8
lea rax, [rsi + rsi*8]
mov qword [rsp + 0x110], rbp
lea rdx, [rsi + rax*2]
mov rax, r14
and rax, r8
add rax, rdx
mov r15, rax
shr rax, 0x33
add rcx, rax
and r15, r8
mov rax, rcx
shr rcx, 0x33
mov qword [rsp + 0x128], r15
and rax, r8
lea rbp, [r12 + rcx]
mov r9, rax
mov eax, 0x1db42
mov qword [rsp + 0x50], rbp
mul qword [rsp + 0xd0]
mov r11, rdx
mov r10, rax
mov eax, 0x1db42
mul qword [rsp + 0xe8]
mov rcx, r10
mov rbx, r11
shrd rcx, r11, 0x33
shr rbx, 0x33
add rcx, rax
mov eax, 0x1db42
adc rbx, rdx
mul qword [rsp + 0xf0]
mov rsi, rcx
shrd rsi, rbx, 0x33
mov rdi, rbx
shr rdi, 0x33
add rax, rsi
adc rdx, rdi
mov rdi, rax
mov eax, 0x1db42
mov rbp, rdx
mul qword [rsp + 0x20]
mov r12, rdi
mov qword [rsp + 0x230], rdi
shrd r12, rbp, 0x33
mov r13, rbp
mov qword [rsp + 0x238], rbp
shr r13, 0x33
add rax, r12
adc rdx, r13
mov rsi, rax
mov eax, 0x1db42
mov rdi, rdx
mul qword [rsp + 0x70]
mov r14, rsi
mov qword [rsp + 0x240], rsi
shrd r14, rdi, 0x33
mov r15, rdi
mov rbx, qword [rsp + 0x98]
mov r13, qword [rsp + 0x228]
shr r15, 0x33
mov rsi, qword [rsp + 0xf8]
mov qword [rsp + 0x248], rdi
add rax, r14
lea rbp, [r13 + r13]
adc rdx, r15
and r10, r8
lea r11, [rsi + rsi]
and rcx, r8
mov qword [rsp + 0x250], rax
shrd rax, rdx, 0x33
mov qword [rsp + 0x258], rdx
lea rdx, [rax + rax*8]
lea rax, [rax + rdx*2]
mov qword [rsp + 0x1f0], r11
lea r14, [rax + r10]
mov rdx, r14
mov qword [rsp + 0x260], r14
shr rdx, 0x33
lea r10, [rcx + rdx]
mov rcx, qword [rsp + 0x60]
mov qword [rsp + 0x268], r10
mov r10, qword [rsp + 0x120]
lea rax, [r10 + r10*8]
lea r10, [r10 + rax*2]
mov rax, rcx
lea r12, [r10 + r10]
mul r12
mov r14, rax
mov rax, rbx
mov r15, rdx
mul rbx
add r14, rax
lea rax, [r13 + r13*8]
lea r11, [r13 + rax*2]
adc r15, rdx
lea rax, [r11 + r11]
mul rsi
lea rsi, [rcx + rcx]
add r14, rax
mov rax, rsi
adc r15, rdx
mul rbx
mov rsi, rax
mov rax, qword [rsp + 0xf8]
mov rdi, rdx
mul r12
add rsi, rax
mov rax, r11
mov r11, qword [rsp + 0x60]
adc rdi, rdx
mul r13
mov rcx, rax
mov rbx, rdx
mov rax, r13
add rcx, rsi
mov rsi, r14
adc rbx, rdi
shrd rsi, r15, 0x33
mov rdi, r15
shr rdi, 0x33
add rcx, rsi
adc rbx, rdi
mul r12
mov rsi, rcx
mov rdi, rbx
mov r12, rax
mov rax, r11
mov r13, rdx
mul r11
add r12, rax
mov rax, qword [rsp + 0x1f0]
adc r13, rdx
mul qword [rsp + 0x98]
add r12, rax
mov rax, r10
adc r13, rdx
shrd rsi, rbx, 0x33
shr rdi, 0x33
add r12, rsi
adc r13, rdi
mul qword [rsp + 0x120]
mov rsi, r12
mov rdi, r13
mov r10, rax
mov rax, qword [rsp + 0x98]
mov r11, rdx
mul rbp
add r10, rax
mov rax, qword [rsp + 0x1f0]
adc r11, rdx
mul qword [rsp + 0x60]
add r10, rax
mov rax, qword [rsp + 0x98]
adc r11, rdx
shrd rsi, r13, 0x33
mov rdx, qword [rsp + 0x120]
shr rdi, 0x33
add r10, rsi
mov rsi, r10
adc r11, rdi
and rsi, r8
mov qword [rsp + 0x1f0], rsi
lea rsi, [rdx + rdx]
mul rsi
mov rsi, rax
mov rax, qword [rsp + 0x60]
mov rdi, rdx
mul rbp
mov rbp, qword [rsp + 0xf8]
add rsi, rax
mov rax, rbp
adc rdi, rdx
mul rbp
add rsi, rax
adc rdi, rdx
shrd r10, r11, 0x33
shr r11, 0x33
add rsi, r10
adc rdi, r11
mov r10, rsi
and r14, r8
and rcx, r8
mov qword [rsp + 0x270], rsi
shrd rsi, rdi, 0x33
and r10, r8
and r12, r8
lea rax, [rsi + rsi*8]
mov qword [rsp + 0x120], r10
mov r10, qword [rsp + 0x260]
lea rdx, [rsi + rax*2]
add r14, rdx
and r10, r8
add r10, qword [rsp + 0x38]
mov rsi, r14
shr r14, 0x33
mov qword [rsp + 0x38], r10
add rcx, r14
and rsi, r8
mov qword [rsp + 0x60], rsi
mov rsi, rcx
shr rcx, 0x33
lea r13, [r12 + rcx]
and rsi, r8
mov qword [rsp + 0x98], rsi
mov qword [rsp + 0xf8], r13
mov r10, qword [rsp + 0x268]
mov r13, qword [rsp + 0x230]
mov rax, qword [rsp + 0x40]
mov rsi, qword [rsp + 0x240]
mov rcx, r10
shr r10, 0x33
mov r12, qword [rsp + 0x80]
and r13, r8
mov rbx, r10
mov rdx, qword [rsp + 0x50]
and rcx, r8
add rax, r13
and rsi, r8
add rcx, qword [rsp + 0x90]
mov r15, qword [rsp + 0x128]
add rbx, rax
mov rax, qword [rsp + 0x250]
lea rbp, [rsi + r12]
mov r12, qword [rsp + 0x110]
mov rsi, qword [rsp + 0x100]
and rax, r8
add rax, qword [rsp + 0xa0]
mov qword [rsp + 0x90], rax
lea rax, [r12 + r12*8]
lea r14, [r12 + rax*2]
lea rax, [rsi + rsi*8]
lea r11, [rsi + rax*2]
lea rax, [rdx + rdx*8]
lea r10, [rdx + rax*2]
mov rax, qword [rsp + 0xc0]
mul r11
mov rsi, rax
mov rax, qword [rsp + 0xb8]
mov rdi, rdx
mul r14
add rsi, rax
mov rax, r15
adc rdi, rdx
mul qword [rsp + 0xb0]
add rsi, rax
lea rax, [r9 + r9*8]
adc rdi, rdx
lea rax, [r9 + rax*2]
mov r12, rsi
mov rsi, qword [rsp + 0xc8]
mul qword [rsp + 0xe0]
mov r13, rdi
add r12, rax
mov rax, rsi
adc r13, rdx
mul r10
add r12, rax
mov rax, rsi
adc r13, rdx
mul r11
mov qword [rsp + 0x40], r12
mov rsi, rax
mov rax, qword [rsp + 0xc0]
mov rdi, rdx
mul r14
add rsi, rax
mov rax, r15
adc rdi, rdx
mul qword [rsp + 0xb8]
add rsi, rax
mov rax, qword [rsp + 0xb0]
adc rdi, rdx
mul r9
add rsi, rax
mov rax, r10
mov r10, qword [rsp + 0xe0]
adc rdi, rdx
mul r10
add rax, rsi
adc rdx, rdi
shrd r12, r13, 0x33
shr r13, 0x33
add r12, rax
mov rax, r11
adc r13, rdx
mul r10
mov r10, rax
mov rax, qword [rsp + 0xc8]
mov r11, rdx
mul r14
add r10, rax
mov rax, r15
adc r11, rdx
mul qword [rsp + 0xc0]
add r10, rax
mov rax, qword [rsp + 0xb8]
adc r11, rdx
mul r9
add r10, rax
mov rax, qword [rsp + 0x50]
adc r11, rdx
mul qword [rsp + 0xb0]
mov rsi, rax
mov rdi, rdx
mov rax, r12
mov rdx, r13
add rsi, r10
adc rdi, r11
shrd rax, r13, 0x33
shr rdx, 0x33
add rsi, rax
mov rax, r14
adc rdi, rdx
mul qword [rsp + 0xe0]
mov r10, rax
mov r11, rdx
mov rax, qword [rsp + 0x100]
mul qword [rsp + 0xb0]
add r10, rax
mov rax, r15
adc r11, rdx
mul qword [rsp + 0xc8]
add r10, rax
mov rax, qword [rsp + 0xc0]
adc r11, rdx
mul r9
add r10, rax
mov rax, qword [rsp + 0x50]
adc r11, rdx
mul qword [rsp + 0xb8]
mov r14, rax
mov r15, rdx
mov rax, rsi
mov rdx, rdi
add r14, r10
adc r15, r11
shrd rax, rdi, 0x33
mov rdi, qword [rsp + 0xd0]
shr rdx, 0x33
add r14, rax
mov rax, qword [rsp + 0x100]
adc r15, rdx
mov rdx, r14
and rdx, r8
mov qword [rsp + 0xa0], rdx
mul qword [rsp + 0xb8]
mov r10, rax
mov r11, rdx
mov rax, qword [rsp + 0x110]
mul qword [rsp + 0xb0]
add r10, rax
mov rax, qword [rsp + 0x128]
adc r11, rdx
mul qword [rsp + 0xe0]
add r10, rax
mov rax, r9
mov r9, qword [rsp + 0xe8]
adc r11, rdx
mul qword [rsp + 0xc8]
add r10, rax
mov rax, qword [rsp + 0x50]
adc r11, rdx
mul qword [rsp + 0xc0]
add r10, rax
adc r11, rdx
shrd r14, r15, 0x33
shr r15, 0x33
add r10, r14
adc r11, r15
mov qword [rsp + 0x230], r10
mov rdx, r10
and rsi, r8
shrd r10, r11, 0x33
and rdx, r8
lea rax, [r10 + r10*8]
mov qword [rsp + 0x228], rdx
lea rdx, [r10 + rax*2]
mov rax, qword [rsp + 0x40]
and rax, r8
add rdx, rax
mov rax, r12
and rax, r8
mov r11, rdx
shr rdx, 0x33
lea r12, [rax + rdx]
and r11, r8
mov rdx, r12
shr r12, 0x33
mov qword [rsp + 0x100], r11
and rdx, r8
mov qword [rsp + 0x110], rdx
lea rdx, [rsi + r12]
mov rsi, qword [rsp + 0x90]
mov qword [rsp + 0x128], rdx
lea rax, [rsi + rsi*8]
lea r11, [rsi + rax*2]
lea rax, [rbp + rbp*8]
lea rsi, [rbp + rax*2]
lea rax, [rbx + rbx*8]
lea r10, [rbx + rax*2]
mov rax, qword [rsp + 0xf0]
mul rsi
mov r12, rax
mov rax, r9
mov r13, rdx
mul r11
add r12, rax
mov rax, qword [rsp + 0x38]
adc r13, rdx
mov r14, r12
mul rdi
mov r15, r13
mov r13, qword [rsp + 0x20]
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, r13
adc r15, rdx
mul r10
add r14, rax
mov rax, r13
adc r15, rdx
mul rsi
mov qword [rsp + 0x50], r14
mov qword [rsp + 0x58], r15
mov r12, rax
mov rax, qword [rsp + 0xf0]
mov r13, rdx
mul r11
add r12, rax
mov rax, qword [rsp + 0x38]
adc r13, rdx
mul r9
mov r9, r14
add r12, rax
mov rax, rdi
mov rdi, qword [rsp + 0x70]
adc r13, rdx
mul rcx
add r12, rax
mov rax, r10
mov r10, r15
adc r13, rdx
mul rdi
add rax, r12
adc rdx, r13
shrd r9, r15, 0x33
shr r10, 0x33
add r9, rax
mov rax, rsi
adc r10, rdx
mul rdi
mov qword [rsp + 0x40], r9
mov qword [rsp + 0x48], r10
mov r14, qword [rsp + 0x20]
mov r10, rdi
mov r9, qword [rsp + 0x38]
mov r12, qword [rsp + 0xf0]
mov rsi, rax
mov rax, r14
mov rdi, rdx
mov r13, qword [rsp + 0xe8]
mul r11
mov r15, qword [rsp + 0xd0]
add rsi, rax
mov rax, r9
adc rdi, rdx
mul r12
add rsi, rax
mov rax, r13
adc rdi, rdx
mul rcx
add rsi, rax
mov rax, r15
adc rdi, rdx
mul rbx
add rsi, rax
mov rax, qword [rsp + 0x40]
adc rdi, rdx
mov rdx, qword [rsp + 0x48]
shrd rax, rdx, 0x33
shr rdx, 0x33
add rsi, rax
mov rax, r11
adc rdi, rdx
mul r10
mov r10, rax
mov rax, r15
mov r11, rdx
mul rbp
add r10, rax
mov rax, r9
mov r9, r12
adc r11, rdx
mul r14
add r10, rax
mov rax, r12
adc r11, rdx
mul rcx
add r10, rax
mov rax, r13
adc r11, rdx
mul rbx
add r10, rax
mov rax, rsi
adc r11, rdx
shrd rax, rdi, 0x33
mov rdx, rdi
shr rdx, 0x33
add r10, rax
mov rax, r13
adc r11, rdx
movabs rdx, 0x7ffffffffffff
and rdx, r10
mov qword [rsp + 0x80], rdx
mul rbp
mov r12, rax
mov rax, qword [rsp + 0x90]
mov r13, rdx
mul r15
mov r14, rax
mov r15, rdx
mov rax, qword [rsp + 0x38]
add r14, r12
movabs r12, 0x7ffffffffffff
adc r15, r13
mul qword [rsp + 0x70]
movabs r13, 0x7ffffffffffff
add r14, rax
mov rax, qword [rsp + 0x20]
adc r15, rdx
mul rcx
add r14, rax
mov rax, r9
mov r9, qword [rsp + 0x40]
adc r15, rdx
mul rbx
add r14, rax
movabs rax, 0x7ffffffffffff
adc r15, rdx
shrd r10, r11, 0x33
shr r11, 0x33
add r10, r14
adc r11, r15
mov rcx, r10
and rax, r10
and r12, qword [rsp + 0x50]
shrd r10, r11, 0x33
mov r14, rax
sub dword [rsp + 0x1f8], 1
mov ebx, dword [rsp + 0x1f8]
lea rax, [r10 + r10*8]
lea rdx, [r10 + rax*2]
movabs rax, 0x7ffffffffffff
add r12, rdx
and r9, rax
mov rbp, rax
and rsi, rax
and r13, r12
shr r12, 0x33
add r9, r12
and rbp, r9
shr r9, 0x33
lea rdx, [rsi + r9]
cmp ebx, 0xffffffff
jne 0x78ad58
mov r11, r13
mov r13, r14
mov r14, rdx
mov rdx, rcx
movq xmm0, r11
movq xmm5, rbp
movq xmm4, r14
mov ecx, dword [rsp + 0x1fc]
movq xmm2, qword [rsp + 0x200]
punpcklqdq xmm0, xmm5
movq xmm3, qword [rsp + 0x60]
movhps xmm4, qword [rsp + 0x80]
neg rcx
xor rdx, qword [rsp + 0x230]
movq xmm1, qword [rsp + 0x220]
movabs rbx, 0x7ffffffffffff
movhps xmm2, qword [rsp + 0x218]
movq xmm5, rcx
and rdx, rbx
mov rax, qword [rsp + 0x270]
movhps xmm3, qword [rsp + 0x98]
punpcklqdq xmm5, xmm5
and rdx, rcx
xor rax, qword [rsp + 0x278]
pxor xmm3, xmm2
movhps xmm1, qword [rsp + 0x208]
and rax, rbx
xor r13, rdx
pand xmm3, xmm5
lea rbx, [rsp + 0x2d0]
and rax, rcx
xor rax, qword [rsp + 0x210]
pxor xmm3, xmm2
lea r12, [rsp + 0x2a0]
mov rcx, rbx
movq xmm2, qword [rsp + 0xf8]
lea rdx, [rsp + 0x300]
mov qword [rsp + 0x2c0], rax
movhps xmm2, qword [rsp + 0x1f0]
movups xmmword [rsp + 0x2a0], xmm3
pxor xmm2, xmm1
mov qword [rsp + 0x2f0], r13
pand xmm2, xmm5
mov qword [rsp + 0x320], r13
pxor xmm2, xmm1
movq xmm1, qword [rsp + 0x100]
movups xmmword [rsp + 0x2b0], xmm2
movhps xmm1, qword [rsp + 0x110]
pxor xmm1, xmm0
pand xmm1, xmm5
pxor xmm1, xmm0
movq xmm0, qword [rsp + 0x128]
movups xmmword [rsp + 0x2d0], xmm1
movhps xmm0, qword [rsp + 0xa0]
movups xmmword [rsp + 0x300], xmm1
pxor xmm0, xmm4
pand xmm0, xmm5
pxor xmm0, xmm4
movups xmmword [rsp + 0x2e0], xmm0
movups xmmword [rsp + 0x310], xmm0
call fcn.006f7710
mov r8, rbx
mov rdx, r12
mov rcx, r12
call fcn.006fc000
mov rcx, qword [rsp + 0x380]
mov rdx, r12
call fcn.006fc480
nop
add rsp, 0x338
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret