Function at 0x1401af770
Capabilities:
Encrypt data using chaskey

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