File inc_ransom_e16ac4475e24bbe97e50d7940df71079ea2f1dfd1f2bff6a649c09f7503d087c.elf
Function:
Loading..
00407dde
00407ddeSHA512_Final:
00407ddepush rbp
00407ddfmov rbp, rsp
00407de2sub rsp, 192
00407de9mov [rbp-184], rdi
00407df0mov [rbp-192], rsi
00407df7mov rax, [rbp-184]
00407dfemov eax, [rax+256]
00407e04cmp eax, 111
00407e07jle 0x407e26
00407e09mov rax, [rbp-184]
00407e10mov eax, [rax+256]
00407e16mov edx, 240
00407e1bmov ecx, edx
00407e1dsub ecx, eax
00407e1fmov eax, ecx
00407e21mov [rbp-8], eax
00407e24jmp 0x407e41
00407e26
00407e26loc_407e26:
00407e26mov rax, [rbp-184]
00407e2dmov eax, [rax+256]
00407e33mov edx, 112
00407e38mov ecx, edx
00407e3asub ecx, eax
00407e3cmov eax, ecx
00407e3emov [rbp-8], eax
00407e41
00407e41loc_407e41:
00407e41mov [rbp-4], 4
00407e48jmp 0x407ea8
00407e4a
00407e4aloc_407e4a:
00407e4amov rax, [rbp-184]
00407e51mov edx, [rbp-4]
00407e54movsxd rdx, edx
00407e57add rdx, 64
00407e5bmov eax, [rax+4*rdx+4]
00407e5fmov [rbp-12], eax
00407e62cmp [rbp-4], 0
00407e66jle 0x407e82
00407e68mov eax, [rbp-4]
00407e6blea edx, [rax-1]
00407e6emov rax, [rbp-184]
00407e75movsxd rdx, edx
00407e78add rdx, 64
00407e7cmov eax, [rax+4*rdx+4]
00407e80jmp 0x407e87
00407e82
00407e82loc_407e82:
00407e82mov eax, 0
00407e87
00407e87loc_407e87:
00407e87mov [rbp-16], eax
00407e8amov eax, [rbp-12]
00407e8dlea edx, [8*rax]
00407e94mov eax, [rbp-16]
00407e97shr eax, 29
00407e9aor edx, eax
00407e9cmov eax, [rbp-4]
00407e9fcdqe
00407ea1mov [rbp+4*rax-176], edx
00407ea8
00407ea8loc_407ea8:
00407ea8cmp [rbp-4], 0
00407eacsetne al
00407eafsub [rbp-4], 1
00407eb3test al, al
00407eb5jne 0x407e4a
00407eb7mov eax, [rbp-8]
00407ebamovsxd rdx, eax
00407ebdlea rax, [rbp-160]
00407ec4mov esi, 0
00407ec9mov rdi, rax
00407ecccall memset@plt
00407ed1mov [rbp-160], -128
00407ed8mov edx, [rbp-8]
00407edblea rcx, [rbp-160]
00407ee2mov rax, [rbp-184]
00407ee9mov rsi, rcx
00407eecmov rdi, rax
00407eefcall SHA512_Bytes
00407ef4mov [rbp-4], 0
00407efbjmp 0x407fa6
00407f00
00407f00loc_407f00:
00407f00mov eax, [rbp-4]
00407f03lea ecx, [4*rax]
00407f0amov eax, 3
00407f0fsub eax, [rbp-4]
00407f12cdqe
00407f14mov eax, [rbp+4*rax-176]
00407f1bshr eax, 24
00407f1emov edx, eax
00407f20movsxd rax, ecx
00407f23mov [rbp+rax-160], dl
00407f2amov eax, [rbp-4]
00407f2dshl eax, 2
00407f30lea ecx, [rax+1]
00407f33mov eax, 3
00407f38sub eax, [rbp-4]
00407f3bcdqe
00407f3dmov eax, [rbp+4*rax-176]
00407f44shr eax, 16
00407f47mov edx, eax
00407f49movsxd rax, ecx
00407f4cmov [rbp+rax-160], dl
00407f53mov eax, [rbp-4]
00407f56shl eax, 2
00407f59lea ecx, [rax+2]
00407f5cmov eax, 3
00407f61sub eax, [rbp-4]
00407f64cdqe
00407f66mov eax, [rbp+4*rax-176]
00407f6dshr eax, 8
00407f70mov edx, eax
00407f72movsxd rax, ecx
00407f75mov [rbp+rax-160], dl
00407f7cmov eax, [rbp-4]
00407f7fshl eax, 2
00407f82lea ecx, [rax+3]
00407f85mov eax, 3
00407f8asub eax, [rbp-4]
00407f8dcdqe
00407f8fmov eax, [rbp+4*rax-176]
00407f96mov edx, eax
00407f98movsxd rax, ecx
00407f9bmov [rbp+rax-160], dl
00407fa2add [rbp-4], 1
00407fa6
00407fa6loc_407fa6:
00407fa6cmp [rbp-4], 3
00407faajle 0x407f00
00407fb0lea rcx, [rbp-160]
00407fb7mov rax, [rbp-184]
00407fbemov edx, 16
00407fc3mov rsi, rcx
00407fc6mov rdi, rax
00407fc9call SHA512_Bytes
00407fcemov [rbp-4], 0
00407fd5jmp 0x4080e4
00407fda
00407fdaloc_407fda:
00407fdamov rax, [rbp-184]
00407fe1mov edx, [rbp-4]
00407fe4movsxd rdx, edx
00407fe7shl rdx, 4
00407febadd rax, rdx
00407feemov rax, [rax]
00407ff1mov [rbp-20], eax
00407ff4mov rax, [rbp-184]
00407ffbmov edx, [rbp-4]
00407ffemovsxd rdx, edx
00408001shl rdx, 4
00408005add rax, rdx
00408008add rax, 8
0040800cmov rax, [rax]
0040800fmov [rbp-24], eax
00408012mov eax, [rbp-4]
00408015shl eax, 3
00408018cdqe
0040801aadd rax, [rbp-192]
00408021mov edx, [rbp-20]
00408024shr edx, 24
00408027mov [rax], dl
00408029mov eax, [rbp-4]
0040802cshl eax, 3
0040802fcdqe
00408031add rax, 1
00408035add rax, [rbp-192]
0040803cmov edx, [rbp-20]
0040803fshr edx, 16
00408042mov [rax], dl
00408044mov eax, [rbp-4]
00408047shl eax, 3
0040804acdqe
0040804cadd rax, 2
00408050add rax, [rbp-192]
00408057mov edx, [rbp-20]
0040805ashr edx, 8
0040805dmov [rax], dl
0040805fmov eax, [rbp-4]
00408062shl eax, 3
00408065cdqe
00408067add rax, 3
0040806badd rax, [rbp-192]
00408072mov edx, [rbp-20]
00408075mov [rax], dl
00408077mov eax, [rbp-4]
0040807ashl eax, 3
0040807dcdqe
0040807fadd rax, 4
00408083add rax, [rbp-192]
0040808amov edx, [rbp-24]
0040808dshr edx, 24
00408090mov [rax], dl
00408092mov eax, [rbp-4]
00408095shl eax, 3
00408098cdqe
0040809aadd rax, 5
0040809eadd rax, [rbp-192]
004080a5mov edx, [rbp-24]
004080a8shr edx, 16
004080abmov [rax], dl
004080admov eax, [rbp-4]
004080b0shl eax, 3
004080b3cdqe
004080b5add rax, 6
004080b9add rax, [rbp-192]
004080c0mov edx, [rbp-24]
004080c3shr edx, 8
004080c6mov [rax], dl
004080c8mov eax, [rbp-4]
004080cbshl eax, 3
004080cecdqe
004080d0add rax, 7
004080d4add rax, [rbp-192]
004080dbmov edx, [rbp-24]
004080demov [rax], dl
004080e0add [rbp-4], 1
004080e4
004080e4loc_4080e4:
004080e4cmp [rbp-4], 7
004080e8jle 0x407fda
004080eeleave
004080efret
00407dde
00407ddeSHA512_Final:
00407ddepush rbp
00407ddfmov rbp, rsp
00407de2sub rsp, 192
00407de9mov [rbp-184], rdi
00407df0mov [rbp-192], rsi
00407df7mov rax, [rbp-184]
00407dfemov eax, [rax+256]
00407e04cmp eax, 111
00407e07jle 0x407e26
00407e09mov rax, [rbp-184]
00407e10mov eax, [rax+256]
00407e16mov edx, 240
00407e1bmov ecx, edx
00407e1dsub ecx, eax
00407e1fmov eax, ecx
00407e21mov [rbp-8], eax
00407e24jmp 0x407e41
00407e26
00407e26loc_407e26:
00407e26mov rax, [rbp-184]
00407e2dmov eax, [rax+256]
00407e33mov edx, 112
00407e38mov ecx, edx
00407e3asub ecx, eax
00407e3cmov eax, ecx
00407e3emov [rbp-8], eax
00407e41
00407e41loc_407e41:
00407e41mov [rbp-4], 4
00407e48jmp 0x407ea8
00407e4a
00407e4aloc_407e4a:
00407e4amov rax, [rbp-184]
00407e51mov edx, [rbp-4]
00407e54movsxd rdx, edx
00407e57add rdx, 64
00407e5bmov eax, [rax+4*rdx+4]
00407e5fmov [rbp-12], eax
00407e62cmp [rbp-4], 0
00407e66jle 0x407e82
00407e68mov eax, [rbp-4]
00407e6blea edx, [rax-1]
00407e6emov rax, [rbp-184]
00407e75movsxd rdx, edx
00407e78add rdx, 64
00407e7cmov eax, [rax+4*rdx+4]
00407e80jmp 0x407e87
00407e82
00407e82loc_407e82:
00407e82mov eax, 0
00407e87
00407e87loc_407e87:
00407e87mov [rbp-16], eax
00407e8amov eax, [rbp-12]
00407e8dlea edx, [8*rax]
00407e94mov eax, [rbp-16]
00407e97shr eax, 29
00407e9aor edx, eax
00407e9cmov eax, [rbp-4]
00407e9fcdqe
00407ea1mov [rbp+4*rax-176], edx
00407ea8
00407ea8loc_407ea8:
00407ea8cmp [rbp-4], 0
00407eacsetne al
00407eafsub [rbp-4], 1
00407eb3test al, al
00407eb5jne 0x407e4a
00407eb7mov eax, [rbp-8]
00407ebamovsxd rdx, eax
00407ebdlea rax, [rbp-160]
00407ec4mov esi, 0
00407ec9mov rdi, rax
00407ecccall memset@plt
00407ed1mov [rbp-160], -128
00407ed8mov edx, [rbp-8]
00407edblea rcx, [rbp-160]
00407ee2mov rax, [rbp-184]
00407ee9mov rsi, rcx
00407eecmov rdi, rax
00407eefcall SHA512_Bytes
00407ef4mov [rbp-4], 0
00407efbjmp 0x407fa6
00407f00
00407f00loc_407f00:
00407f00mov eax, [rbp-4]
00407f03lea ecx, [4*rax]
00407f0amov eax, 3
00407f0fsub eax, [rbp-4]
00407f12cdqe
00407f14mov eax, [rbp+4*rax-176]
00407f1bshr eax, 24
00407f1emov edx, eax
00407f20movsxd rax, ecx
00407f23mov [rbp+rax-160], dl
00407f2amov eax, [rbp-4]
00407f2dshl eax, 2
00407f30lea ecx, [rax+1]
00407f33mov eax, 3
00407f38sub eax, [rbp-4]
00407f3bcdqe
00407f3dmov eax, [rbp+4*rax-176]
00407f44shr eax, 16
00407f47mov edx, eax
00407f49movsxd rax, ecx
00407f4cmov [rbp+rax-160], dl
00407f53mov eax, [rbp-4]
00407f56shl eax, 2
00407f59lea ecx, [rax+2]
00407f5cmov eax, 3
00407f61sub eax, [rbp-4]
00407f64cdqe
00407f66mov eax, [rbp+4*rax-176]
00407f6dshr eax, 8
00407f70mov edx, eax
00407f72movsxd rax, ecx
00407f75mov [rbp+rax-160], dl
00407f7cmov eax, [rbp-4]
00407f7fshl eax, 2
00407f82lea ecx, [rax+3]
00407f85mov eax, 3
00407f8asub eax, [rbp-4]
00407f8dcdqe
00407f8fmov eax, [rbp+4*rax-176]
00407f96mov edx, eax
00407f98movsxd rax, ecx
00407f9bmov [rbp+rax-160], dl
00407fa2add [rbp-4], 1
00407fa6
00407fa6loc_407fa6:
00407fa6cmp [rbp-4], 3
00407faajle 0x407f00
00407fb0lea rcx, [rbp-160]
00407fb7mov rax, [rbp-184]
00407fbemov edx, 16
00407fc3mov rsi, rcx
00407fc6mov rdi, rax
00407fc9call SHA512_Bytes
00407fcemov [rbp-4], 0
00407fd5jmp 0x4080e4
00407fda
00407fdaloc_407fda:
00407fdamov rax, [rbp-184]
00407fe1mov edx, [rbp-4]
00407fe4movsxd rdx, edx
00407fe7shl rdx, 4
00407febadd rax, rdx
00407feemov rax, [rax]
00407ff1mov [rbp-20], eax
00407ff4mov rax, [rbp-184]
00407ffbmov edx, [rbp-4]
00407ffemovsxd rdx, edx
00408001shl rdx, 4
00408005add rax, rdx
00408008add rax, 8
0040800cmov rax, [rax]
0040800fmov [rbp-24], eax
00408012mov eax, [rbp-4]
00408015shl eax, 3
00408018cdqe
0040801aadd rax, [rbp-192]
00408021mov edx, [rbp-20]
00408024shr edx, 24
00408027mov [rax], dl
00408029mov eax, [rbp-4]
0040802cshl eax, 3
0040802fcdqe
00408031add rax, 1
00408035add rax, [rbp-192]
0040803cmov edx, [rbp-20]
0040803fshr edx, 16
00408042mov [rax], dl
00408044mov eax, [rbp-4]
00408047shl eax, 3
0040804acdqe
0040804cadd rax, 2
00408050add rax, [rbp-192]
00408057mov edx, [rbp-20]
0040805ashr edx, 8
0040805dmov [rax], dl
0040805fmov eax, [rbp-4]
00408062shl eax, 3
00408065cdqe
00408067add rax, 3
0040806badd rax, [rbp-192]
00408072mov edx, [rbp-20]
00408075mov [rax], dl
00408077mov eax, [rbp-4]
0040807ashl eax, 3
0040807dcdqe
0040807fadd rax, 4
00408083add rax, [rbp-192]
0040808amov edx, [rbp-24]
0040808dshr edx, 24
00408090mov [rax], dl
00408092mov eax, [rbp-4]
00408095shl eax, 3
00408098cdqe
0040809aadd rax, 5
0040809eadd rax, [rbp-192]
004080a5mov edx, [rbp-24]
004080a8shr edx, 16
004080abmov [rax], dl
004080admov eax, [rbp-4]
004080b0shl eax, 3
004080b3cdqe
004080b5add rax, 6
004080b9add rax, [rbp-192]
004080c0mov edx, [rbp-24]
004080c3shr edx, 8
004080c6mov [rax], dl
004080c8mov eax, [rbp-4]
004080cbshl eax, 3
004080cecdqe
004080d0add rax, 7
004080d4add rax, [rbp-192]
004080dbmov edx, [rbp-24]
004080demov [rax], dl
004080e0add [rbp-4], 1
004080e4
004080e4loc_4080e4:
004080e4cmp [rbp-4], 7
004080e8jle 0x407fda
004080eeleave
004080efret
00407dde
004080f0
004080f0SHA512_Simple:
004080f0push rbp
004080f1mov rbp, rsp
004080f4sub rsp, 320
004080fbmov [rbp-296], rdi
00408102mov [rbp-300], esi
00408108mov [rbp-312], rdx
0040810flea rax, [rbp-288]
00408116mov rdi, rax
00408119call SHA512_Init
0040811emov edx, [rbp-300]
00408124mov rcx, [rbp-296]
0040812blea rax, [rbp-288]
00408132mov rsi, rcx
00408135mov rdi, rax
00408138call SHA512_Bytes
0040813dmov rdx, [rbp-312]
00408144lea rax, [rbp-288]
0040814bmov rsi, rdx
0040814emov rdi, rax
00408151call SHA512_Final
00408156leave
00408157ret
004080f0
004080f0SHA512_Simple:
004080f0push rbp
004080f1mov rbp, rsp
004080f4sub rsp, 320
004080fbmov [rbp-296], rdi
00408102mov [rbp-300], esi
00408108mov [rbp-312], rdx
0040810flea rax, [rbp-288]
00408116mov rdi, rax
00408119call SHA512_Init
0040811emov edx, [rbp-300]
00408124mov rcx, [rbp-296]
0040812blea rax, [rbp-288]
00408132mov rsi, rcx
00408135mov rdi, rax
00408138call SHA512_Bytes
0040813dmov rdx, [rbp-312]
00408144lea rax, [rbp-288]
0040814bmov rsi, rdx
0040814emov rdi, rax
00408151call SHA512_Final
00408156leave
00408157ret
004080f0
00408158
00408158fsum:
00408158push rbp
00408159mov rbp, rsp
0040815cmov [rbp-24], rdi
00408160mov [rbp-32], rsi
00408164mov [rbp-4], 0
0040816bjmp 0x4081da
0040816d
0040816dloc_40816d:
0040816dmov eax, [rbp-4]
00408170shl rax, 3
00408174add rax, [rbp-24]
00408178mov edx, [rbp-4]
0040817bshl rdx, 3
0040817fadd rdx, [rbp-24]
00408183mov rcx, [rdx]
00408186mov edx, [rbp-4]
00408189shl rdx, 3
0040818dadd rdx, [rbp-32]
00408191mov rdx, [rdx]
00408194add rdx, rcx
00408197mov [rax], rdx
0040819amov eax, [rbp-4]
0040819dadd eax, 1
004081a0mov eax, eax
004081a2shl rax, 3
004081a6add rax, [rbp-24]
004081aamov edx, [rbp-4]
004081adadd edx, 1
004081b0mov edx, edx
004081b2shl rdx, 3
004081b6add rdx, [rbp-24]
004081bamov rcx, [rdx]
004081bdmov edx, [rbp-4]
004081c0add edx, 1
004081c3mov edx, edx
004081c5shl rdx, 3
004081c9add rdx, [rbp-32]
004081cdmov rdx, [rdx]
004081d0add rdx, rcx
004081d3mov [rax], rdx
004081d6add [rbp-4], 2
004081da
004081daloc_4081da:
004081dacmp [rbp-4], 9
004081dejbe 0x40816d
004081e0pop rbp
004081e1ret
00408158
00408158fsum:
00408158push rbp
00408159mov rbp, rsp
0040815cmov [rbp-24], rdi
00408160mov [rbp-32], rsi
00408164mov [rbp-4], 0
0040816bjmp 0x4081da
0040816d
0040816dloc_40816d:
0040816dmov eax, [rbp-4]
00408170shl rax, 3
00408174add rax, [rbp-24]
00408178mov edx, [rbp-4]
0040817bshl rdx, 3
0040817fadd rdx, [rbp-24]
00408183mov rcx, [rdx]
00408186mov edx, [rbp-4]
00408189shl rdx, 3
0040818dadd rdx, [rbp-32]
00408191mov rdx, [rdx]
00408194add rdx, rcx
00408197mov [rax], rdx
0040819amov eax, [rbp-4]
0040819dadd eax, 1
004081a0mov eax, eax
004081a2shl rax, 3
004081a6add rax, [rbp-24]
004081aamov edx, [rbp-4]
004081adadd edx, 1
004081b0mov edx, edx
004081b2shl rdx, 3
004081b6add rdx, [rbp-24]
004081bamov rcx, [rdx]
004081bdmov edx, [rbp-4]
004081c0add edx, 1
004081c3mov edx, edx
004081c5shl rdx, 3
004081c9add rdx, [rbp-32]
004081cdmov rdx, [rdx]
004081d0add rdx, rcx
004081d3mov [rax], rdx
004081d6add [rbp-4], 2
004081da
004081daloc_4081da:
004081dacmp [rbp-4], 9
004081dejbe 0x40816d
004081e0pop rbp
004081e1ret
00408158
004081e2
004081e2fdifference:
004081e2push rbp
004081e3mov rbp, rsp
004081e6push rbx
004081e7mov [rbp-32], rdi
004081ebmov [rbp-40], rsi
004081efmov [rbp-12], 0
004081f6jmp 0x40822f
004081f8
004081f8loc_4081f8:
004081f8mov eax, [rbp-12]
004081fbshl rax, 3
004081ffadd rax, [rbp-32]
00408203mov edx, [rbp-12]
00408206shl rdx, 3
0040820aadd rdx, [rbp-40]
0040820emov rcx, [rdx]
00408211mov edx, [rbp-12]
00408214shl rdx, 3
00408218add rdx, [rbp-32]
0040821cmov rdx, [rdx]
0040821fmov rbx, rcx
00408222sub rbx, rdx
00408225mov rdx, rbx
00408228mov [rax], rdx
0040822badd [rbp-12], 1
0040822f
0040822floc_40822f:
0040822fcmp [rbp-12], 9
00408233jbe 0x4081f8
00408235pop rbx
00408236pop rbp
00408237ret
004081e2
004081e2fdifference:
004081e2push rbp
004081e3mov rbp, rsp
004081e6push rbx
004081e7mov [rbp-32], rdi
004081ebmov [rbp-40], rsi
004081efmov [rbp-12], 0
004081f6jmp 0x40822f
004081f8
004081f8loc_4081f8:
004081f8mov eax, [rbp-12]
004081fbshl rax, 3
004081ffadd rax, [rbp-32]
00408203mov edx, [rbp-12]
00408206shl rdx, 3
0040820aadd rdx, [rbp-40]
0040820emov rcx, [rdx]
00408211mov edx, [rbp-12]
00408214shl rdx, 3
00408218add rdx, [rbp-32]
0040821cmov rdx, [rdx]
0040821fmov rbx, rcx
00408222sub rbx, rdx
00408225mov rdx, rbx
00408228mov [rax], rdx
0040822badd [rbp-12], 1
0040822f
0040822floc_40822f:
0040822fcmp [rbp-12], 9
00408233jbe 0x4081f8
00408235pop rbx
00408236pop rbp
00408237ret
004081e2
00408238
00408238fscalar_product:
00408238push rbp
00408239mov rbp, rsp
0040823cmov [rbp-24], rdi
00408240mov [rbp-32], rsi
00408244mov [rbp-40], rdx
00408248mov [rbp-4], 0
0040824fjmp 0x408276
00408251
00408251loc_408251:
00408251mov eax, [rbp-4]
00408254shl rax, 3
00408258add rax, [rbp-24]
0040825cmov edx, [rbp-4]
0040825fshl rdx, 3
00408263add rdx, [rbp-32]
00408267mov rdx, [rdx]
0040826aimul rdx, [rbp-40]
0040826fmov [rax], rdx
00408272add [rbp-4], 1
00408276
00408276loc_408276:
00408276cmp [rbp-4], 9
0040827ajbe 0x408251
0040827cpop rbp
0040827dret
00408238
00408238fscalar_product:
00408238push rbp
00408239mov rbp, rsp
0040823cmov [rbp-24], rdi
00408240mov [rbp-32], rsi
00408244mov [rbp-40], rdx
00408248mov [rbp-4], 0
0040824fjmp 0x408276
00408251
00408251loc_408251:
00408251mov eax, [rbp-4]
00408254shl rax, 3
00408258add rax, [rbp-24]
0040825cmov edx, [rbp-4]
0040825fshl rdx, 3
00408263add rdx, [rbp-32]
00408267mov rdx, [rdx]
0040826aimul rdx, [rbp-40]
0040826fmov [rax], rdx
00408272add [rbp-4], 1
00408276
00408276loc_408276:
00408276cmp [rbp-4], 9
0040827ajbe 0x408251
0040827cpop rbp
0040827dret
00408238
0040827e
0040827efproduct:
0040827epush rbp
0040827fmov rbp, rsp
00408282mov [rbp-8], rdi
00408286mov [rbp-16], rsi
0040828amov [rbp-24], rdx
0040828emov rax, [rbp-16]
00408292mov rax, [rax]
00408295movsxd rdx, eax
00408298mov rax, [rbp-24]
0040829cmov rax, [rax]
0040829fcdqe
004082a1imul rdx, rax
004082a5mov rax, [rbp-8]
004082a9mov [rax], rdx
004082acmov rax, [rbp-8]
004082b0lea rdx, [rax+8]
004082b4mov rax, [rbp-16]
004082b8mov rax, [rax]
004082bbmovsxd rcx, eax
004082bemov rax, [rbp-24]
004082c2add rax, 8
004082c6mov rax, [rax]
004082c9cdqe
004082cbimul rcx, rax
004082cfmov rax, [rbp-16]
004082d3add rax, 8
004082d7mov rax, [rax]
004082damovsxd rsi, eax
004082ddmov rax, [rbp-24]
004082e1mov rax, [rax]
004082e4cdqe
004082e6imul rax, rsi
004082eaadd rax, rcx
004082edmov [rdx], rax
004082f0mov rax, [rbp-8]
004082f4lea rdx, [rax+16]
004082f8mov rax, [rbp-16]
004082fcadd rax, 8
00408300mov rax, [rax]
00408303cdqe
00408305lea rcx, [rax+rax]
00408309mov rax, [rbp-24]
0040830dadd rax, 8
00408311mov rax, [rax]
00408314cdqe
00408316imul rcx, rax
0040831amov rax, [rbp-16]
0040831emov rax, [rax]
00408321movsxd rsi, eax
00408324mov rax, [rbp-24]
00408328add rax, 16
0040832cmov rax, [rax]
0040832fcdqe
00408331imul rax, rsi
00408335lea rsi, [rcx+rax]
00408339mov rax, [rbp-16]
0040833dadd rax, 16
00408341mov rax, [rax]
00408344movsxd rcx, eax
00408347mov rax, [rbp-24]
0040834bmov rax, [rax]
0040834ecdqe
00408350imul rax, rcx
00408354add rax, rsi
00408357mov [rdx], rax
0040835amov rax, [rbp-8]
0040835elea rdx, [rax+24]
00408362mov rax, [rbp-16]
00408366add rax, 8
0040836amov rax, [rax]
0040836dmovsxd rcx, eax
00408370mov rax, [rbp-24]
00408374add rax, 16
00408378mov rax, [rax]
0040837bcdqe
0040837dimul rcx, rax
00408381mov rax, [rbp-16]
00408385add rax, 16
00408389mov rax, [rax]
0040838cmovsxd rsi, eax
0040838fmov rax, [rbp-24]
00408393add rax, 8
00408397mov rax, [rax]
0040839acdqe
0040839cimul rax, rsi
004083a0lea rdi, [rcx+rax]
004083a4mov rax, [rbp-16]
004083a8add rax, 24
004083acmov rax, [rax]
004083afmovsxd rcx, eax
004083b2mov rax, [rbp-24]
004083b6mov rax, [rax]
004083b9cdqe
004083bbimul rcx, rax
004083bfmov rax, [rbp-16]
004083c3mov rax, [rax]
004083c6movsxd rsi, eax
004083c9mov rax, [rbp-24]
004083cdadd rax, 24
004083d1mov rax, [rax]
004083d4cdqe
004083d6imul rax, rsi
004083daadd rax, rcx
004083ddadd rax, rdi
004083e0mov [rdx], rax
004083e3mov rax, [rbp-8]
004083e7lea rdx, [rax+32]
004083ebmov rax, [rbp-16]
004083efadd rax, 16
004083f3mov rax, [rax]
004083f6movsxd rcx, eax
004083f9mov rax, [rbp-24]
004083fdadd rax, 16
00408401mov rax, [rax]
00408404cdqe
00408406imul rax, rcx
0040840amov rcx, [rbp-16]
0040840eadd rcx, 8
00408412mov rcx, [rcx]
00408415movsxd rsi, ecx
00408418mov rcx, [rbp-24]
0040841cadd rcx, 24
00408420mov rcx, [rcx]
00408423movsxd rcx, ecx
00408426imul rsi, rcx
0040842amov rcx, [rbp-16]
0040842eadd rcx, 24
00408432mov rcx, [rcx]
00408435movsxd rdi, ecx
00408438mov rcx, [rbp-24]
0040843cadd rcx, 8
00408440mov rcx, [rcx]
00408443movsxd rcx, ecx
00408446imul rcx, rdi
0040844aadd rcx, rsi
0040844dadd rcx, rcx
00408450lea rdi, [rax+rcx]
00408454mov rax, [rbp-16]
00408458add rax, 32
0040845cmov rax, [rax]
0040845fmovsxd rcx, eax
00408462mov rax, [rbp-24]
00408466mov rax, [rax]
00408469cdqe
0040846bimul rcx, rax
0040846fmov rax, [rbp-16]
00408473mov rax, [rax]
00408476movsxd rsi, eax
00408479mov rax, [rbp-24]
0040847dadd rax, 32
00408481mov rax, [rax]
00408484cdqe
00408486imul rax, rsi
0040848aadd rax, rcx
0040848dadd rax, rdi
00408490mov [rdx], rax
00408493mov rax, [rbp-8]
00408497lea rdx, [rax+40]
0040849bmov rax, [rbp-16]
0040849fadd rax, 16
004084a3mov rax, [rax]
004084a6movsxd rcx, eax
004084a9mov rax, [rbp-24]
004084adadd rax, 24
004084b1mov rax, [rax]
004084b4cdqe
004084b6imul rcx, rax
004084bamov rax, [rbp-16]
004084beadd rax, 24
004084c2mov rax, [rax]
004084c5movsxd rsi, eax
004084c8mov rax, [rbp-24]
004084ccadd rax, 16
004084d0mov rax, [rax]
004084d3cdqe
004084d5imul rax, rsi
004084d9lea rdi, [rcx+rax]
004084ddmov rax, [rbp-16]
004084e1add rax, 32
004084e5mov rax, [rax]
004084e8movsxd rcx, eax
004084ebmov rax, [rbp-24]
004084efadd rax, 8
004084f3mov rax, [rax]
004084f6cdqe
004084f8imul rcx, rax
004084fcmov rax, [rbp-16]
00408500add rax, 8
00408504mov rax, [rax]
00408507movsxd rsi, eax
0040850amov rax, [rbp-24]
0040850eadd rax, 32
00408512mov rax, [rax]
00408515cdqe
00408517imul rax, rsi
0040851badd rax, rcx
0040851eadd rdi, rax
00408521mov rax, [rbp-16]
00408525add rax, 40
00408529mov rax, [rax]
0040852cmovsxd rcx, eax
0040852fmov rax, [rbp-24]
00408533mov rax, [rax]
00408536cdqe
00408538imul rcx, rax
0040853cmov rax, [rbp-16]
00408540mov rax, [rax]
00408543movsxd rsi, eax
00408546mov rax, [rbp-24]
0040854aadd rax, 40
0040854emov rax, [rax]
00408551cdqe
00408553imul rax, rsi
00408557add rax, rcx
0040855aadd rax, rdi
0040855dmov [rdx], rax
00408560mov rax, [rbp-8]
00408564lea rdx, [rax+48]
00408568mov rax, [rbp-16]
0040856cadd rax, 24
00408570mov rax, [rax]
00408573movsxd rcx, eax
00408576mov rax, [rbp-24]
0040857aadd rax, 24
0040857emov rax, [rax]
00408581cdqe
00408583imul rcx, rax
00408587mov rax, [rbp-16]
0040858badd rax, 8
0040858fmov rax, [rax]
00408592movsxd rsi, eax
00408595mov rax, [rbp-24]
00408599add rax, 40
0040859dmov rax, [rax]
004085a0cdqe
004085a2imul rax, rsi
004085a6lea rsi, [rcx+rax]
004085aamov rax, [rbp-16]
004085aeadd rax, 40
004085b2mov rax, [rax]
004085b5movsxd rcx, eax
004085b8mov rax, [rbp-24]
004085bcadd rax, 8
004085c0mov rax, [rax]
004085c3cdqe
004085c5imul rax, rcx
004085c9add rax, rsi
004085cclea rsi, [rax+rax]
004085d0mov rax, [rbp-16]
004085d4add rax, 16
004085d8mov rax, [rax]
004085dbmovsxd rcx, eax
004085demov rax, [rbp-24]
004085e2add rax, 32
004085e6mov rax, [rax]
004085e9cdqe
004085ebimul rax, rcx
004085eflea rdi, [rsi+rax]
004085f3mov rax, [rbp-16]
004085f7mov rax, [rax]
004085famovsxd rcx, eax
004085fdmov rax, [rbp-24]
00408601add rax, 48
00408605mov rax, [rax]
00408608cdqe
0040860aimul rcx, rax
0040860emov rax, [rbp-16]
00408612add rax, 32
00408616mov rax, [rax]
00408619movsxd rsi, eax
0040861cmov rax, [rbp-24]
00408620add rax, 16
00408624mov rax, [rax]
00408627cdqe
00408629imul rax, rsi
0040862dadd rax, rcx
00408630lea rsi, [rdi+rax]
00408634mov rax, [rbp-16]
00408638add rax, 48
0040863cmov rax, [rax]
0040863fmovsxd rcx, eax
00408642mov rax, [rbp-24]
00408646mov rax, [rax]
00408649cdqe
0040864bimul rax, rcx
0040864fadd rax, rsi
00408652mov [rdx], rax
00408655mov rax, [rbp-8]
00408659lea rdx, [rax+56]
0040865dmov rax, [rbp-16]
00408661add rax, 24
00408665mov rax, [rax]
00408668movsxd rcx, eax
0040866bmov rax, [rbp-24]
0040866fadd rax, 32
00408673mov rax, [rax]
00408676cdqe
00408678imul rcx, rax
0040867cmov rax, [rbp-16]
00408680add rax, 32
00408684mov rax, [rax]
00408687movsxd rsi, eax
0040868amov rax, [rbp-24]
0040868eadd rax, 24
00408692mov rax, [rax]
00408695cdqe
00408697imul rax, rsi
0040869blea rdi, [rcx+rax]
0040869fmov rax, [rbp-16]
004086a3add rax, 40
004086a7mov rax, [rax]
004086aamovsxd rcx, eax
004086admov rax, [rbp-24]
004086b1add rax, 16
004086b5mov rax, [rax]
004086b8cdqe
004086baimul rcx, rax
004086bemov rax, [rbp-16]
004086c2add rax, 16
004086c6mov rax, [rax]
004086c9movsxd rsi, eax
004086ccmov rax, [rbp-24]
004086d0add rax, 40
004086d4mov rax, [rax]
004086d7cdqe
004086d9imul rax, rsi
004086ddadd rax, rcx
004086e0add rdi, rax
004086e3mov rax, [rbp-16]
004086e7add rax, 48
004086ebmov rax, [rax]
004086eemovsxd rcx, eax
004086f1mov rax, [rbp-24]
004086f5add rax, 8
004086f9mov rax, [rax]
004086fccdqe
004086feimul rcx, rax
00408702mov rax, [rbp-16]
00408706add rax, 8
0040870amov rax, [rax]
0040870dmovsxd rsi, eax
00408710mov rax, [rbp-24]
00408714add rax, 48
00408718mov rax, [rax]
0040871bcdqe
0040871dimul rax, rsi
00408721add rax, rcx
00408724add rdi, rax
00408727mov rax, [rbp-16]
0040872badd rax, 56
0040872fmov rax, [rax]
00408732movsxd rcx, eax
00408735mov rax, [rbp-24]
00408739mov rax, [rax]
0040873ccdqe
0040873eimul rcx, rax
00408742mov rax, [rbp-16]
00408746mov rax, [rax]
00408749movsxd rsi, eax
0040874cmov rax, [rbp-24]
00408750add rax, 56
00408754mov rax, [rax]
00408757cdqe
00408759imul rax, rsi
0040875dadd rax, rcx
00408760add rax, rdi
00408763mov [rdx], rax
00408766mov rax, [rbp-8]
0040876alea rdx, [rax+64]
0040876emov rax, [rbp-16]
00408772add rax, 32
00408776mov rax, [rax]
00408779movsxd rcx, eax
0040877cmov rax, [rbp-24]
00408780add rax, 32
00408784mov rax, [rax]
00408787cdqe
00408789imul rax, rcx
0040878dmov rcx, [rbp-16]
00408791add rcx, 24
00408795mov rcx, [rcx]
00408798movsxd rsi, ecx
0040879bmov rcx, [rbp-24]
0040879fadd rcx, 40
004087a3mov rcx, [rcx]
004087a6movsxd rcx, ecx
004087a9imul rsi, rcx
004087admov rcx, [rbp-16]
004087b1add rcx, 40
004087b5mov rcx, [rcx]
004087b8movsxd rdi, ecx
004087bbmov rcx, [rbp-24]
004087bfadd rcx, 24
004087c3mov rcx, [rcx]
004087c6movsxd rcx, ecx
004087c9imul rcx, rdi
004087cdlea r8, [rsi+rcx]
004087d1mov rcx, [rbp-16]
004087d5add rcx, 56
004087d9mov rcx, [rcx]
004087dcmovsxd rsi, ecx
004087dfmov rcx, [rbp-24]
004087e3add rcx, 8
004087e7mov rcx, [rcx]
004087eamovsxd rcx, ecx
004087edimul rsi, rcx
004087f1mov rcx, [rbp-16]
004087f5add rcx, 8
004087f9mov rcx, [rcx]
004087fcmovsxd rdi, ecx
004087ffmov rcx, [rbp-24]
00408803add rcx, 56
00408807mov rcx, [rcx]
0040880amovsxd rcx, ecx
0040880dimul rcx, rdi
00408811add rcx, rsi
00408814add rcx, r8
00408817add rcx, rcx
0040881alea rdi, [rax+rcx]
0040881emov rax, [rbp-16]
00408822add rax, 48
00408826mov rax, [rax]
00408829movsxd rcx, eax
0040882cmov rax, [rbp-24]
00408830add rax, 16
00408834mov rax, [rax]
00408837cdqe
00408839imul rcx, rax
0040883dmov rax, [rbp-16]
00408841add rax, 16
00408845mov rax, [rax]
00408848movsxd rsi, eax
0040884bmov rax, [rbp-24]
0040884fadd rax, 48
00408853mov rax, [rax]
00408856cdqe
00408858imul rax, rsi
0040885cadd rax, rcx
0040885fadd rdi, rax
00408862mov rax, [rbp-16]
00408866add rax, 64
0040886amov rax, [rax]
0040886dmovsxd rcx, eax
00408870mov rax, [rbp-24]
00408874mov rax, [rax]
00408877cdqe
00408879imul rcx, rax
0040887dmov rax, [rbp-16]
00408881mov rax, [rax]
00408884movsxd rsi, eax
00408887mov rax, [rbp-24]
0040888badd rax, 64
0040888fmov rax, [rax]
00408892cdqe
00408894imul rax, rsi
00408898add rax, rcx
0040889badd rax, rdi
0040889emov [rdx], rax
004088a1mov rax, [rbp-8]
004088a5lea rdx, [rax+72]
004088a9mov rax, [rbp-16]
004088adadd rax, 32
004088b1mov rax, [rax]
004088b4movsxd rcx, eax
004088b7mov rax, [rbp-24]
004088bbadd rax, 40
004088bfmov rax, [rax]
004088c2cdqe
004088c4imul rcx, rax
004088c8mov rax, [rbp-16]
004088ccadd rax, 40
004088d0mov rax, [rax]
004088d3movsxd rsi, eax
004088d6mov rax, [rbp-24]
004088daadd rax, 32
004088demov rax, [rax]
004088e1cdqe
004088e3imul rax, rsi
004088e7lea rdi, [rcx+rax]
004088ebmov rax, [rbp-16]
004088efadd rax, 48
004088f3mov rax, [rax]
004088f6movsxd rcx, eax
004088f9mov rax, [rbp-24]
004088fdadd rax, 24
00408901mov rax, [rax]
00408904cdqe
00408906imul rcx, rax
0040890amov rax, [rbp-16]
0040890eadd rax, 24
00408912mov rax, [rax]
00408915movsxd rsi, eax
00408918mov rax, [rbp-24]
0040891cadd rax, 48
00408920mov rax, [rax]
00408923cdqe
00408925imul rax, rsi
00408929add rax, rcx
0040892cadd rdi, rax
0040892fmov rax, [rbp-16]
00408933add rax, 56
00408937mov rax, [rax]
0040893amovsxd rcx, eax
0040893dmov rax, [rbp-24]
00408941add rax, 16
00408945mov rax, [rax]
00408948cdqe
0040894aimul rcx, rax
0040894emov rax, [rbp-16]
00408952add rax, 16
00408956mov rax, [rax]
00408959movsxd rsi, eax
0040895cmov rax, [rbp-24]
00408960add rax, 56
00408964mov rax, [rax]
00408967cdqe
00408969imul rax, rsi
0040896dadd rax, rcx
00408970add rdi, rax
00408973mov rax, [rbp-16]
00408977add rax, 64
0040897bmov rax, [rax]
0040897emovsxd rcx, eax
00408981mov rax, [rbp-24]
00408985add rax, 8
00408989mov rax, [rax]
0040898ccdqe
0040898eimul rcx, rax
00408992mov rax, [rbp-16]
00408996add rax, 8
0040899amov rax, [rax]
0040899dmovsxd rsi, eax
004089a0mov rax, [rbp-24]
004089a4add rax, 64
004089a8mov rax, [rax]
004089abcdqe
004089adimul rax, rsi
004089b1add rax, rcx
004089b4add rdi, rax
004089b7mov rax, [rbp-16]
004089bbadd rax, 72
004089bfmov rax, [rax]
004089c2movsxd rcx, eax
004089c5mov rax, [rbp-24]
004089c9mov rax, [rax]
004089cccdqe
004089ceimul rcx, rax
004089d2mov rax, [rbp-16]
004089d6mov rax, [rax]
004089d9movsxd rsi, eax
004089dcmov rax, [rbp-24]
004089e0add rax, 72
004089e4mov rax, [rax]
004089e7cdqe
004089e9imul rax, rsi
004089edadd rax, rcx
004089f0add rax, rdi
004089f3mov [rdx], rax
004089f6mov rax, [rbp-8]
004089faadd rax, 80
004089femov rdx, [rbp-16]
00408a02add rdx, 40
00408a06mov rdx, [rdx]
00408a09movsxd rcx, edx
00408a0cmov rdx, [rbp-24]
00408a10add rdx, 40
00408a14mov rdx, [rdx]
00408a17movsxd rdx, edx
00408a1aimul rcx, rdx
00408a1emov rdx, [rbp-16]
00408a22add rdx, 24
00408a26mov rdx, [rdx]
00408a29movsxd rsi, edx
00408a2cmov rdx, [rbp-24]
00408a30add rdx, 56
00408a34mov rdx, [rdx]
00408a37movsxd rdx, edx
00408a3aimul rdx, rsi
00408a3elea rdi, [rcx+rdx]
00408a42mov rdx, [rbp-16]
00408a46add rdx, 8
00408a4amov rdx, [rdx]
00408a4dmovsxd rcx, edx
00408a50mov rdx, [rbp-24]
00408a54add rdx, 72
00408a58mov rdx, [rdx]
00408a5bmovsxd rdx, edx
00408a5eimul rcx, rdx
00408a62mov rdx, [rbp-16]
00408a66add rdx, 56
00408a6amov rdx, [rdx]
00408a6dmovsxd rsi, edx
00408a70mov rdx, [rbp-24]
00408a74add rdx, 24
00408a78mov rdx, [rdx]
00408a7bmovsxd rdx, edx
00408a7eimul rdx, rsi
00408a82add rdx, rcx
00408a85lea rsi, [rdi+rdx]
00408a89mov rdx, [rbp-16]
00408a8dadd rdx, 72
00408a91mov rdx, [rdx]
00408a94movsxd rcx, edx
00408a97mov rdx, [rbp-24]
00408a9badd rdx, 8
00408a9fmov rdx, [rdx]
00408aa2movsxd rdx, edx
00408aa5imul rdx, rcx
00408aa9add rdx, rsi
00408aaclea rsi, [rdx+rdx]
00408ab0mov rdx, [rbp-16]
00408ab4add rdx, 32
00408ab8mov rdx, [rdx]
00408abbmovsxd rcx, edx
00408abemov rdx, [rbp-24]
00408ac2add rdx, 48
00408ac6mov rdx, [rdx]
00408ac9movsxd rdx, edx
00408accimul rdx, rcx
00408ad0lea rdi, [rsi+rdx]
00408ad4mov rdx, [rbp-16]
00408ad8add rdx, 16
00408adcmov rdx, [rdx]
00408adfmovsxd rcx, edx
00408ae2mov rdx, [rbp-24]
00408ae6add rdx, 64
00408aeamov rdx, [rdx]
00408aedmovsxd rdx, edx
00408af0imul rcx, rdx
00408af4mov rdx, [rbp-16]
00408af8add rdx, 48
00408afcmov rdx, [rdx]
00408affmovsxd rsi, edx
00408b02mov rdx, [rbp-24]
00408b06add rdx, 32
00408b0amov rdx, [rdx]
00408b0dmovsxd rdx, edx
00408b10imul rdx, rsi
00408b14add rdx, rcx
00408b17lea rsi, [rdi+rdx]
00408b1bmov rdx, [rbp-16]
00408b1fadd rdx, 64
00408b23mov rdx, [rdx]
00408b26movsxd rcx, edx
00408b29mov rdx, [rbp-24]
00408b2dadd rdx, 16
00408b31mov rdx, [rdx]
00408b34movsxd rdx, edx
00408b37imul rdx, rcx
00408b3badd rdx, rsi
00408b3emov [rax], rdx
00408b41mov rax, [rbp-8]
00408b45add rax, 88
00408b49mov rdx, [rbp-16]
00408b4dadd rdx, 40
00408b51mov rdx, [rdx]
00408b54movsxd rcx, edx
00408b57mov rdx, [rbp-24]
00408b5badd rdx, 48
00408b5fmov rdx, [rdx]
00408b62movsxd rdx, edx
00408b65imul rcx, rdx
00408b69mov rdx, [rbp-16]
00408b6dadd rdx, 48
00408b71mov rdx, [rdx]
00408b74movsxd rsi, edx
00408b77mov rdx, [rbp-24]
00408b7badd rdx, 40
00408b7fmov rdx, [rdx]
00408b82movsxd rdx, edx
00408b85imul rdx, rsi
00408b89lea rdi, [rcx+rdx]
00408b8dmov rdx, [rbp-16]
00408b91add rdx, 56
00408b95mov rdx, [rdx]
00408b98movsxd rcx, edx
00408b9bmov rdx, [rbp-24]
00408b9fadd rdx, 32
00408ba3mov rdx, [rdx]
00408ba6movsxd rdx, edx
00408ba9imul rcx, rdx
00408badmov rdx, [rbp-16]
00408bb1add rdx, 32
00408bb5mov rdx, [rdx]
00408bb8movsxd rsi, edx
00408bbbmov rdx, [rbp-24]
00408bbfadd rdx, 56
00408bc3mov rdx, [rdx]
00408bc6movsxd rdx, edx
00408bc9imul rdx, rsi
00408bcdadd rdx, rcx
00408bd0add rdi, rdx
00408bd3mov rdx, [rbp-16]
00408bd7add rdx, 64
00408bdbmov rdx, [rdx]
00408bdemovsxd rcx, edx
00408be1mov rdx, [rbp-24]
00408be5add rdx, 24
00408be9mov rdx, [rdx]
00408becmovsxd rdx, edx
00408befimul rcx, rdx
00408bf3mov rdx, [rbp-16]
00408bf7add rdx, 24
00408bfbmov rdx, [rdx]
00408bfemovsxd rsi, edx
00408c01mov rdx, [rbp-24]
00408c05add rdx, 64
00408c09mov rdx, [rdx]
00408c0cmovsxd rdx, edx
00408c0fimul rdx, rsi
00408c13add rdx, rcx
00408c16add rdi, rdx
00408c19mov rdx, [rbp-16]
00408c1dadd rdx, 72
00408c21mov rdx, [rdx]
00408c24movsxd rcx, edx
00408c27mov rdx, [rbp-24]
00408c2badd rdx, 16
00408c2fmov rdx, [rdx]
00408c32movsxd rdx, edx
00408c35imul rcx, rdx
00408c39mov rdx, [rbp-16]
00408c3dadd rdx, 16
00408c41mov rdx, [rdx]
00408c44movsxd rsi, edx
00408c47mov rdx, [rbp-24]
00408c4badd rdx, 72
00408c4fmov rdx, [rdx]
00408c52movsxd rdx, edx
00408c55imul rdx, rsi
00408c59add rdx, rcx
00408c5cadd rdx, rdi
00408c5fmov [rax], rdx
00408c62mov rax, [rbp-8]
00408c66add rax, 96
00408c6amov rdx, [rbp-16]
00408c6eadd rdx, 48
00408c72mov rdx, [rdx]
00408c75movsxd rcx, edx
00408c78mov rdx, [rbp-24]
00408c7cadd rdx, 48
00408c80mov rdx, [rdx]
00408c83movsxd rdx, edx
00408c86imul rdx, rcx
00408c8amov rcx, [rbp-16]
00408c8eadd rcx, 40
00408c92mov rcx, [rcx]
00408c95movsxd rsi, ecx
00408c98mov rcx, [rbp-24]
00408c9cadd rcx, 56
00408ca0mov rcx, [rcx]
00408ca3movsxd rcx, ecx
00408ca6imul rsi, rcx
00408caamov rcx, [rbp-16]
00408caeadd rcx, 56
00408cb2mov rcx, [rcx]
00408cb5movsxd rdi, ecx
00408cb8mov rcx, [rbp-24]
00408cbcadd rcx, 40
00408cc0mov rcx, [rcx]
00408cc3movsxd rcx, ecx
00408cc6imul rcx, rdi
00408ccalea r8, [rsi+rcx]
00408ccemov rcx, [rbp-16]
00408cd2add rcx, 72
00408cd6mov rcx, [rcx]
00408cd9movsxd rsi, ecx
00408cdcmov rcx, [rbp-24]
00408ce0add rcx, 24
00408ce4mov rcx, [rcx]
00408ce7movsxd rcx, ecx
00408ceaimul rsi, rcx
00408ceemov rcx, [rbp-16]
00408cf2add rcx, 24
00408cf6mov rcx, [rcx]
00408cf9movsxd rdi, ecx
00408cfcmov rcx, [rbp-24]
00408d00add rcx, 72
00408d04mov rcx, [rcx]
00408d07movsxd rcx, ecx
00408d0aimul rcx, rdi
00408d0eadd rcx, rsi
00408d11add rcx, r8
00408d14add rcx, rcx
00408d17lea rdi, [rdx+rcx]
00408d1bmov rdx, [rbp-16]
00408d1fadd rdx, 64
00408d23mov rdx, [rdx]
00408d26movsxd rcx, edx
00408d29mov rdx, [rbp-24]
00408d2dadd rdx, 32
00408d31mov rdx, [rdx]
00408d34movsxd rdx, edx
00408d37imul rcx, rdx
00408d3bmov rdx, [rbp-16]
00408d3fadd rdx, 32
00408d43mov rdx, [rdx]
00408d46movsxd rsi, edx
00408d49mov rdx, [rbp-24]
00408d4dadd rdx, 64
00408d51mov rdx, [rdx]
00408d54movsxd rdx, edx
00408d57imul rdx, rsi
00408d5badd rdx, rcx
00408d5eadd rdx, rdi
00408d61mov [rax], rdx
00408d64mov rax, [rbp-8]
00408d68add rax, 104
00408d6cmov rdx, [rbp-16]
00408d70add rdx, 48
00408d74mov rdx, [rdx]
00408d77movsxd rcx, edx
00408d7amov rdx, [rbp-24]
00408d7eadd rdx, 56
00408d82mov rdx, [rdx]
00408d85movsxd rdx, edx
00408d88imul rcx, rdx
00408d8cmov rdx, [rbp-16]
00408d90add rdx, 56
00408d94mov rdx, [rdx]
00408d97movsxd rsi, edx
00408d9amov rdx, [rbp-24]
00408d9eadd rdx, 48
00408da2mov rdx, [rdx]
00408da5movsxd rdx, edx
00408da8imul rdx, rsi
00408daclea rdi, [rcx+rdx]
00408db0mov rdx, [rbp-16]
00408db4add rdx, 64
00408db8mov rdx, [rdx]
00408dbbmovsxd rcx, edx
00408dbemov rdx, [rbp-24]
00408dc2add rdx, 40
00408dc6mov rdx, [rdx]
00408dc9movsxd rdx, edx
00408dccimul rcx, rdx
00408dd0mov rdx, [rbp-16]
00408dd4add rdx, 40
00408dd8mov rdx, [rdx]
00408ddbmovsxd rsi, edx
00408ddemov rdx, [rbp-24]
00408de2add rdx, 64
00408de6mov rdx, [rdx]
00408de9movsxd rdx, edx
00408decimul rdx, rsi
00408df0add rdx, rcx
00408df3add rdi, rdx
00408df6mov rdx, [rbp-16]
00408dfaadd rdx, 72
00408dfemov rdx, [rdx]
00408e01movsxd rcx, edx
00408e04mov rdx, [rbp-24]
00408e08add rdx, 32
00408e0cmov rdx, [rdx]
00408e0fmovsxd rdx, edx
00408e12imul rcx, rdx
00408e16mov rdx, [rbp-16]
00408e1aadd rdx, 32
00408e1emov rdx, [rdx]
00408e21movsxd rsi, edx
00408e24mov rdx, [rbp-24]
00408e28add rdx, 72
00408e2cmov rdx, [rdx]
00408e2fmovsxd rdx, edx
00408e32imul rdx, rsi
00408e36add rdx, rcx
00408e39add rdx, rdi
00408e3cmov [rax], rdx
00408e3fmov rax, [rbp-8]
00408e43add rax, 112
00408e47mov rdx, [rbp-16]
00408e4badd rdx, 56
00408e4fmov rdx, [rdx]
00408e52movsxd rcx, edx
00408e55mov rdx, [rbp-24]
00408e59add rdx, 56
00408e5dmov rdx, [rdx]
00408e60movsxd rdx, edx
00408e63imul rcx, rdx
00408e67mov rdx, [rbp-16]
00408e6badd rdx, 40
00408e6fmov rdx, [rdx]
00408e72movsxd rsi, edx
00408e75mov rdx, [rbp-24]
00408e79add rdx, 72
00408e7dmov rdx, [rdx]
00408e80movsxd rdx, edx
00408e83imul rdx, rsi
00408e87lea rsi, [rcx+rdx]
00408e8bmov rdx, [rbp-16]
00408e8fadd rdx, 72
00408e93mov rdx, [rdx]
00408e96movsxd rcx, edx
00408e99mov rdx, [rbp-24]
00408e9dadd rdx, 40
00408ea1mov rdx, [rdx]
00408ea4movsxd rdx, edx
00408ea7imul rdx, rcx
00408eabadd rdx, rsi
00408eaelea rsi, [rdx+rdx]
00408eb2mov rdx, [rbp-16]
00408eb6add rdx, 48
00408ebamov rdx, [rdx]
00408ebdmovsxd rcx, edx
00408ec0mov rdx, [rbp-24]
00408ec4add rdx, 64
00408ec8mov rdx, [rdx]
00408ecbmovsxd rdx, edx
00408eceimul rdx, rcx
00408ed2add rsi, rdx
00408ed5mov rdx, [rbp-16]
00408ed9add rdx, 64
00408eddmov rdx, [rdx]
00408ee0movsxd rcx, edx
00408ee3mov rdx, [rbp-24]
00408ee7add rdx, 48
00408eebmov rdx, [rdx]
00408eeemovsxd rdx, edx
00408ef1imul rdx, rcx
00408ef5add rdx, rsi
00408ef8mov [rax], rdx
00408efbmov rax, [rbp-8]
00408effadd rax, 120
00408f03mov rdx, [rbp-16]
00408f07add rdx, 56
00408f0bmov rdx, [rdx]
00408f0emovsxd rcx, edx
00408f11mov rdx, [rbp-24]
00408f15add rdx, 64
00408f19mov rdx, [rdx]
00408f1cmovsxd rdx, edx
00408f1fimul rcx, rdx
00408f23mov rdx, [rbp-16]
00408f27add rdx, 64
00408f2bmov rdx, [rdx]
00408f2emovsxd rsi, edx
00408f31mov rdx, [rbp-24]
00408f35add rdx, 56
00408f39mov rdx, [rdx]
00408f3cmovsxd rdx, edx
00408f3fimul rdx, rsi
00408f43lea rdi, [rcx+rdx]
00408f47mov rdx, [rbp-16]
00408f4badd rdx, 72
00408f4fmov rdx, [rdx]
00408f52movsxd rcx, edx
00408f55mov rdx, [rbp-24]
00408f59add rdx, 48
00408f5dmov rdx, [rdx]
00408f60movsxd rdx, edx
00408f63imul rcx, rdx
00408f67mov rdx, [rbp-16]
00408f6badd rdx, 48
00408f6fmov rdx, [rdx]
00408f72movsxd rsi, edx
00408f75mov rdx, [rbp-24]
00408f79add rdx, 72
00408f7dmov rdx, [rdx]
00408f80movsxd rdx, edx
00408f83imul rdx, rsi
00408f87add rdx, rcx
00408f8aadd rdx, rdi
00408f8dmov [rax], rdx
00408f90mov rax, [rbp-8]
00408f94sub rax, -128
00408f98mov rdx, [rbp-16]
00408f9cadd rdx, 64
00408fa0mov rdx, [rdx]
00408fa3movsxd rcx, edx
00408fa6mov rdx, [rbp-24]
00408faaadd rdx, 64
00408faemov rdx, [rdx]
00408fb1movsxd rdx, edx
00408fb4imul rdx, rcx
00408fb8mov rcx, [rbp-16]
00408fbcadd rcx, 56
00408fc0mov rcx, [rcx]
00408fc3movsxd rsi, ecx
00408fc6mov rcx, [rbp-24]
00408fcaadd rcx, 72
00408fcemov rcx, [rcx]
00408fd1movsxd rcx, ecx
00408fd4imul rsi, rcx
00408fd8mov rcx, [rbp-16]
00408fdcadd rcx, 72
00408fe0mov rcx, [rcx]
00408fe3movsxd rdi, ecx
00408fe6mov rcx, [rbp-24]
00408feaadd rcx, 56
00408feemov rcx, [rcx]
00408ff1movsxd rcx, ecx
00408ff4imul rcx, rdi
00408ff8add rcx, rsi
00408ffbadd rcx, rcx
00408ffeadd rdx, rcx
00409001mov [rax], rdx
00409004mov rax, [rbp-8]
00409008add rax, 136
0040900emov rdx, [rbp-16]
00409012add rdx, 64
00409016mov rdx, [rdx]
00409019movsxd rcx, edx
0040901cmov rdx, [rbp-24]
00409020add rdx, 72
00409024mov rdx, [rdx]
00409027movsxd rdx, edx
0040902aimul rcx, rdx
0040902emov rdx, [rbp-16]
00409032add rdx, 72
00409036mov rdx, [rdx]
00409039movsxd rsi, edx
0040903cmov rdx, [rbp-24]
00409040add rdx, 64
00409044mov rdx, [rdx]
00409047movsxd rdx, edx
0040904aimul rdx, rsi
0040904eadd rdx, rcx
00409051mov [rax], rdx
00409054mov rax, [rbp-8]
00409058lea rdx, [rax+144]
0040905fmov rax, [rbp-16]
00409063add rax, 72
00409067mov rax, [rax]
0040906acdqe
0040906clea rcx, [rax+rax]
00409070mov rax, [rbp-24]
00409074add rax, 72
00409078mov rax, [rax]
0040907bcdqe
0040907dimul rax, rcx
00409081mov [rdx], rax
00409084pop rbp
00409085ret
0040827e
0040827efproduct:
0040827epush rbp
0040827fmov rbp, rsp
00408282mov [rbp-8], rdi
00408286mov [rbp-16], rsi
0040828amov [rbp-24], rdx
0040828emov rax, [rbp-16]
00408292mov rax, [rax]
00408295movsxd rdx, eax
00408298mov rax, [rbp-24]
0040829cmov rax, [rax]
0040829fcdqe
004082a1imul rdx, rax
004082a5mov rax, [rbp-8]
004082a9mov [rax], rdx
004082acmov rax, [rbp-8]
004082b0lea rdx, [rax+8]
004082b4mov rax, [rbp-16]
004082b8mov rax, [rax]
004082bbmovsxd rcx, eax
004082bemov rax, [rbp-24]
004082c2add rax, 8
004082c6mov rax, [rax]
004082c9cdqe
004082cbimul rcx, rax
004082cfmov rax, [rbp-16]
004082d3add rax, 8
004082d7mov rax, [rax]
004082damovsxd rsi, eax
004082ddmov rax, [rbp-24]
004082e1mov rax, [rax]
004082e4cdqe
004082e6imul rax, rsi
004082eaadd rax, rcx
004082edmov [rdx], rax
004082f0mov rax, [rbp-8]
004082f4lea rdx, [rax+16]
004082f8mov rax, [rbp-16]
004082fcadd rax, 8
00408300mov rax, [rax]
00408303cdqe
00408305lea rcx, [rax+rax]
00408309mov rax, [rbp-24]
0040830dadd rax, 8
00408311mov rax, [rax]
00408314cdqe
00408316imul rcx, rax
0040831amov rax, [rbp-16]
0040831emov rax, [rax]
00408321movsxd rsi, eax
00408324mov rax, [rbp-24]
00408328add rax, 16
0040832cmov rax, [rax]
0040832fcdqe
00408331imul rax, rsi
00408335lea rsi, [rcx+rax]
00408339mov rax, [rbp-16]
0040833dadd rax, 16
00408341mov rax, [rax]
00408344movsxd rcx, eax
00408347mov rax, [rbp-24]
0040834bmov rax, [rax]
0040834ecdqe
00408350imul rax, rcx
00408354add rax, rsi
00408357mov [rdx], rax
0040835amov rax, [rbp-8]
0040835elea rdx, [rax+24]
00408362mov rax, [rbp-16]
00408366add rax, 8
0040836amov rax, [rax]
0040836dmovsxd rcx, eax
00408370mov rax, [rbp-24]
00408374add rax, 16
00408378mov rax, [rax]
0040837bcdqe
0040837dimul rcx, rax
00408381mov rax, [rbp-16]
00408385add rax, 16
00408389mov rax, [rax]
0040838cmovsxd rsi, eax
0040838fmov rax, [rbp-24]
00408393add rax, 8
00408397mov rax, [rax]
0040839acdqe
0040839cimul rax, rsi
004083a0lea rdi, [rcx+rax]
004083a4mov rax, [rbp-16]
004083a8add rax, 24
004083acmov rax, [rax]
004083afmovsxd rcx, eax
004083b2mov rax, [rbp-24]
004083b6mov rax, [rax]
004083b9cdqe
004083bbimul rcx, rax
004083bfmov rax, [rbp-16]
004083c3mov rax, [rax]
004083c6movsxd rsi, eax
004083c9mov rax, [rbp-24]
004083cdadd rax, 24
004083d1mov rax, [rax]
004083d4cdqe
004083d6imul rax, rsi
004083daadd rax, rcx
004083ddadd rax, rdi
004083e0mov [rdx], rax
004083e3mov rax, [rbp-8]
004083e7lea rdx, [rax+32]
004083ebmov rax, [rbp-16]
004083efadd rax, 16
004083f3mov rax, [rax]
004083f6movsxd rcx, eax
004083f9mov rax, [rbp-24]
004083fdadd rax, 16
00408401mov rax, [rax]
00408404cdqe
00408406imul rax, rcx
0040840amov rcx, [rbp-16]
0040840eadd rcx, 8
00408412mov rcx, [rcx]
00408415movsxd rsi, ecx
00408418mov rcx, [rbp-24]
0040841cadd rcx, 24
00408420mov rcx, [rcx]
00408423movsxd rcx, ecx
00408426imul rsi, rcx
0040842amov rcx, [rbp-16]
0040842eadd rcx, 24
00408432mov rcx, [rcx]
00408435movsxd rdi, ecx
00408438mov rcx, [rbp-24]
0040843cadd rcx, 8
00408440mov rcx, [rcx]
00408443movsxd rcx, ecx
00408446imul rcx, rdi
0040844aadd rcx, rsi
0040844dadd rcx, rcx
00408450lea rdi, [rax+rcx]
00408454mov rax, [rbp-16]
00408458add rax, 32
0040845cmov rax, [rax]
0040845fmovsxd rcx, eax
00408462mov rax, [rbp-24]
00408466mov rax, [rax]
00408469cdqe
0040846bimul rcx, rax
0040846fmov rax, [rbp-16]
00408473mov rax, [rax]
00408476movsxd rsi, eax
00408479mov rax, [rbp-24]
0040847dadd rax, 32
00408481mov rax, [rax]
00408484cdqe
00408486imul rax, rsi
0040848aadd rax, rcx
0040848dadd rax, rdi
00408490mov [rdx], rax
00408493mov rax, [rbp-8]
00408497lea rdx, [rax+40]
0040849bmov rax, [rbp-16]
0040849fadd rax, 16
004084a3mov rax, [rax]
004084a6movsxd rcx, eax
004084a9mov rax, [rbp-24]
004084adadd rax, 24
004084b1mov rax, [rax]
004084b4cdqe
004084b6imul rcx, rax
004084bamov rax, [rbp-16]
004084beadd rax, 24
004084c2mov rax, [rax]
004084c5movsxd rsi, eax
004084c8mov rax, [rbp-24]
004084ccadd rax, 16
004084d0mov rax, [rax]
004084d3cdqe
004084d5imul rax, rsi
004084d9lea rdi, [rcx+rax]
004084ddmov rax, [rbp-16]
004084e1add rax, 32
004084e5mov rax, [rax]
004084e8movsxd rcx, eax
004084ebmov rax, [rbp-24]
004084efadd rax, 8
004084f3mov rax, [rax]
004084f6cdqe
004084f8imul rcx, rax
004084fcmov rax, [rbp-16]
00408500add rax, 8
00408504mov rax, [rax]
00408507movsxd rsi, eax
0040850amov rax, [rbp-24]
0040850eadd rax, 32
00408512mov rax, [rax]
00408515cdqe
00408517imul rax, rsi
0040851badd rax, rcx
0040851eadd rdi, rax
00408521mov rax, [rbp-16]
00408525add rax, 40
00408529mov rax, [rax]
0040852cmovsxd rcx, eax
0040852fmov rax, [rbp-24]
00408533mov rax, [rax]
00408536cdqe
00408538imul rcx, rax
0040853cmov rax, [rbp-16]
00408540mov rax, [rax]
00408543movsxd rsi, eax
00408546mov rax, [rbp-24]
0040854aadd rax, 40
0040854emov rax, [rax]
00408551cdqe
00408553imul rax, rsi
00408557add rax, rcx
0040855aadd rax, rdi
0040855dmov [rdx], rax
00408560mov rax, [rbp-8]
00408564lea rdx, [rax+48]
00408568mov rax, [rbp-16]
0040856cadd rax, 24
00408570mov rax, [rax]
00408573movsxd rcx, eax
00408576mov rax, [rbp-24]
0040857aadd rax, 24
0040857emov rax, [rax]
00408581cdqe
00408583imul rcx, rax
00408587mov rax, [rbp-16]
0040858badd rax, 8
0040858fmov rax, [rax]
00408592movsxd rsi, eax
00408595mov rax, [rbp-24]
00408599add rax, 40
0040859dmov rax, [rax]
004085a0cdqe
004085a2imul rax, rsi
004085a6lea rsi, [rcx+rax]
004085aamov rax, [rbp-16]
004085aeadd rax, 40
004085b2mov rax, [rax]
004085b5movsxd rcx, eax
004085b8mov rax, [rbp-24]
004085bcadd rax, 8
004085c0mov rax, [rax]
004085c3cdqe
004085c5imul rax, rcx
004085c9add rax, rsi
004085cclea rsi, [rax+rax]
004085d0mov rax, [rbp-16]
004085d4add rax, 16
004085d8mov rax, [rax]
004085dbmovsxd rcx, eax
004085demov rax, [rbp-24]
004085e2add rax, 32
004085e6mov rax, [rax]
004085e9cdqe
004085ebimul rax, rcx
004085eflea rdi, [rsi+rax]
004085f3mov rax, [rbp-16]
004085f7mov rax, [rax]
004085famovsxd rcx, eax
004085fdmov rax, [rbp-24]
00408601add rax, 48
00408605mov rax, [rax]
00408608cdqe
0040860aimul rcx, rax
0040860emov rax, [rbp-16]
00408612add rax, 32
00408616mov rax, [rax]
00408619movsxd rsi, eax
0040861cmov rax, [rbp-24]
00408620add rax, 16
00408624mov rax, [rax]
00408627cdqe
00408629imul rax, rsi
0040862dadd rax, rcx
00408630lea rsi, [rdi+rax]
00408634mov rax, [rbp-16]
00408638add rax, 48
0040863cmov rax, [rax]
0040863fmovsxd rcx, eax
00408642mov rax, [rbp-24]
00408646mov rax, [rax]
00408649cdqe
0040864bimul rax, rcx
0040864fadd rax, rsi
00408652mov [rdx], rax
00408655mov rax, [rbp-8]
00408659lea rdx, [rax+56]
0040865dmov rax, [rbp-16]
00408661add rax, 24
00408665mov rax, [rax]
00408668movsxd rcx, eax
0040866bmov rax, [rbp-24]
0040866fadd rax, 32
00408673mov rax, [rax]
00408676cdqe
00408678imul rcx, rax
0040867cmov rax, [rbp-16]
00408680add rax, 32
00408684mov rax, [rax]
00408687movsxd rsi, eax
0040868amov rax, [rbp-24]
0040868eadd rax, 24
00408692mov rax, [rax]
00408695cdqe
00408697imul rax, rsi
0040869blea rdi, [rcx+rax]
0040869fmov rax, [rbp-16]
004086a3add rax, 40
004086a7mov rax, [rax]
004086aamovsxd rcx, eax
004086admov rax, [rbp-24]
004086b1add rax, 16
004086b5mov rax, [rax]
004086b8cdqe
004086baimul rcx, rax
004086bemov rax, [rbp-16]
004086c2add rax, 16
004086c6mov rax, [rax]
004086c9movsxd rsi, eax
004086ccmov rax, [rbp-24]
004086d0add rax, 40
004086d4mov rax, [rax]
004086d7cdqe
004086d9imul rax, rsi
004086ddadd rax, rcx
004086e0add rdi, rax
004086e3mov rax, [rbp-16]
004086e7add rax, 48
004086ebmov rax, [rax]
004086eemovsxd rcx, eax
004086f1mov rax, [rbp-24]
004086f5add rax, 8
004086f9mov rax, [rax]
004086fccdqe
004086feimul rcx, rax
00408702mov rax, [rbp-16]
00408706add rax, 8
0040870amov rax, [rax]
0040870dmovsxd rsi, eax
00408710mov rax, [rbp-24]
00408714add rax, 48
00408718mov rax, [rax]
0040871bcdqe
0040871dimul rax, rsi
00408721add rax, rcx
00408724add rdi, rax
00408727mov rax, [rbp-16]
0040872badd rax, 56
0040872fmov rax, [rax]
00408732movsxd rcx, eax
00408735mov rax, [rbp-24]
00408739mov rax, [rax]
0040873ccdqe
0040873eimul rcx, rax
00408742mov rax, [rbp-16]
00408746mov rax, [rax]
00408749movsxd rsi, eax
0040874cmov rax, [rbp-24]
00408750add rax, 56
00408754mov rax, [rax]
00408757cdqe
00408759imul rax, rsi
0040875dadd rax, rcx
00408760add rax, rdi
00408763mov [rdx], rax
00408766mov rax, [rbp-8]
0040876alea rdx, [rax+64]
0040876emov rax, [rbp-16]
00408772add rax, 32
00408776mov rax, [rax]
00408779movsxd rcx, eax
0040877cmov rax, [rbp-24]
00408780add rax, 32
00408784mov rax, [rax]
00408787cdqe
00408789imul rax, rcx
0040878dmov rcx, [rbp-16]
00408791add rcx, 24
00408795mov rcx, [rcx]
00408798movsxd rsi, ecx
0040879bmov rcx, [rbp-24]
0040879fadd rcx, 40
004087a3mov rcx, [rcx]
004087a6movsxd rcx, ecx
004087a9imul rsi, rcx
004087admov rcx, [rbp-16]
004087b1add rcx, 40
004087b5mov rcx, [rcx]
004087b8movsxd rdi, ecx
004087bbmov rcx, [rbp-24]
004087bfadd rcx, 24
004087c3mov rcx, [rcx]
004087c6movsxd rcx, ecx
004087c9imul rcx, rdi
004087cdlea r8, [rsi+rcx]
004087d1mov rcx, [rbp-16]
004087d5add rcx, 56
004087d9mov rcx, [rcx]
004087dcmovsxd rsi, ecx
004087dfmov rcx, [rbp-24]
004087e3add rcx, 8
004087e7mov rcx, [rcx]
004087eamovsxd rcx, ecx
004087edimul rsi, rcx
004087f1mov rcx, [rbp-16]
004087f5add rcx, 8
004087f9mov rcx, [rcx]
004087fcmovsxd rdi, ecx
004087ffmov rcx, [rbp-24]
00408803add rcx, 56
00408807mov rcx, [rcx]
0040880amovsxd rcx, ecx
0040880dimul rcx, rdi
00408811add rcx, rsi
00408814add rcx, r8
00408817add rcx, rcx
0040881alea rdi, [rax+rcx]
0040881emov rax, [rbp-16]
00408822add rax, 48
00408826mov rax, [rax]
00408829movsxd rcx, eax
0040882cmov rax, [rbp-24]
00408830add rax, 16
00408834mov rax, [rax]
00408837cdqe
00408839imul rcx, rax
0040883dmov rax, [rbp-16]
00408841add rax, 16
00408845mov rax, [rax]
00408848movsxd rsi, eax
0040884bmov rax, [rbp-24]
0040884fadd rax, 48
00408853mov rax, [rax]
00408856cdqe
00408858imul rax, rsi
0040885cadd rax, rcx
0040885fadd rdi, rax
00408862mov rax, [rbp-16]
00408866add rax, 64
0040886amov rax, [rax]
0040886dmovsxd rcx, eax
00408870mov rax, [rbp-24]
00408874mov rax, [rax]
00408877cdqe
00408879imul rcx, rax
0040887dmov rax, [rbp-16]
00408881mov rax, [rax]
00408884movsxd rsi, eax
00408887mov rax, [rbp-24]
0040888badd rax, 64
0040888fmov rax, [rax]
00408892cdqe
00408894imul rax, rsi
00408898add rax, rcx
0040889badd rax, rdi
0040889emov [rdx], rax
004088a1mov rax, [rbp-8]
004088a5lea rdx, [rax+72]
004088a9mov rax, [rbp-16]
004088adadd rax, 32
004088b1mov rax, [rax]
004088b4movsxd rcx, eax
004088b7mov rax, [rbp-24]
004088bbadd rax, 40
004088bfmov rax, [rax]
004088c2cdqe
004088c4imul rcx, rax
004088c8mov rax, [rbp-16]
004088ccadd rax, 40
004088d0mov rax, [rax]
004088d3movsxd rsi, eax
004088d6mov rax, [rbp-24]
004088daadd rax, 32
004088demov rax, [rax]
004088e1cdqe
004088e3imul rax, rsi
004088e7lea rdi, [rcx+rax]
004088ebmov rax, [rbp-16]
004088efadd rax, 48
004088f3mov rax, [rax]
004088f6movsxd rcx, eax
004088f9mov rax, [rbp-24]
004088fdadd rax, 24
00408901mov rax, [rax]
00408904cdqe
00408906imul rcx, rax
0040890amov rax, [rbp-16]
0040890eadd rax, 24
00408912mov rax, [rax]
00408915movsxd rsi, eax
00408918mov rax, [rbp-24]
0040891cadd rax, 48
00408920mov rax, [rax]
00408923cdqe
00408925imul rax, rsi
00408929add rax, rcx
0040892cadd rdi, rax
0040892fmov rax, [rbp-16]
00408933add rax, 56
00408937mov rax, [rax]
0040893amovsxd rcx, eax
0040893dmov rax, [rbp-24]
00408941add rax, 16
00408945mov rax, [rax]
00408948cdqe
0040894aimul rcx, rax
0040894emov rax, [rbp-16]
00408952add rax, 16
00408956mov rax, [rax]
00408959movsxd rsi, eax
0040895cmov rax, [rbp-24]
00408960add rax, 56
00408964mov rax, [rax]
00408967cdqe
00408969imul rax, rsi
0040896dadd rax, rcx
00408970add rdi, rax
00408973mov rax, [rbp-16]
00408977add rax, 64
0040897bmov rax, [rax]
0040897emovsxd rcx, eax
00408981mov rax, [rbp-24]
00408985add rax, 8
00408989mov rax, [rax]
0040898ccdqe
0040898eimul rcx, rax
00408992mov rax, [rbp-16]
00408996add rax, 8
0040899amov rax, [rax]
0040899dmovsxd rsi, eax
004089a0mov rax, [rbp-24]
004089a4add rax, 64
004089a8mov rax, [rax]
004089abcdqe
004089adimul rax, rsi
004089b1add rax, rcx
004089b4add rdi, rax
004089b7mov rax, [rbp-16]
004089bbadd rax, 72
004089bfmov rax, [rax]
004089c2movsxd rcx, eax
004089c5mov rax, [rbp-24]
004089c9mov rax, [rax]
004089cccdqe
004089ceimul rcx, rax
004089d2mov rax, [rbp-16]
004089d6mov rax, [rax]
004089d9movsxd rsi, eax
004089dcmov rax, [rbp-24]
004089e0add rax, 72
004089e4mov rax, [rax]
004089e7cdqe
004089e9imul rax, rsi
004089edadd rax, rcx
004089f0add rax, rdi
004089f3mov [rdx], rax
004089f6mov rax, [rbp-8]
004089faadd rax, 80
004089femov rdx, [rbp-16]
00408a02add rdx, 40
00408a06mov rdx, [rdx]
00408a09movsxd rcx, edx
00408a0cmov rdx, [rbp-24]
00408a10add rdx, 40
00408a14mov rdx, [rdx]
00408a17movsxd rdx, edx
00408a1aimul rcx, rdx
00408a1emov rdx, [rbp-16]
00408a22add rdx, 24
00408a26mov rdx, [rdx]
00408a29movsxd rsi, edx
00408a2cmov rdx, [rbp-24]
00408a30add rdx, 56
00408a34mov rdx, [rdx]
00408a37movsxd rdx, edx
00408a3aimul rdx, rsi
00408a3elea rdi, [rcx+rdx]
00408a42mov rdx, [rbp-16]
00408a46add rdx, 8
00408a4amov rdx, [rdx]
00408a4dmovsxd rcx, edx
00408a50mov rdx, [rbp-24]
00408a54add rdx, 72
00408a58mov rdx, [rdx]
00408a5bmovsxd rdx, edx
00408a5eimul rcx, rdx
00408a62mov rdx, [rbp-16]
00408a66add rdx, 56
00408a6amov rdx, [rdx]
00408a6dmovsxd rsi, edx
00408a70mov rdx, [rbp-24]
00408a74add rdx, 24
00408a78mov rdx, [rdx]
00408a7bmovsxd rdx, edx
00408a7eimul rdx, rsi
00408a82add rdx, rcx
00408a85lea rsi, [rdi+rdx]
00408a89mov rdx, [rbp-16]
00408a8dadd rdx, 72
00408a91mov rdx, [rdx]
00408a94movsxd rcx, edx
00408a97mov rdx, [rbp-24]
00408a9badd rdx, 8
00408a9fmov rdx, [rdx]
00408aa2movsxd rdx, edx
00408aa5imul rdx, rcx
00408aa9add rdx, rsi
00408aaclea rsi, [rdx+rdx]
00408ab0mov rdx, [rbp-16]
00408ab4add rdx, 32
00408ab8mov rdx, [rdx]
00408abbmovsxd rcx, edx
00408abemov rdx, [rbp-24]
00408ac2add rdx, 48
00408ac6mov rdx, [rdx]
00408ac9movsxd rdx, edx
00408accimul rdx, rcx
00408ad0lea rdi, [rsi+rdx]
00408ad4mov rdx, [rbp-16]
00408ad8add rdx, 16
00408adcmov rdx, [rdx]
00408adfmovsxd rcx, edx
00408ae2mov rdx, [rbp-24]
00408ae6add rdx, 64
00408aeamov rdx, [rdx]
00408aedmovsxd rdx, edx
00408af0imul rcx, rdx
00408af4mov rdx, [rbp-16]
00408af8add rdx, 48
00408afcmov rdx, [rdx]
00408affmovsxd rsi, edx
00408b02mov rdx, [rbp-24]
00408b06add rdx, 32
00408b0amov rdx, [rdx]
00408b0dmovsxd rdx, edx
00408b10imul rdx, rsi
00408b14add rdx, rcx
00408b17lea rsi, [rdi+rdx]
00408b1bmov rdx, [rbp-16]
00408b1fadd rdx, 64
00408b23mov rdx, [rdx]
00408b26movsxd rcx, edx
00408b29mov rdx, [rbp-24]
00408b2dadd rdx, 16
00408b31mov rdx, [rdx]
00408b34movsxd rdx, edx
00408b37imul rdx, rcx
00408b3badd rdx, rsi
00408b3emov [rax], rdx
00408b41mov rax, [rbp-8]
00408b45add rax, 88
00408b49mov rdx, [rbp-16]
00408b4dadd rdx, 40
00408b51mov rdx, [rdx]
00408b54movsxd rcx, edx
00408b57mov rdx, [rbp-24]
00408b5badd rdx, 48
00408b5fmov rdx, [rdx]
00408b62movsxd rdx, edx
00408b65imul rcx, rdx
00408b69mov rdx, [rbp-16]
00408b6dadd rdx, 48
00408b71mov rdx, [rdx]
00408b74movsxd rsi, edx
00408b77mov rdx, [rbp-24]
00408b7badd rdx, 40
00408b7fmov rdx, [rdx]
00408b82movsxd rdx, edx
00408b85imul rdx, rsi
00408b89lea rdi, [rcx+rdx]
00408b8dmov rdx, [rbp-16]
00408b91add rdx, 56
00408b95mov rdx, [rdx]
00408b98movsxd rcx, edx
00408b9bmov rdx, [rbp-24]
00408b9fadd rdx, 32
00408ba3mov rdx, [rdx]
00408ba6movsxd rdx, edx
00408ba9imul rcx, rdx
00408badmov rdx, [rbp-16]
00408bb1add rdx, 32
00408bb5mov rdx, [rdx]
00408bb8movsxd rsi, edx
00408bbbmov rdx, [rbp-24]
00408bbfadd rdx, 56
00408bc3mov rdx, [rdx]
00408bc6movsxd rdx, edx
00408bc9imul rdx, rsi
00408bcdadd rdx, rcx
00408bd0add rdi, rdx
00408bd3mov rdx, [rbp-16]
00408bd7add rdx, 64
00408bdbmov rdx, [rdx]
00408bdemovsxd rcx, edx
00408be1mov rdx, [rbp-24]
00408be5add rdx, 24
00408be9mov rdx, [rdx]
00408becmovsxd rdx, edx
00408befimul rcx, rdx
00408bf3mov rdx, [rbp-16]
00408bf7add rdx, 24
00408bfbmov rdx, [rdx]
00408bfemovsxd rsi, edx
00408c01mov rdx, [rbp-24]
00408c05add rdx, 64
00408c09mov rdx, [rdx]
00408c0cmovsxd rdx, edx
00408c0fimul rdx, rsi
00408c13add rdx, rcx
00408c16add rdi, rdx
00408c19mov rdx, [rbp-16]
00408c1dadd rdx, 72
00408c21mov rdx, [rdx]
00408c24movsxd rcx, edx
00408c27mov rdx, [rbp-24]
00408c2badd rdx, 16
00408c2fmov rdx, [rdx]
00408c32movsxd rdx, edx
00408c35imul rcx, rdx
00408c39mov rdx, [rbp-16]
00408c3dadd rdx, 16
00408c41mov rdx, [rdx]
00408c44movsxd rsi, edx
00408c47mov rdx, [rbp-24]
00408c4badd rdx, 72
00408c4fmov rdx, [rdx]
00408c52movsxd rdx, edx
00408c55imul rdx, rsi
00408c59add rdx, rcx
00408c5cadd rdx, rdi
00408c5fmov [rax], rdx
00408c62mov rax, [rbp-8]
00408c66add rax, 96
00408c6amov rdx, [rbp-16]
00408c6eadd rdx, 48
00408c72mov rdx, [rdx]
00408c75movsxd rcx, edx
00408c78mov rdx, [rbp-24]
00408c7cadd rdx, 48
00408c80mov rdx, [rdx]
00408c83movsxd rdx, edx
00408c86imul rdx, rcx
00408c8amov rcx, [rbp-16]
00408c8eadd rcx, 40
00408c92mov rcx, [rcx]
00408c95movsxd rsi, ecx
00408c98mov rcx, [rbp-24]
00408c9cadd rcx, 56
00408ca0mov rcx, [rcx]
00408ca3movsxd rcx, ecx
00408ca6imul rsi, rcx
00408caamov rcx, [rbp-16]
00408caeadd rcx, 56
00408cb2mov rcx, [rcx]
00408cb5movsxd rdi, ecx
00408cb8mov rcx, [rbp-24]
00408cbcadd rcx, 40
00408cc0mov rcx, [rcx]
00408cc3movsxd rcx, ecx
00408cc6imul rcx, rdi
00408ccalea r8, [rsi+rcx]
00408ccemov rcx, [rbp-16]
00408cd2add rcx, 72
00408cd6mov rcx, [rcx]
00408cd9movsxd rsi, ecx
00408cdcmov rcx, [rbp-24]
00408ce0add rcx, 24
00408ce4mov rcx, [rcx]
00408ce7movsxd rcx, ecx
00408ceaimul rsi, rcx
00408ceemov rcx, [rbp-16]
00408cf2add rcx, 24
00408cf6mov rcx, [rcx]
00408cf9movsxd rdi, ecx
00408cfcmov rcx, [rbp-24]
00408d00add rcx, 72
00408d04mov rcx, [rcx]
00408d07movsxd rcx, ecx
00408d0aimul rcx, rdi
00408d0eadd rcx, rsi
00408d11add rcx, r8
00408d14add rcx, rcx
00408d17lea rdi, [rdx+rcx]
00408d1bmov rdx, [rbp-16]
00408d1fadd rdx, 64
00408d23mov rdx, [rdx]
00408d26movsxd rcx, edx
00408d29mov rdx, [rbp-24]
00408d2dadd rdx, 32
00408d31mov rdx, [rdx]
00408d34movsxd rdx, edx
00408d37imul rcx, rdx
00408d3bmov rdx, [rbp-16]
00408d3fadd rdx, 32
00408d43mov rdx, [rdx]
00408d46movsxd rsi, edx
00408d49mov rdx, [rbp-24]
00408d4dadd rdx, 64
00408d51mov rdx, [rdx]
00408d54movsxd rdx, edx
00408d57imul rdx, rsi
00408d5badd rdx, rcx
00408d5eadd rdx, rdi
00408d61mov [rax], rdx
00408d64mov rax, [rbp-8]
00408d68add rax, 104
00408d6cmov rdx, [rbp-16]
00408d70add rdx, 48
00408d74mov rdx, [rdx]
00408d77movsxd rcx, edx
00408d7amov rdx, [rbp-24]
00408d7eadd rdx, 56
00408d82mov rdx, [rdx]
00408d85movsxd rdx, edx
00408d88imul rcx, rdx
00408d8cmov rdx, [rbp-16]
00408d90add rdx, 56
00408d94mov rdx, [rdx]
00408d97movsxd rsi, edx
00408d9amov rdx, [rbp-24]
00408d9eadd rdx, 48
00408da2mov rdx, [rdx]
00408da5movsxd rdx, edx
00408da8imul rdx, rsi
00408daclea rdi, [rcx+rdx]
00408db0mov rdx, [rbp-16]
00408db4add rdx, 64
00408db8mov rdx, [rdx]
00408dbbmovsxd rcx, edx
00408dbemov rdx, [rbp-24]
00408dc2add rdx, 40
00408dc6mov rdx, [rdx]
00408dc9movsxd rdx, edx
00408dccimul rcx, rdx
00408dd0mov rdx, [rbp-16]
00408dd4add rdx, 40
00408dd8mov rdx, [rdx]
00408ddbmovsxd rsi, edx
00408ddemov rdx, [rbp-24]
00408de2add rdx, 64
00408de6mov rdx, [rdx]
00408de9movsxd rdx, edx
00408decimul rdx, rsi
00408df0add rdx, rcx
00408df3add rdi, rdx
00408df6mov rdx, [rbp-16]
00408dfaadd rdx, 72
00408dfemov rdx, [rdx]
00408e01movsxd rcx, edx
00408e04mov rdx, [rbp-24]
00408e08add rdx, 32
00408e0cmov rdx, [rdx]
00408e0fmovsxd rdx, edx
00408e12imul rcx, rdx
00408e16mov rdx, [rbp-16]
00408e1aadd rdx, 32
00408e1emov rdx, [rdx]
00408e21movsxd rsi, edx
00408e24mov rdx, [rbp-24]
00408e28add rdx, 72
00408e2cmov rdx, [rdx]
00408e2fmovsxd rdx, edx
00408e32imul rdx, rsi
00408e36add rdx, rcx
00408e39add rdx, rdi
00408e3cmov [rax], rdx
00408e3fmov rax, [rbp-8]
00408e43add rax, 112
00408e47mov rdx, [rbp-16]
00408e4badd rdx, 56
00408e4fmov rdx, [rdx]
00408e52movsxd rcx, edx
00408e55mov rdx, [rbp-24]
00408e59add rdx, 56
00408e5dmov rdx, [rdx]
00408e60movsxd rdx, edx
00408e63imul rcx, rdx
00408e67mov rdx, [rbp-16]
00408e6badd rdx, 40
00408e6fmov rdx, [rdx]
00408e72movsxd rsi, edx
00408e75mov rdx, [rbp-24]
00408e79add rdx, 72
00408e7dmov rdx, [rdx]
00408e80movsxd rdx, edx
00408e83imul rdx, rsi
00408e87lea rsi, [rcx+rdx]
00408e8bmov rdx, [rbp-16]
00408e8fadd rdx, 72
00408e93mov rdx, [rdx]
00408e96movsxd rcx, edx
00408e99mov rdx, [rbp-24]
00408e9dadd rdx, 40
00408ea1mov rdx, [rdx]
00408ea4movsxd rdx, edx
00408ea7imul rdx, rcx
00408eabadd rdx, rsi
00408eaelea rsi, [rdx+rdx]
00408eb2mov rdx, [rbp-16]
00408eb6add rdx, 48
00408ebamov rdx, [rdx]
00408ebdmovsxd rcx, edx
00408ec0mov rdx, [rbp-24]
00408ec4add rdx, 64
00408ec8mov rdx, [rdx]
00408ecbmovsxd rdx, edx
00408eceimul rdx, rcx
00408ed2add rsi, rdx
00408ed5mov rdx, [rbp-16]
00408ed9add rdx, 64
00408eddmov rdx, [rdx]
00408ee0movsxd rcx, edx
00408ee3mov rdx, [rbp-24]
00408ee7add rdx, 48
00408eebmov rdx, [rdx]
00408eeemovsxd rdx, edx
00408ef1imul rdx, rcx
00408ef5add rdx, rsi
00408ef8mov [rax], rdx
00408efbmov rax, [rbp-8]
00408effadd rax, 120
00408f03mov rdx, [rbp-16]
00408f07add rdx, 56
00408f0bmov rdx, [rdx]
00408f0emovsxd rcx, edx
00408f11mov rdx, [rbp-24]
00408f15add rdx, 64
00408f19mov rdx, [rdx]
00408f1cmovsxd rdx, edx
00408f1fimul rcx, rdx
00408f23mov rdx, [rbp-16]
00408f27add rdx, 64
00408f2bmov rdx, [rdx]
00408f2emovsxd rsi, edx
00408f31mov rdx, [rbp-24]
00408f35add rdx, 56
00408f39mov rdx, [rdx]
00408f3cmovsxd rdx, edx
00408f3fimul rdx, rsi
00408f43lea rdi, [rcx+rdx]
00408f47mov rdx, [rbp-16]
00408f4badd rdx, 72
00408f4fmov rdx, [rdx]
00408f52movsxd rcx, edx
00408f55mov rdx, [rbp-24]
00408f59add rdx, 48
00408f5dmov rdx, [rdx]
00408f60movsxd rdx, edx
00408f63imul rcx, rdx
00408f67mov rdx, [rbp-16]
00408f6badd rdx, 48
00408f6fmov rdx, [rdx]
00408f72movsxd rsi, edx
00408f75mov rdx, [rbp-24]
00408f79add rdx, 72
00408f7dmov rdx, [rdx]
00408f80movsxd rdx, edx
00408f83imul rdx, rsi
00408f87add rdx, rcx
00408f8aadd rdx, rdi
00408f8dmov [rax], rdx
00408f90mov rax, [rbp-8]
00408f94sub rax, -128
00408f98mov rdx, [rbp-16]
00408f9cadd rdx, 64
00408fa0mov rdx, [rdx]
00408fa3movsxd rcx, edx
00408fa6mov rdx, [rbp-24]
00408faaadd rdx, 64
00408faemov rdx, [rdx]
00408fb1movsxd rdx, edx
00408fb4imul rdx, rcx
00408fb8mov rcx, [rbp-16]
00408fbcadd rcx, 56
00408fc0mov rcx, [rcx]
00408fc3movsxd rsi, ecx
00408fc6mov rcx, [rbp-24]
00408fcaadd rcx, 72
00408fcemov rcx, [rcx]
00408fd1movsxd rcx, ecx
00408fd4imul rsi, rcx
00408fd8mov rcx, [rbp-16]
00408fdcadd rcx, 72
00408fe0mov rcx, [rcx]
00408fe3movsxd rdi, ecx
00408fe6mov rcx, [rbp-24]
00408feaadd rcx, 56
00408feemov rcx, [rcx]
00408ff1movsxd rcx, ecx
00408ff4imul rcx, rdi
00408ff8add rcx, rsi
00408ffbadd rcx, rcx
00408ffeadd rdx, rcx
00409001mov [rax], rdx
00409004mov rax, [rbp-8]
00409008add rax, 136
0040900emov rdx, [rbp-16]
00409012add rdx, 64
00409016mov rdx, [rdx]
00409019movsxd rcx, edx
0040901cmov rdx, [rbp-24]
00409020add rdx, 72
00409024mov rdx, [rdx]
00409027movsxd rdx, edx
0040902aimul rcx, rdx
0040902emov rdx, [rbp-16]
00409032add rdx, 72
00409036mov rdx, [rdx]
00409039movsxd rsi, edx
0040903cmov rdx, [rbp-24]
00409040add rdx, 64
00409044mov rdx, [rdx]
00409047movsxd rdx, edx
0040904aimul rdx, rsi
0040904eadd rdx, rcx
00409051mov [rax], rdx
00409054mov rax, [rbp-8]
00409058lea rdx, [rax+144]
0040905fmov rax, [rbp-16]
00409063add rax, 72
00409067mov rax, [rax]
0040906acdqe
0040906clea rcx, [rax+rax]
00409070mov rax, [rbp-24]
00409074add rax, 72
00409078mov rax, [rax]
0040907bcdqe
0040907dimul rax, rcx
00409081mov [rdx], rax
00409084pop rbp
00409085ret
0040827e
00409086
00409086freduce_degree:
00409086push rbp
00409087mov rbp, rsp
0040908amov [rbp-8], rdi
0040908emov rax, [rbp-8]
00409092add rax, 64
00409096mov rdx, [rbp-8]
0040909aadd rdx, 64
0040909emov rdx, [rdx]
004090a1mov rcx, [rbp-8]
004090a5add rcx, 144
004090acmov rcx, [rcx]
004090afshl rcx, 4
004090b3add rdx, rcx
004090b6mov [rax], rdx
004090b9mov rax, [rbp-8]
004090bdadd rax, 64
004090c1mov rdx, [rbp-8]
004090c5add rdx, 64
004090c9mov rdx, [rdx]
004090ccmov rcx, [rbp-8]
004090d0add rcx, 144
004090d7mov rcx, [rcx]
004090daadd rcx, rcx
004090ddadd rdx, rcx
004090e0mov [rax], rdx
004090e3mov rax, [rbp-8]
004090e7add rax, 64
004090ebmov rdx, [rbp-8]
004090efadd rdx, 64
004090f3mov rcx, [rdx]
004090f6mov rdx, [rbp-8]
004090faadd rdx, 144
00409101mov rdx, [rdx]
00409104add rdx, rcx
00409107mov [rax], rdx
0040910amov rax, [rbp-8]
0040910eadd rax, 56
00409112mov rdx, [rbp-8]
00409116add rdx, 56
0040911amov rdx, [rdx]
0040911dmov rcx, [rbp-8]
00409121add rcx, 136
00409128mov rcx, [rcx]
0040912bshl rcx, 4
0040912fadd rdx, rcx
00409132mov [rax], rdx
00409135mov rax, [rbp-8]
00409139add rax, 56
0040913dmov rdx, [rbp-8]
00409141add rdx, 56
00409145mov rdx, [rdx]
00409148mov rcx, [rbp-8]
0040914cadd rcx, 136
00409153mov rcx, [rcx]
00409156add rcx, rcx
00409159add rdx, rcx
0040915cmov [rax], rdx
0040915fmov rax, [rbp-8]
00409163add rax, 56
00409167mov rdx, [rbp-8]
0040916badd rdx, 56
0040916fmov rcx, [rdx]
00409172mov rdx, [rbp-8]
00409176add rdx, 136
0040917dmov rdx, [rdx]
00409180add rdx, rcx
00409183mov [rax], rdx
00409186mov rax, [rbp-8]
0040918aadd rax, 48
0040918emov rdx, [rbp-8]
00409192add rdx, 48
00409196mov rdx, [rdx]
00409199mov rcx, [rbp-8]
0040919dsub rcx, -128
004091a1mov rcx, [rcx]
004091a4shl rcx, 4
004091a8add rdx, rcx
004091abmov [rax], rdx
004091aemov rax, [rbp-8]
004091b2add rax, 48
004091b6mov rdx, [rbp-8]
004091baadd rdx, 48
004091bemov rdx, [rdx]
004091c1mov rcx, [rbp-8]
004091c5sub rcx, -128
004091c9mov rcx, [rcx]
004091ccadd rcx, rcx
004091cfadd rdx, rcx
004091d2mov [rax], rdx
004091d5mov rax, [rbp-8]
004091d9add rax, 48
004091ddmov rdx, [rbp-8]
004091e1add rdx, 48
004091e5mov rcx, [rdx]
004091e8mov rdx, [rbp-8]
004091ecsub rdx, -128
004091f0mov rdx, [rdx]
004091f3add rdx, rcx
004091f6mov [rax], rdx
004091f9mov rax, [rbp-8]
004091fdadd rax, 40
00409201mov rdx, [rbp-8]
00409205add rdx, 40
00409209mov rdx, [rdx]
0040920cmov rcx, [rbp-8]
00409210add rcx, 120
00409214mov rcx, [rcx]
00409217shl rcx, 4
0040921badd rdx, rcx
0040921emov [rax], rdx
00409221mov rax, [rbp-8]
00409225add rax, 40
00409229mov rdx, [rbp-8]
0040922dadd rdx, 40
00409231mov rdx, [rdx]
00409234mov rcx, [rbp-8]
00409238add rcx, 120
0040923cmov rcx, [rcx]
0040923fadd rcx, rcx
00409242add rdx, rcx
00409245mov [rax], rdx
00409248mov rax, [rbp-8]
0040924cadd rax, 40
00409250mov rdx, [rbp-8]
00409254add rdx, 40
00409258mov rcx, [rdx]
0040925bmov rdx, [rbp-8]
0040925fadd rdx, 120
00409263mov rdx, [rdx]
00409266add rdx, rcx
00409269mov [rax], rdx
0040926cmov rax, [rbp-8]
00409270add rax, 32
00409274mov rdx, [rbp-8]
00409278add rdx, 32
0040927cmov rdx, [rdx]
0040927fmov rcx, [rbp-8]
00409283add rcx, 112
00409287mov rcx, [rcx]
0040928ashl rcx, 4
0040928eadd rdx, rcx
00409291mov [rax], rdx
00409294mov rax, [rbp-8]
00409298add rax, 32
0040929cmov rdx, [rbp-8]
004092a0add rdx, 32
004092a4mov rdx, [rdx]
004092a7mov rcx, [rbp-8]
004092abadd rcx, 112
004092afmov rcx, [rcx]
004092b2add rcx, rcx
004092b5add rdx, rcx
004092b8mov [rax], rdx
004092bbmov rax, [rbp-8]
004092bfadd rax, 32
004092c3mov rdx, [rbp-8]
004092c7add rdx, 32
004092cbmov rcx, [rdx]
004092cemov rdx, [rbp-8]
004092d2add rdx, 112
004092d6mov rdx, [rdx]
004092d9add rdx, rcx
004092dcmov [rax], rdx
004092dfmov rax, [rbp-8]
004092e3add rax, 24
004092e7mov rdx, [rbp-8]
004092ebadd rdx, 24
004092efmov rdx, [rdx]
004092f2mov rcx, [rbp-8]
004092f6add rcx, 104
004092famov rcx, [rcx]
004092fdshl rcx, 4
00409301add rdx, rcx
00409304mov [rax], rdx
00409307mov rax, [rbp-8]
0040930badd rax, 24
0040930fmov rdx, [rbp-8]
00409313add rdx, 24
00409317mov rdx, [rdx]
0040931amov rcx, [rbp-8]
0040931eadd rcx, 104
00409322mov rcx, [rcx]
00409325add rcx, rcx
00409328add rdx, rcx
0040932bmov [rax], rdx
0040932emov rax, [rbp-8]
00409332add rax, 24
00409336mov rdx, [rbp-8]
0040933aadd rdx, 24
0040933emov rcx, [rdx]
00409341mov rdx, [rbp-8]
00409345add rdx, 104
00409349mov rdx, [rdx]
0040934cadd rdx, rcx
0040934fmov [rax], rdx
00409352mov rax, [rbp-8]
00409356add rax, 16
0040935amov rdx, [rbp-8]
0040935eadd rdx, 16
00409362mov rdx, [rdx]
00409365mov rcx, [rbp-8]
00409369add rcx, 96
0040936dmov rcx, [rcx]
00409370shl rcx, 4
00409374add rdx, rcx
00409377mov [rax], rdx
0040937amov rax, [rbp-8]
0040937eadd rax, 16
00409382mov rdx, [rbp-8]
00409386add rdx, 16
0040938amov rdx, [rdx]
0040938dmov rcx, [rbp-8]
00409391add rcx, 96
00409395mov rcx, [rcx]
00409398add rcx, rcx
0040939badd rdx, rcx
0040939emov [rax], rdx
004093a1mov rax, [rbp-8]
004093a5add rax, 16
004093a9mov rdx, [rbp-8]
004093adadd rdx, 16
004093b1mov rcx, [rdx]
004093b4mov rdx, [rbp-8]
004093b8add rdx, 96
004093bcmov rdx, [rdx]
004093bfadd rdx, rcx
004093c2mov [rax], rdx
004093c5mov rax, [rbp-8]
004093c9add rax, 8
004093cdmov rdx, [rbp-8]
004093d1add rdx, 8
004093d5mov rdx, [rdx]
004093d8mov rcx, [rbp-8]
004093dcadd rcx, 88
004093e0mov rcx, [rcx]
004093e3shl rcx, 4
004093e7add rdx, rcx
004093eamov [rax], rdx
004093edmov rax, [rbp-8]
004093f1add rax, 8
004093f5mov rdx, [rbp-8]
004093f9add rdx, 8
004093fdmov rdx, [rdx]
00409400mov rcx, [rbp-8]
00409404add rcx, 88
00409408mov rcx, [rcx]
0040940badd rcx, rcx
0040940eadd rdx, rcx
00409411mov [rax], rdx
00409414mov rax, [rbp-8]
00409418add rax, 8
0040941cmov rdx, [rbp-8]
00409420add rdx, 8
00409424mov rcx, [rdx]
00409427mov rdx, [rbp-8]
0040942badd rdx, 88
0040942fmov rdx, [rdx]
00409432add rdx, rcx
00409435mov [rax], rdx
00409438mov rax, [rbp-8]
0040943cmov rax, [rax]
0040943fmov rdx, [rbp-8]
00409443add rdx, 80
00409447mov rdx, [rdx]
0040944ashl rdx, 4
0040944eadd rdx, rax
00409451mov rax, [rbp-8]
00409455mov [rax], rdx
00409458mov rax, [rbp-8]
0040945cmov rax, [rax]
0040945fmov rdx, [rbp-8]
00409463add rdx, 80
00409467mov rdx, [rdx]
0040946aadd rdx, rdx
0040946dadd rdx, rax
00409470mov rax, [rbp-8]
00409474mov [rax], rdx
00409477mov rax, [rbp-8]
0040947bmov rdx, [rax]
0040947emov rax, [rbp-8]
00409482add rax, 80
00409486mov rax, [rax]
00409489add rdx, rax
0040948cmov rax, [rbp-8]
00409490mov [rax], rdx
00409493pop rbp
00409494ret
00409086
00409086freduce_degree:
00409086push rbp
00409087mov rbp, rsp
0040908amov [rbp-8], rdi
0040908emov rax, [rbp-8]
00409092add rax, 64
00409096mov rdx, [rbp-8]
0040909aadd rdx, 64
0040909emov rdx, [rdx]
004090a1mov rcx, [rbp-8]
004090a5add rcx, 144
004090acmov rcx, [rcx]
004090afshl rcx, 4
004090b3add rdx, rcx
004090b6mov [rax], rdx
004090b9mov rax, [rbp-8]
004090bdadd rax, 64
004090c1mov rdx, [rbp-8]
004090c5add rdx, 64
004090c9mov rdx, [rdx]
004090ccmov rcx, [rbp-8]
004090d0add rcx, 144
004090d7mov rcx, [rcx]
004090daadd rcx, rcx
004090ddadd rdx, rcx
004090e0mov [rax], rdx
004090e3mov rax, [rbp-8]
004090e7add rax, 64
004090ebmov rdx, [rbp-8]
004090efadd rdx, 64
004090f3mov rcx, [rdx]
004090f6mov rdx, [rbp-8]
004090faadd rdx, 144
00409101mov rdx, [rdx]
00409104add rdx, rcx
00409107mov [rax], rdx
0040910amov rax, [rbp-8]
0040910eadd rax, 56
00409112mov rdx, [rbp-8]
00409116add rdx, 56
0040911amov rdx, [rdx]
0040911dmov rcx, [rbp-8]
00409121add rcx, 136
00409128mov rcx, [rcx]
0040912bshl rcx, 4
0040912fadd rdx, rcx
00409132mov [rax], rdx
00409135mov rax, [rbp-8]
00409139add rax, 56
0040913dmov rdx, [rbp-8]
00409141add rdx, 56
00409145mov rdx, [rdx]
00409148mov rcx, [rbp-8]
0040914cadd rcx, 136
00409153mov rcx, [rcx]
00409156add rcx, rcx
00409159add rdx, rcx
0040915cmov [rax], rdx
0040915fmov rax, [rbp-8]
00409163add rax, 56
00409167mov rdx, [rbp-8]
0040916badd rdx, 56
0040916fmov rcx, [rdx]
00409172mov rdx, [rbp-8]
00409176add rdx, 136
0040917dmov rdx, [rdx]
00409180add rdx, rcx
00409183mov [rax], rdx
00409186mov rax, [rbp-8]
0040918aadd rax, 48
0040918emov rdx, [rbp-8]
00409192add rdx, 48
00409196mov rdx, [rdx]
00409199mov rcx, [rbp-8]
0040919dsub rcx, -128
004091a1mov rcx, [rcx]
004091a4shl rcx, 4
004091a8add rdx, rcx
004091abmov [rax], rdx
004091aemov rax, [rbp-8]
004091b2add rax, 48
004091b6mov rdx, [rbp-8]
004091baadd rdx, 48
004091bemov rdx, [rdx]
004091c1mov rcx, [rbp-8]
004091c5sub rcx, -128
004091c9mov rcx, [rcx]
004091ccadd rcx, rcx
004091cfadd rdx, rcx
004091d2mov [rax], rdx
004091d5mov rax, [rbp-8]
004091d9add rax, 48
004091ddmov rdx, [rbp-8]
004091e1add rdx, 48
004091e5mov rcx, [rdx]
004091e8mov rdx, [rbp-8]
004091ecsub rdx, -128
004091f0mov rdx, [rdx]
004091f3add rdx, rcx
004091f6mov [rax], rdx
004091f9mov rax, [rbp-8]
004091fdadd rax, 40
00409201mov rdx, [rbp-8]
00409205add rdx, 40
00409209mov rdx, [rdx]
0040920cmov rcx, [rbp-8]
00409210add rcx, 120
00409214mov rcx, [rcx]
00409217shl rcx, 4
0040921badd rdx, rcx
0040921emov [rax], rdx
00409221mov rax, [rbp-8]
00409225add rax, 40
00409229mov rdx, [rbp-8]
0040922dadd rdx, 40
00409231mov rdx, [rdx]
00409234mov rcx, [rbp-8]
00409238add rcx, 120
0040923cmov rcx, [rcx]
0040923fadd rcx, rcx
00409242add rdx, rcx
00409245mov [rax], rdx
00409248mov rax, [rbp-8]
0040924cadd rax, 40
00409250mov rdx, [rbp-8]
00409254add rdx, 40
00409258mov rcx, [rdx]
0040925bmov rdx, [rbp-8]
0040925fadd rdx, 120
00409263mov rdx, [rdx]
00409266add rdx, rcx
00409269mov [rax], rdx
0040926cmov rax, [rbp-8]
00409270add rax, 32
00409274mov rdx, [rbp-8]
00409278add rdx, 32
0040927cmov rdx, [rdx]
0040927fmov rcx, [rbp-8]
00409283add rcx, 112
00409287mov rcx, [rcx]
0040928ashl rcx, 4
0040928eadd rdx, rcx
00409291mov [rax], rdx
00409294mov rax, [rbp-8]
00409298add rax, 32
0040929cmov rdx, [rbp-8]
004092a0add rdx, 32
004092a4mov rdx, [rdx]
004092a7mov rcx, [rbp-8]
004092abadd rcx, 112
004092afmov rcx, [rcx]
004092b2add rcx, rcx
004092b5add rdx, rcx
004092b8mov [rax], rdx
004092bbmov rax, [rbp-8]
004092bfadd rax, 32
004092c3mov rdx, [rbp-8]
004092c7add rdx, 32
004092cbmov rcx, [rdx]
004092cemov rdx, [rbp-8]
004092d2add rdx, 112
004092d6mov rdx, [rdx]
004092d9add rdx, rcx
004092dcmov [rax], rdx
004092dfmov rax, [rbp-8]
004092e3add rax, 24
004092e7mov rdx, [rbp-8]
004092ebadd rdx, 24
004092efmov rdx, [rdx]
004092f2mov rcx, [rbp-8]
004092f6add rcx, 104
004092famov rcx, [rcx]
004092fdshl rcx, 4
00409301add rdx, rcx
00409304mov [rax], rdx
00409307mov rax, [rbp-8]
0040930badd rax, 24
0040930fmov rdx, [rbp-8]
00409313add rdx, 24
00409317mov rdx, [rdx]
0040931amov rcx, [rbp-8]
0040931eadd rcx, 104
00409322mov rcx, [rcx]
00409325add rcx, rcx
00409328add rdx, rcx
0040932bmov [rax], rdx
0040932emov rax, [rbp-8]
00409332add rax, 24
00409336mov rdx, [rbp-8]
0040933aadd rdx, 24
0040933emov rcx, [rdx]
00409341mov rdx, [rbp-8]
00409345add rdx, 104
00409349mov rdx, [rdx]
0040934cadd rdx, rcx
0040934fmov [rax], rdx
00409352mov rax, [rbp-8]
00409356add rax, 16
0040935amov rdx, [rbp-8]
0040935eadd rdx, 16
00409362mov rdx, [rdx]
00409365mov rcx, [rbp-8]
00409369add rcx, 96
0040936dmov rcx, [rcx]
00409370shl rcx, 4
00409374add rdx, rcx
00409377mov [rax], rdx
0040937amov rax, [rbp-8]
0040937eadd rax, 16
00409382mov rdx, [rbp-8]
00409386add rdx, 16
0040938amov rdx, [rdx]
0040938dmov rcx, [rbp-8]
00409391add rcx, 96
00409395mov rcx, [rcx]
00409398add rcx, rcx
0040939badd rdx, rcx
0040939emov [rax], rdx
004093a1mov rax, [rbp-8]
004093a5add rax, 16
004093a9mov rdx, [rbp-8]
004093adadd rdx, 16
004093b1mov rcx, [rdx]
004093b4mov rdx, [rbp-8]
004093b8add rdx, 96
004093bcmov rdx, [rdx]
004093bfadd rdx, rcx
004093c2mov [rax], rdx
004093c5mov rax, [rbp-8]
004093c9add rax, 8
004093cdmov rdx, [rbp-8]
004093d1add rdx, 8
004093d5mov rdx, [rdx]
004093d8mov rcx, [rbp-8]
004093dcadd rcx, 88
004093e0mov rcx, [rcx]
004093e3shl rcx, 4
004093e7add rdx, rcx
004093eamov [rax], rdx
004093edmov rax, [rbp-8]
004093f1add rax, 8
004093f5mov rdx, [rbp-8]
004093f9add rdx, 8
004093fdmov rdx, [rdx]
00409400mov rcx, [rbp-8]
00409404add rcx, 88
00409408mov rcx, [rcx]
0040940badd rcx, rcx
0040940eadd rdx, rcx
00409411mov [rax], rdx
00409414mov rax, [rbp-8]
00409418add rax, 8
0040941cmov rdx, [rbp-8]
00409420add rdx, 8
00409424mov rcx, [rdx]
00409427mov rdx, [rbp-8]
0040942badd rdx, 88
0040942fmov rdx, [rdx]
00409432add rdx, rcx
00409435mov [rax], rdx
00409438mov rax, [rbp-8]
0040943cmov rax, [rax]
0040943fmov rdx, [rbp-8]
00409443add rdx, 80
00409447mov rdx, [rdx]
0040944ashl rdx, 4
0040944eadd rdx, rax
00409451mov rax, [rbp-8]
00409455mov [rax], rdx
00409458mov rax, [rbp-8]
0040945cmov rax, [rax]
0040945fmov rdx, [rbp-8]
00409463add rdx, 80
00409467mov rdx, [rdx]
0040946aadd rdx, rdx
0040946dadd rdx, rax
00409470mov rax, [rbp-8]
00409474mov [rax], rdx
00409477mov rax, [rbp-8]
0040947bmov rdx, [rax]
0040947emov rax, [rbp-8]
00409482add rax, 80
00409486mov rax, [rax]
00409489add rdx, rax
0040948cmov rax, [rbp-8]
00409490mov [rax], rdx
00409493pop rbp
00409494ret
00409086
00409495
00409495div_by_2_26:
00409495push rbp
00409496mov rbp, rsp
00409499mov [rbp-24], rdi
0040949dmov rax, [rbp-24]
004094a1shr rax, 32
004094a5mov [rbp-4], eax
004094a8mov eax, [rbp-4]
004094absar eax, 31
004094aemov [rbp-8], eax
004094b1mov eax, [rbp-8]
004094b4shr eax, 6
004094b7mov [rbp-12], eax
004094bamov eax, [rbp-12]
004094bdcdqe
004094bfadd rax, [rbp-24]
004094c3sar rax, 26
004094c7pop rbp
004094c8ret
00409495
00409495div_by_2_26:
00409495push rbp
00409496mov rbp, rsp
00409499mov [rbp-24], rdi
0040949dmov rax, [rbp-24]
004094a1shr rax, 32
004094a5mov [rbp-4], eax
004094a8mov eax, [rbp-4]
004094absar eax, 31
004094aemov [rbp-8], eax
004094b1mov eax, [rbp-8]
004094b4shr eax, 6
004094b7mov [rbp-12], eax
004094bamov eax, [rbp-12]
004094bdcdqe
004094bfadd rax, [rbp-24]
004094c3sar rax, 26
004094c7pop rbp
004094c8ret
00409495
004094c9
004094c9div_by_2_25:
004094c9push rbp
004094camov rbp, rsp
004094cdmov [rbp-24], rdi
004094d1mov rax, [rbp-24]
004094d5shr rax, 32
004094d9mov [rbp-4], eax
004094dcmov eax, [rbp-4]
004094dfsar eax, 31
004094e2mov [rbp-8], eax
004094e5mov eax, [rbp-8]
004094e8shr eax, 7
004094ebmov [rbp-12], eax
004094eemov eax, [rbp-12]
004094f1cdqe
004094f3add rax, [rbp-24]
004094f7sar rax, 25
004094fbpop rbp
004094fcret
004094c9
004094c9div_by_2_25:
004094c9push rbp
004094camov rbp, rsp
004094cdmov [rbp-24], rdi
004094d1mov rax, [rbp-24]
004094d5shr rax, 32
004094d9mov [rbp-4], eax
004094dcmov eax, [rbp-4]
004094dfsar eax, 31
004094e2mov [rbp-8], eax
004094e5mov eax, [rbp-8]
004094e8shr eax, 7
004094ebmov [rbp-12], eax
004094eemov eax, [rbp-12]
004094f1cdqe
004094f3add rax, [rbp-24]
004094f7sar rax, 25
004094fbpop rbp
004094fcret
004094c9
004094fd
004094fdfreduce_coefficients:
004094fdpush rbp
004094femov rbp, rsp
00409501sub rsp, 40
00409505mov [rbp-40], rdi
00409509mov rax, [rbp-40]
0040950dadd rax, 80
00409511mov [rax], 0
00409518mov [rbp-4], 0
0040951fjmp 0x40960d
00409524
00409524loc_409524:
00409524mov eax, [rbp-4]
00409527shl rax, 3
0040952badd rax, [rbp-40]
0040952fmov rax, [rax]
00409532mov rdi, rax
00409535call div_by_2_26
0040953amov [rbp-16], rax
0040953emov eax, [rbp-4]
00409541shl rax, 3
00409545add rax, [rbp-40]
00409549mov edx, [rbp-4]
0040954cshl rdx, 3
00409550add rdx, [rbp-40]
00409554mov rdx, [rdx]
00409557mov rcx, [rbp-16]
0040955bshl rcx, 26
0040955fsub rdx, rcx
00409562mov [rax], rdx
00409565mov eax, [rbp-4]
00409568add eax, 1
0040956bmov eax, eax
0040956dshl rax, 3
00409571add rax, [rbp-40]
00409575mov edx, [rbp-4]
00409578add edx, 1
0040957bmov edx, edx
0040957dshl rdx, 3
00409581add rdx, [rbp-40]
00409585mov rdx, [rdx]
00409588add rdx, [rbp-16]
0040958cmov [rax], rdx
0040958fmov eax, [rbp-4]
00409592add eax, 1
00409595mov eax, eax
00409597shl rax, 3
0040959badd rax, [rbp-40]
0040959fmov rax, [rax]
004095a2mov rdi, rax
004095a5call div_by_2_25
004095aamov [rbp-16], rax
004095aemov eax, [rbp-4]
004095b1add eax, 1
004095b4mov eax, eax
004095b6shl rax, 3
004095baadd rax, [rbp-40]
004095bemov edx, [rbp-4]
004095c1add edx, 1
004095c4mov edx, edx
004095c6shl rdx, 3
004095caadd rdx, [rbp-40]
004095cemov rdx, [rdx]
004095d1mov rcx, [rbp-16]
004095d5shl rcx, 25
004095d9sub rdx, rcx
004095dcmov [rax], rdx
004095dfmov eax, [rbp-4]
004095e2add eax, 2
004095e5mov eax, eax
004095e7shl rax, 3
004095ebadd rax, [rbp-40]
004095efmov edx, [rbp-4]
004095f2add edx, 2
004095f5mov edx, edx
004095f7shl rdx, 3
004095fbadd rdx, [rbp-40]
004095ffmov rdx, [rdx]
00409602add rdx, [rbp-16]
00409606mov [rax], rdx
00409609add [rbp-4], 2
0040960d
0040960dloc_40960d:
0040960dcmp [rbp-4], 9
00409611jbe 0x409524
00409617mov rax, [rbp-40]
0040961bmov rax, [rax]
0040961emov rdx, [rbp-40]
00409622add rdx, 80
00409626mov rdx, [rdx]
00409629shl rdx, 4
0040962dadd rdx, rax
00409630mov rax, [rbp-40]
00409634mov [rax], rdx
00409637mov rax, [rbp-40]
0040963bmov rax, [rax]
0040963emov rdx, [rbp-40]
00409642add rdx, 80
00409646mov rdx, [rdx]
00409649add rdx, rdx
0040964cadd rdx, rax
0040964fmov rax, [rbp-40]
00409653mov [rax], rdx
00409656mov rax, [rbp-40]
0040965amov rdx, [rax]
0040965dmov rax, [rbp-40]
00409661add rax, 80
00409665mov rax, [rax]
00409668add rdx, rax
0040966bmov rax, [rbp-40]
0040966fmov [rax], rdx
00409672mov rax, [rbp-40]
00409676add rax, 80
0040967amov [rax], 0
00409681mov rax, [rbp-40]
00409685mov rax, [rax]
00409688mov rdi, rax
0040968bcall div_by_2_26
00409690mov [rbp-24], rax
00409694mov rax, [rbp-40]
00409698mov rax, [rax]
0040969bmov rdx, [rbp-24]
0040969fshl rdx, 26
004096a3mov rcx, rax
004096a6sub rcx, rdx
004096a9mov rdx, rcx
004096acmov rax, [rbp-40]
004096b0mov [rax], rdx
004096b3mov rax, [rbp-40]
004096b7lea rdx, [rax+8]
004096bbmov rax, [rbp-40]
004096bfadd rax, 8
004096c3mov rax, [rax]
004096c6add rax, [rbp-24]
004096camov [rdx], rax
004096cdleave
004096ceret
004094fd
004094fdfreduce_coefficients:
004094fdpush rbp
004094femov rbp, rsp
00409501sub rsp, 40
00409505mov [rbp-40], rdi
00409509mov rax, [rbp-40]
0040950dadd rax, 80
00409511mov [rax], 0
00409518mov [rbp-4], 0
0040951fjmp 0x40960d
00409524
00409524loc_409524:
00409524mov eax, [rbp-4]
00409527shl rax, 3
0040952badd rax, [rbp-40]
0040952fmov rax, [rax]
00409532mov rdi, rax
00409535call div_by_2_26
0040953amov [rbp-16], rax
0040953emov eax, [rbp-4]
00409541shl rax, 3
00409545add rax, [rbp-40]
00409549mov edx, [rbp-4]
0040954cshl rdx, 3
00409550add rdx, [rbp-40]
00409554mov rdx, [rdx]
00409557mov rcx, [rbp-16]
0040955bshl rcx, 26
0040955fsub rdx, rcx
00409562mov [rax], rdx
00409565mov eax, [rbp-4]
00409568add eax, 1
0040956bmov eax, eax
0040956dshl rax, 3
00409571add rax, [rbp-40]
00409575mov edx, [rbp-4]
00409578add edx, 1
0040957bmov edx, edx
0040957dshl rdx, 3
00409581add rdx, [rbp-40]
00409585mov rdx, [rdx]
00409588add rdx, [rbp-16]
0040958cmov [rax], rdx
0040958fmov eax, [rbp-4]
00409592add eax, 1
00409595mov eax, eax
00409597shl rax, 3
0040959badd rax, [rbp-40]
0040959fmov rax, [rax]
004095a2mov rdi, rax
004095a5call div_by_2_25
004095aamov [rbp-16], rax
004095aemov eax, [rbp-4]
004095b1add eax, 1
004095b4mov eax, eax
004095b6shl rax, 3
004095baadd rax, [rbp-40]
004095bemov edx, [rbp-4]
004095c1add edx, 1
004095c4mov edx, edx
004095c6shl rdx, 3
004095caadd rdx, [rbp-40]
004095cemov rdx, [rdx]
004095d1mov rcx, [rbp-16]
004095d5shl rcx, 25
004095d9sub rdx, rcx
004095dcmov [rax], rdx
004095dfmov eax, [rbp-4]
004095e2add eax, 2
004095e5mov eax, eax
004095e7shl rax, 3
004095ebadd rax, [rbp-40]
004095efmov edx, [rbp-4]
004095f2add edx, 2
004095f5mov edx, edx
004095f7shl rdx, 3
004095fbadd rdx, [rbp-40]
004095ffmov rdx, [rdx]
00409602add rdx, [rbp-16]
00409606mov [rax], rdx
00409609add [rbp-4], 2
0040960d
0040960dloc_40960d:
0040960dcmp [rbp-4], 9
00409611jbe 0x409524
00409617mov rax, [rbp-40]
0040961bmov rax, [rax]
0040961emov rdx, [rbp-40]
00409622add rdx, 80
00409626mov rdx, [rdx]
00409629shl rdx, 4
0040962dadd rdx, rax
00409630mov rax, [rbp-40]
00409634mov [rax], rdx
00409637mov rax, [rbp-40]
0040963bmov rax, [rax]
0040963emov rdx, [rbp-40]
00409642add rdx, 80
00409646mov rdx, [rdx]
00409649add rdx, rdx
0040964cadd rdx, rax
0040964fmov rax, [rbp-40]
00409653mov [rax], rdx
00409656mov rax, [rbp-40]
0040965amov rdx, [rax]
0040965dmov rax, [rbp-40]
00409661add rax, 80
00409665mov rax, [rax]
00409668add rdx, rax
0040966bmov rax, [rbp-40]
0040966fmov [rax], rdx
00409672mov rax, [rbp-40]
00409676add rax, 80
0040967amov [rax], 0
00409681mov rax, [rbp-40]
00409685mov rax, [rax]
00409688mov rdi, rax
0040968bcall div_by_2_26
00409690mov [rbp-24], rax
00409694mov rax, [rbp-40]
00409698mov rax, [rax]
0040969bmov rdx, [rbp-24]
0040969fshl rdx, 26
004096a3mov rcx, rax
004096a6sub rcx, rdx
004096a9mov rdx, rcx
004096acmov rax, [rbp-40]
004096b0mov [rax], rdx
004096b3mov rax, [rbp-40]
004096b7lea rdx, [rax+8]
004096bbmov rax, [rbp-40]
004096bfadd rax, 8
004096c3mov rax, [rax]
004096c6add rax, [rbp-24]
004096camov [rdx], rax
004096cdleave
004096ceret
004094fd
004096cf
004096cffmul:
004096cfpush rbp
004096d0mov rbp, rsp
004096d3sub rsp, 184
004096damov [rbp-168], rdi
004096e1mov [rbp-176], rsi
004096e8mov [rbp-184], rdx
004096efmov rdx, [rbp-184]
004096f6mov rcx, [rbp-176]
004096fdlea rax, [rbp-160]
00409704mov rsi, rcx
00409707mov rdi, rax
0040970acall fproduct
0040970flea rax, [rbp-160]
00409716mov rdi, rax
00409719call freduce_degree
0040971elea rax, [rbp-160]
00409725mov rdi, rax
00409728call freduce_coefficients
0040972dlea rdx, [rbp-160]
00409734mov rax, [rbp-168]
0040973bmov rcx, [rdx]
0040973emov [rax], rcx
00409741mov rcx, [rdx+8]
00409745mov [rax+8], rcx
00409749mov rcx, [rdx+16]
0040974dmov [rax+16], rcx
00409751mov rcx, [rdx+24]
00409755mov [rax+24], rcx
00409759mov rcx, [rdx+32]
0040975dmov [rax+32], rcx
00409761mov rcx, [rdx+40]
00409765mov [rax+40], rcx
00409769mov rcx, [rdx+48]
0040976dmov [rax+48], rcx
00409771mov rcx, [rdx+56]
00409775mov [rax+56], rcx
00409779mov rcx, [rdx+64]
0040977dmov [rax+64], rcx
00409781mov rdx, [rdx+72]
00409785mov [rax+72], rdx
00409789leave
0040978aret
004096cf
004096cffmul:
004096cfpush rbp
004096d0mov rbp, rsp
004096d3sub rsp, 184
004096damov [rbp-168], rdi
004096e1mov [rbp-176], rsi
004096e8mov [rbp-184], rdx
004096efmov rdx, [rbp-184]
004096f6mov rcx, [rbp-176]
004096fdlea rax, [rbp-160]
00409704mov rsi, rcx
00409707mov rdi, rax
0040970acall fproduct
0040970flea rax, [rbp-160]
00409716mov rdi, rax
00409719call freduce_degree
0040971elea rax, [rbp-160]
00409725mov rdi, rax
00409728call freduce_coefficients
0040972dlea rdx, [rbp-160]
00409734mov rax, [rbp-168]
0040973bmov rcx, [rdx]
0040973emov [rax], rcx
00409741mov rcx, [rdx+8]
00409745mov [rax+8], rcx
00409749mov rcx, [rdx+16]
0040974dmov [rax+16], rcx
00409751mov rcx, [rdx+24]
00409755mov [rax+24], rcx
00409759mov rcx, [rdx+32]
0040975dmov [rax+32], rcx
00409761mov rcx, [rdx+40]
00409765mov [rax+40], rcx
00409769mov rcx, [rdx+48]
0040976dmov [rax+48], rcx
00409771mov rcx, [rdx+56]
00409775mov [rax+56], rcx
00409779mov rcx, [rdx+64]
0040977dmov [rax+64], rcx
00409781mov rdx, [rdx+72]
00409785mov [rax+72], rdx
00409789leave
0040978aret
004096cf
0040978b
0040978bfsquare_inner:
0040978bpush rbp
0040978cmov rbp, rsp
0040978fmov [rbp-8], rdi
00409793mov [rbp-16], rsi
00409797mov rax, [rbp-16]
0040979bmov rax, [rax]
0040979emovsxd rdx, eax
004097a1mov rax, [rbp-16]
004097a5mov rax, [rax]
004097a8cdqe
004097aaimul rdx, rax
004097aemov rax, [rbp-8]
004097b2mov [rax], rdx
004097b5mov rax, [rbp-8]
004097b9lea rdx, [rax+8]
004097bdmov rax, [rbp-16]
004097c1mov rax, [rax]
004097c4cdqe
004097c6lea rcx, [rax+rax]
004097camov rax, [rbp-16]
004097ceadd rax, 8
004097d2mov rax, [rax]
004097d5cdqe
004097d7imul rax, rcx
004097dbmov [rdx], rax
004097demov rax, [rbp-8]
004097e2lea rdx, [rax+16]
004097e6mov rax, [rbp-16]
004097eaadd rax, 8
004097eemov rax, [rax]
004097f1movsxd rcx, eax
004097f4mov rax, [rbp-16]
004097f8add rax, 8
004097fcmov rax, [rax]
004097ffcdqe
00409801imul rcx, rax
00409805mov rax, [rbp-16]
00409809mov rax, [rax]
0040980cmovsxd rsi, eax
0040980fmov rax, [rbp-16]
00409813add rax, 16
00409817mov rax, [rax]
0040981acdqe
0040981cimul rax, rsi
00409820add rax, rcx
00409823add rax, rax
00409826mov [rdx], rax
00409829mov rax, [rbp-8]
0040982dlea rdx, [rax+24]
00409831mov rax, [rbp-16]
00409835add rax, 8
00409839mov rax, [rax]
0040983cmovsxd rcx, eax
0040983fmov rax, [rbp-16]
00409843add rax, 16
00409847mov rax, [rax]
0040984acdqe
0040984cimul rcx, rax
00409850mov rax, [rbp-16]
00409854mov rax, [rax]
00409857movsxd rsi, eax
0040985amov rax, [rbp-16]
0040985eadd rax, 24
00409862mov rax, [rax]
00409865cdqe
00409867imul rax, rsi
0040986badd rax, rcx
0040986eadd rax, rax
00409871mov [rdx], rax
00409874mov rax, [rbp-8]
00409878lea rdx, [rax+32]
0040987cmov rax, [rbp-16]
00409880add rax, 16
00409884mov rax, [rax]
00409887movsxd rcx, eax
0040988amov rax, [rbp-16]
0040988eadd rax, 16
00409892mov rax, [rax]
00409895cdqe
00409897imul rcx, rax
0040989bmov rax, [rbp-16]
0040989fadd rax, 8
004098a3mov rax, [rax]
004098a6cdqe
004098a8lea rsi, [4*rax]
004098b0mov rax, [rbp-16]
004098b4add rax, 24
004098b8mov rax, [rax]
004098bbcdqe
004098bdimul rax, rsi
004098c1add rcx, rax
004098c4mov rax, [rbp-16]
004098c8mov rax, [rax]
004098cbcdqe
004098cdlea rsi, [rax+rax]
004098d1mov rax, [rbp-16]
004098d5add rax, 32
004098d9mov rax, [rax]
004098dccdqe
004098deimul rax, rsi
004098e2add rax, rcx
004098e5mov [rdx], rax
004098e8mov rax, [rbp-8]
004098eclea rdx, [rax+40]
004098f0mov rax, [rbp-16]
004098f4add rax, 16
004098f8mov rax, [rax]
004098fbmovsxd rcx, eax
004098femov rax, [rbp-16]
00409902add rax, 24
00409906mov rax, [rax]
00409909cdqe
0040990bimul rcx, rax
0040990fmov rax, [rbp-16]
00409913add rax, 8
00409917mov rax, [rax]
0040991amovsxd rsi, eax
0040991dmov rax, [rbp-16]
00409921add rax, 32
00409925mov rax, [rax]
00409928cdqe
0040992aimul rax, rsi
0040992elea rsi, [rcx+rax]
00409932mov rax, [rbp-16]
00409936mov rax, [rax]
00409939movsxd rcx, eax
0040993cmov rax, [rbp-16]
00409940add rax, 40
00409944mov rax, [rax]
00409947cdqe
00409949imul rax, rcx
0040994dadd rax, rsi
00409950add rax, rax
00409953mov [rdx], rax
00409956mov rax, [rbp-8]
0040995alea rdx, [rax+48]
0040995emov rax, [rbp-16]
00409962add rax, 24
00409966mov rax, [rax]
00409969movsxd rcx, eax
0040996cmov rax, [rbp-16]
00409970add rax, 24
00409974mov rax, [rax]
00409977cdqe
00409979imul rcx, rax
0040997dmov rax, [rbp-16]
00409981add rax, 16
00409985mov rax, [rax]
00409988movsxd rsi, eax
0040998bmov rax, [rbp-16]
0040998fadd rax, 32
00409993mov rax, [rax]
00409996cdqe
00409998imul rax, rsi
0040999clea rdi, [rcx+rax]
004099a0mov rax, [rbp-16]
004099a4add rax, 8
004099a8mov rax, [rax]
004099abcdqe
004099adlea rcx, [rax+rax]
004099b1mov rax, [rbp-16]
004099b5add rax, 40
004099b9mov rax, [rax]
004099bccdqe
004099beimul rcx, rax
004099c2mov rax, [rbp-16]
004099c6mov rax, [rax]
004099c9movsxd rsi, eax
004099ccmov rax, [rbp-16]
004099d0add rax, 48
004099d4mov rax, [rax]
004099d7cdqe
004099d9imul rax, rsi
004099ddadd rax, rcx
004099e0add rax, rdi
004099e3add rax, rax
004099e6mov [rdx], rax
004099e9mov rax, [rbp-8]
004099edlea rdx, [rax+56]
004099f1mov rax, [rbp-16]
004099f5add rax, 24
004099f9mov rax, [rax]
004099fcmovsxd rcx, eax
004099ffmov rax, [rbp-16]
00409a03add rax, 32
00409a07mov rax, [rax]
00409a0acdqe
00409a0cimul rcx, rax
00409a10mov rax, [rbp-16]
00409a14add rax, 16
00409a18mov rax, [rax]
00409a1bmovsxd rsi, eax
00409a1emov rax, [rbp-16]
00409a22add rax, 40
00409a26mov rax, [rax]
00409a29cdqe
00409a2bimul rax, rsi
00409a2flea rdi, [rcx+rax]
00409a33mov rax, [rbp-16]
00409a37mov rax, [rax]
00409a3amovsxd rcx, eax
00409a3dmov rax, [rbp-16]
00409a41add rax, 56
00409a45mov rax, [rax]
00409a48cdqe
00409a4aimul rcx, rax
00409a4emov rax, [rbp-16]
00409a52add rax, 8
00409a56mov rax, [rax]
00409a59movsxd rsi, eax
00409a5cmov rax, [rbp-16]
00409a60add rax, 48
00409a64mov rax, [rax]
00409a67cdqe
00409a69imul rax, rsi
00409a6dadd rax, rcx
00409a70add rax, rdi
00409a73add rax, rax
00409a76mov [rdx], rax
00409a79mov rax, [rbp-8]
00409a7dlea rdx, [rax+64]
00409a81mov rax, [rbp-16]
00409a85add rax, 32
00409a89mov rax, [rax]
00409a8cmovsxd rcx, eax
00409a8fmov rax, [rbp-16]
00409a93add rax, 32
00409a97mov rax, [rax]
00409a9acdqe
00409a9cimul rcx, rax
00409aa0mov rax, [rbp-16]
00409aa4add rax, 16
00409aa8mov rax, [rax]
00409aabmovsxd rsi, eax
00409aaemov rax, [rbp-16]
00409ab2add rax, 48
00409ab6mov rax, [rax]
00409ab9cdqe
00409abbimul rsi, rax
00409abfmov rax, [rbp-16]
00409ac3mov rax, [rax]
00409ac6movsxd rdi, eax
00409ac9mov rax, [rbp-16]
00409acdadd rax, 64
00409ad1mov rax, [rax]
00409ad4cdqe
00409ad6imul rax, rdi
00409adalea r8, [rsi+rax]
00409ademov rax, [rbp-16]
00409ae2add rax, 8
00409ae6mov rax, [rax]
00409ae9movsxd rsi, eax
00409aecmov rax, [rbp-16]
00409af0add rax, 56
00409af4mov rax, [rax]
00409af7cdqe
00409af9imul rsi, rax
00409afdmov rax, [rbp-16]
00409b01add rax, 24
00409b05mov rax, [rax]
00409b08movsxd rdi, eax
00409b0bmov rax, [rbp-16]
00409b0fadd rax, 40
00409b13mov rax, [rax]
00409b16cdqe
00409b18imul rax, rdi
00409b1cadd rax, rsi
00409b1fadd rax, rax
00409b22add rax, r8
00409b25add rax, rax
00409b28add rax, rcx
00409b2bmov [rdx], rax
00409b2emov rax, [rbp-8]
00409b32lea rdx, [rax+72]
00409b36mov rax, [rbp-16]
00409b3aadd rax, 32
00409b3emov rax, [rax]
00409b41movsxd rcx, eax
00409b44mov rax, [rbp-16]
00409b48add rax, 40
00409b4cmov rax, [rax]
00409b4fcdqe
00409b51imul rcx, rax
00409b55mov rax, [rbp-16]
00409b59add rax, 24
00409b5dmov rax, [rax]
00409b60movsxd rsi, eax
00409b63mov rax, [rbp-16]
00409b67add rax, 48
00409b6bmov rax, [rax]
00409b6ecdqe
00409b70imul rax, rsi
00409b74lea rdi, [rcx+rax]
00409b78mov rax, [rbp-16]
00409b7cadd rax, 8
00409b80mov rax, [rax]
00409b83movsxd rcx, eax
00409b86mov rax, [rbp-16]
00409b8aadd rax, 64
00409b8emov rax, [rax]
00409b91cdqe
00409b93imul rcx, rax
00409b97mov rax, [rbp-16]
00409b9badd rax, 16
00409b9fmov rax, [rax]
00409ba2movsxd rsi, eax
00409ba5mov rax, [rbp-16]
00409ba9add rax, 56
00409badmov rax, [rax]
00409bb0cdqe
00409bb2imul rax, rsi
00409bb6add rax, rcx
00409bb9lea rsi, [rdi+rax]
00409bbdmov rax, [rbp-16]
00409bc1mov rax, [rax]
00409bc4movsxd rcx, eax
00409bc7mov rax, [rbp-16]
00409bcbadd rax, 72
00409bcfmov rax, [rax]
00409bd2cdqe
00409bd4imul rax, rcx
00409bd8add rax, rsi
00409bdbadd rax, rax
00409bdemov [rdx], rax
00409be1mov rax, [rbp-8]
00409be5add rax, 80
00409be9mov rdx, [rbp-16]
00409bedadd rdx, 40
00409bf1mov rdx, [rdx]
00409bf4movsxd rcx, edx
00409bf7mov rdx, [rbp-16]
00409bfbadd rdx, 40
00409bffmov rdx, [rdx]
00409c02movsxd rdx, edx
00409c05imul rcx, rdx
00409c09mov rdx, [rbp-16]
00409c0dadd rdx, 32
00409c11mov rdx, [rdx]
00409c14movsxd rsi, edx
00409c17mov rdx, [rbp-16]
00409c1badd rdx, 48
00409c1fmov rdx, [rdx]
00409c22movsxd rdx, edx
00409c25imul rdx, rsi
00409c29lea rdi, [rcx+rdx]
00409c2dmov rdx, [rbp-16]
00409c31add rdx, 24
00409c35mov rdx, [rdx]
00409c38movsxd rcx, edx
00409c3bmov rdx, [rbp-16]
00409c3fadd rdx, 56
00409c43mov rdx, [rdx]
00409c46movsxd rdx, edx
00409c49imul rcx, rdx
00409c4dmov rdx, [rbp-16]
00409c51add rdx, 8
00409c55mov rdx, [rdx]
00409c58movsxd rsi, edx
00409c5bmov rdx, [rbp-16]
00409c5fadd rdx, 72
00409c63mov rdx, [rdx]
00409c66movsxd rdx, edx
00409c69imul rdx, rsi
00409c6dadd rdx, rcx
00409c70lea rsi, [rdx+rdx]
00409c74mov rdx, [rbp-16]
00409c78add rdx, 16
00409c7cmov rdx, [rdx]
00409c7fmovsxd rcx, edx
00409c82mov rdx, [rbp-16]
00409c86add rdx, 64
00409c8amov rdx, [rdx]
00409c8dmovsxd rdx, edx
00409c90imul rdx, rcx
00409c94add rdx, rsi
00409c97add rdx, rdi
00409c9aadd rdx, rdx
00409c9dmov [rax], rdx
00409ca0mov rax, [rbp-8]
00409ca4add rax, 88
00409ca8mov rdx, [rbp-16]
00409cacadd rdx, 40
00409cb0mov rdx, [rdx]
00409cb3movsxd rcx, edx
00409cb6mov rdx, [rbp-16]
00409cbaadd rdx, 48
00409cbemov rdx, [rdx]
00409cc1movsxd rdx, edx
00409cc4imul rcx, rdx
00409cc8mov rdx, [rbp-16]
00409cccadd rdx, 32
00409cd0mov rdx, [rdx]
00409cd3movsxd rsi, edx
00409cd6mov rdx, [rbp-16]
00409cdaadd rdx, 56
00409cdemov rdx, [rdx]
00409ce1movsxd rdx, edx
00409ce4imul rdx, rsi
00409ce8lea rdi, [rcx+rdx]
00409cecmov rdx, [rbp-16]
00409cf0add rdx, 16
00409cf4mov rdx, [rdx]
00409cf7movsxd rcx, edx
00409cfamov rdx, [rbp-16]
00409cfeadd rdx, 72
00409d02mov rdx, [rdx]
00409d05movsxd rdx, edx
00409d08imul rcx, rdx
00409d0cmov rdx, [rbp-16]
00409d10add rdx, 24
00409d14mov rdx, [rdx]
00409d17movsxd rsi, edx
00409d1amov rdx, [rbp-16]
00409d1eadd rdx, 64
00409d22mov rdx, [rdx]
00409d25movsxd rdx, edx
00409d28imul rdx, rsi
00409d2cadd rdx, rcx
00409d2fadd rdx, rdi
00409d32add rdx, rdx
00409d35mov [rax], rdx
00409d38mov rax, [rbp-8]
00409d3cadd rax, 96
00409d40mov rdx, [rbp-16]
00409d44add rdx, 48
00409d48mov rdx, [rdx]
00409d4bmovsxd rcx, edx
00409d4emov rdx, [rbp-16]
00409d52add rdx, 48
00409d56mov rdx, [rdx]
00409d59movsxd rdx, edx
00409d5cimul rdx, rcx
00409d60mov rcx, [rbp-16]
00409d64add rcx, 32
00409d68mov rcx, [rcx]
00409d6bmovsxd rsi, ecx
00409d6emov rcx, [rbp-16]
00409d72add rcx, 64
00409d76mov rcx, [rcx]
00409d79movsxd rcx, ecx
00409d7cimul rcx, rsi
00409d80mov rsi, [rbp-16]
00409d84add rsi, 40
00409d88mov rsi, [rsi]
00409d8bmovsxd rdi, esi
00409d8emov rsi, [rbp-16]
00409d92add rsi, 56
00409d96mov rsi, [rsi]
00409d99movsxd rsi, esi
00409d9cimul rdi, rsi
00409da0mov rsi, [rbp-16]
00409da4add rsi, 24
00409da8mov rsi, [rsi]
00409dabmovsxd r8, esi
00409daemov rsi, [rbp-16]
00409db2add rsi, 72
00409db6mov rsi, [rsi]
00409db9movsxd rsi, esi
00409dbcimul rsi, r8
00409dc0add rsi, rdi
00409dc3add rsi, rsi
00409dc6add rcx, rsi
00409dc9add rcx, rcx
00409dccadd rdx, rcx
00409dcfmov [rax], rdx
00409dd2mov rax, [rbp-8]
00409dd6add rax, 104
00409ddamov rdx, [rbp-16]
00409ddeadd rdx, 48
00409de2mov rdx, [rdx]
00409de5movsxd rcx, edx
00409de8mov rdx, [rbp-16]
00409decadd rdx, 56
00409df0mov rdx, [rdx]
00409df3movsxd rdx, edx
00409df6imul rcx, rdx
00409dfamov rdx, [rbp-16]
00409dfeadd rdx, 40
00409e02mov rdx, [rdx]
00409e05movsxd rsi, edx
00409e08mov rdx, [rbp-16]
00409e0cadd rdx, 64
00409e10mov rdx, [rdx]
00409e13movsxd rdx, edx
00409e16imul rdx, rsi
00409e1alea rsi, [rcx+rdx]
00409e1emov rdx, [rbp-16]
00409e22add rdx, 32
00409e26mov rdx, [rdx]
00409e29movsxd rcx, edx
00409e2cmov rdx, [rbp-16]
00409e30add rdx, 72
00409e34mov rdx, [rdx]
00409e37movsxd rdx, edx
00409e3aimul rdx, rcx
00409e3eadd rdx, rsi
00409e41add rdx, rdx
00409e44mov [rax], rdx
00409e47mov rax, [rbp-8]
00409e4badd rax, 112
00409e4fmov rdx, [rbp-16]
00409e53add rdx, 56
00409e57mov rdx, [rdx]
00409e5amovsxd rcx, edx
00409e5dmov rdx, [rbp-16]
00409e61add rdx, 56
00409e65mov rdx, [rdx]
00409e68movsxd rdx, edx
00409e6bimul rcx, rdx
00409e6fmov rdx, [rbp-16]
00409e73add rdx, 48
00409e77mov rdx, [rdx]
00409e7amovsxd rsi, edx
00409e7dmov rdx, [rbp-16]
00409e81add rdx, 64
00409e85mov rdx, [rdx]
00409e88movsxd rdx, edx
00409e8bimul rdx, rsi
00409e8fadd rcx, rdx
00409e92mov rdx, [rbp-16]
00409e96add rdx, 40
00409e9amov rdx, [rdx]
00409e9dmovsxd rdx, edx
00409ea0lea rsi, [rdx+rdx]
00409ea4mov rdx, [rbp-16]
00409ea8add rdx, 72
00409eacmov rdx, [rdx]
00409eafmovsxd rdx, edx
00409eb2imul rdx, rsi
00409eb6add rdx, rcx
00409eb9add rdx, rdx
00409ebcmov [rax], rdx
00409ebfmov rax, [rbp-8]
00409ec3add rax, 120
00409ec7mov rdx, [rbp-16]
00409ecbadd rdx, 56
00409ecfmov rdx, [rdx]
00409ed2movsxd rcx, edx
00409ed5mov rdx, [rbp-16]
00409ed9add rdx, 64
00409eddmov rdx, [rdx]
00409ee0movsxd rdx, edx
00409ee3imul rcx, rdx
00409ee7mov rdx, [rbp-16]
00409eebadd rdx, 48
00409eefmov rdx, [rdx]
00409ef2movsxd rsi, edx
00409ef5mov rdx, [rbp-16]
00409ef9add rdx, 72
00409efdmov rdx, [rdx]
00409f00movsxd rdx, edx
00409f03imul rdx, rsi
00409f07add rdx, rcx
00409f0aadd rdx, rdx
00409f0dmov [rax], rdx
00409f10mov rax, [rbp-8]
00409f14sub rax, -128
00409f18mov rdx, [rbp-16]
00409f1cadd rdx, 64
00409f20mov rdx, [rdx]
00409f23movsxd rcx, edx
00409f26mov rdx, [rbp-16]
00409f2aadd rdx, 64
00409f2emov rdx, [rdx]
00409f31movsxd rdx, edx
00409f34imul rcx, rdx
00409f38mov rdx, [rbp-16]
00409f3cadd rdx, 56
00409f40mov rdx, [rdx]
00409f43movsxd rdx, edx
00409f46lea rsi, [4*rdx]
00409f4emov rdx, [rbp-16]
00409f52add rdx, 72
00409f56mov rdx, [rdx]
00409f59movsxd rdx, edx
00409f5cimul rdx, rsi
00409f60add rdx, rcx
00409f63mov [rax], rdx
00409f66mov rax, [rbp-8]
00409f6alea rdx, [rax+136]
00409f71mov rax, [rbp-16]
00409f75add rax, 64
00409f79mov rax, [rax]
00409f7ccdqe
00409f7elea rcx, [rax+rax]
00409f82mov rax, [rbp-16]
00409f86add rax, 72
00409f8amov rax, [rax]
00409f8dcdqe
00409f8fimul rax, rcx
00409f93mov [rdx], rax
00409f96mov rax, [rbp-8]
00409f9aadd rax, 144
00409fa0mov rdx, [rbp-16]
00409fa4add rdx, 72
00409fa8mov rdx, [rdx]
00409fabmovsxd rcx, edx
00409faemov rdx, [rbp-16]
00409fb2add rdx, 72
00409fb6mov rdx, [rdx]
00409fb9movsxd rdx, edx
00409fbcimul rdx, rcx
00409fc0add rdx, rdx
00409fc3mov [rax], rdx
00409fc6pop rbp
00409fc7ret
0040978b
0040978bfsquare_inner:
0040978bpush rbp
0040978cmov rbp, rsp
0040978fmov [rbp-8], rdi
00409793mov [rbp-16], rsi
00409797mov rax, [rbp-16]
0040979bmov rax, [rax]
0040979emovsxd rdx, eax
004097a1mov rax, [rbp-16]
004097a5mov rax, [rax]
004097a8cdqe
004097aaimul rdx, rax
004097aemov rax, [rbp-8]
004097b2mov [rax], rdx
004097b5mov rax, [rbp-8]
004097b9lea rdx, [rax+8]
004097bdmov rax, [rbp-16]
004097c1mov rax, [rax]
004097c4cdqe
004097c6lea rcx, [rax+rax]
004097camov rax, [rbp-16]
004097ceadd rax, 8
004097d2mov rax, [rax]
004097d5cdqe
004097d7imul rax, rcx
004097dbmov [rdx], rax
004097demov rax, [rbp-8]
004097e2lea rdx, [rax+16]
004097e6mov rax, [rbp-16]
004097eaadd rax, 8
004097eemov rax, [rax]
004097f1movsxd rcx, eax
004097f4mov rax, [rbp-16]
004097f8add rax, 8
004097fcmov rax, [rax]
004097ffcdqe
00409801imul rcx, rax
00409805mov rax, [rbp-16]
00409809mov rax, [rax]
0040980cmovsxd rsi, eax
0040980fmov rax, [rbp-16]
00409813add rax, 16
00409817mov rax, [rax]
0040981acdqe
0040981cimul rax, rsi
00409820add rax, rcx
00409823add rax, rax
00409826mov [rdx], rax
00409829mov rax, [rbp-8]
0040982dlea rdx, [rax+24]
00409831mov rax, [rbp-16]
00409835add rax, 8
00409839mov rax, [rax]
0040983cmovsxd rcx, eax
0040983fmov rax, [rbp-16]
00409843add rax, 16
00409847mov rax, [rax]
0040984acdqe
0040984cimul rcx, rax
00409850mov rax, [rbp-16]
00409854mov rax, [rax]
00409857movsxd rsi, eax
0040985amov rax, [rbp-16]
0040985eadd rax, 24
00409862mov rax, [rax]
00409865cdqe
00409867imul rax, rsi
0040986badd rax, rcx
0040986eadd rax, rax
00409871mov [rdx], rax
00409874mov rax, [rbp-8]
00409878lea rdx, [rax+32]
0040987cmov rax, [rbp-16]
00409880add rax, 16
00409884mov rax, [rax]
00409887movsxd rcx, eax
0040988amov rax, [rbp-16]
0040988eadd rax, 16
00409892mov rax, [rax]
00409895cdqe
00409897imul rcx, rax
0040989bmov rax, [rbp-16]
0040989fadd rax, 8
004098a3mov rax, [rax]
004098a6cdqe
004098a8lea rsi, [4*rax]
004098b0mov rax, [rbp-16]
004098b4add rax, 24
004098b8mov rax, [rax]
004098bbcdqe
004098bdimul rax, rsi
004098c1add rcx, rax
004098c4mov rax, [rbp-16]
004098c8mov rax, [rax]
004098cbcdqe
004098cdlea rsi, [rax+rax]
004098d1mov rax, [rbp-16]
004098d5add rax, 32
004098d9mov rax, [rax]
004098dccdqe
004098deimul rax, rsi
004098e2add rax, rcx
004098e5mov [rdx], rax
004098e8mov rax, [rbp-8]
004098eclea rdx, [rax+40]
004098f0mov rax, [rbp-16]
004098f4add rax, 16
004098f8mov rax, [rax]
004098fbmovsxd rcx, eax
004098femov rax, [rbp-16]
00409902add rax, 24
00409906mov rax, [rax]
00409909cdqe
0040990bimul rcx, rax
0040990fmov rax, [rbp-16]
00409913add rax, 8
00409917mov rax, [rax]
0040991amovsxd rsi, eax
0040991dmov rax, [rbp-16]
00409921add rax, 32
00409925mov rax, [rax]
00409928cdqe
0040992aimul rax, rsi
0040992elea rsi, [rcx+rax]
00409932mov rax, [rbp-16]
00409936mov rax, [rax]
00409939movsxd rcx, eax
0040993cmov rax, [rbp-16]
00409940add rax, 40
00409944mov rax, [rax]
00409947cdqe
00409949imul rax, rcx
0040994dadd rax, rsi
00409950add rax, rax
00409953mov [rdx], rax
00409956mov rax, [rbp-8]
0040995alea rdx, [rax+48]
0040995emov rax, [rbp-16]
00409962add rax, 24
00409966mov rax, [rax]
00409969movsxd rcx, eax
0040996cmov rax, [rbp-16]
00409970add rax, 24
00409974mov rax, [rax]
00409977cdqe
00409979imul rcx, rax
0040997dmov rax, [rbp-16]
00409981add rax, 16
00409985mov rax, [rax]
00409988movsxd rsi, eax
0040998bmov rax, [rbp-16]
0040998fadd rax, 32
00409993mov rax, [rax]
00409996cdqe
00409998imul rax, rsi
0040999clea rdi, [rcx+rax]
004099a0mov rax, [rbp-16]
004099a4add rax, 8
004099a8mov rax, [rax]
004099abcdqe
004099adlea rcx, [rax+rax]
004099b1mov rax, [rbp-16]
004099b5add rax, 40
004099b9mov rax, [rax]
004099bccdqe
004099beimul rcx, rax
004099c2mov rax, [rbp-16]
004099c6mov rax, [rax]
004099c9movsxd rsi, eax
004099ccmov rax, [rbp-16]
004099d0add rax, 48
004099d4mov rax, [rax]
004099d7cdqe
004099d9imul rax, rsi
004099ddadd rax, rcx
004099e0add rax, rdi
004099e3add rax, rax
004099e6mov [rdx], rax
004099e9mov rax, [rbp-8]
004099edlea rdx, [rax+56]
004099f1mov rax, [rbp-16]
004099f5add rax, 24
004099f9mov rax, [rax]
004099fcmovsxd rcx, eax
004099ffmov rax, [rbp-16]
00409a03add rax, 32
00409a07mov rax, [rax]
00409a0acdqe
00409a0cimul rcx, rax
00409a10mov rax, [rbp-16]
00409a14add rax, 16
00409a18mov rax, [rax]
00409a1bmovsxd rsi, eax
00409a1emov rax, [rbp-16]
00409a22add rax, 40
00409a26mov rax, [rax]
00409a29cdqe
00409a2bimul rax, rsi
00409a2flea rdi, [rcx+rax]
00409a33mov rax, [rbp-16]
00409a37mov rax, [rax]
00409a3amovsxd rcx, eax
00409a3dmov rax, [rbp-16]
00409a41add rax, 56
00409a45mov rax, [rax]
00409a48cdqe
00409a4aimul rcx, rax
00409a4emov rax, [rbp-16]
00409a52add rax, 8
00409a56mov rax, [rax]
00409a59movsxd rsi, eax
00409a5cmov rax, [rbp-16]
00409a60add rax, 48
00409a64mov rax, [rax]
00409a67cdqe
00409a69imul rax, rsi
00409a6dadd rax, rcx
00409a70add rax, rdi
00409a73add rax, rax
00409a76mov [rdx], rax
00409a79mov rax, [rbp-8]
00409a7dlea rdx, [rax+64]
00409a81mov rax, [rbp-16]
00409a85add rax, 32
00409a89mov rax, [rax]
00409a8cmovsxd rcx, eax
00409a8fmov rax, [rbp-16]
00409a93add rax, 32
00409a97mov rax, [rax]
00409a9acdqe
00409a9cimul rcx, rax
00409aa0mov rax, [rbp-16]
00409aa4add rax, 16
00409aa8mov rax, [rax]
00409aabmovsxd rsi, eax
00409aaemov rax, [rbp-16]
00409ab2add rax, 48
00409ab6mov rax, [rax]
00409ab9cdqe
00409abbimul rsi, rax
00409abfmov rax, [rbp-16]
00409ac3mov rax, [rax]
00409ac6movsxd rdi, eax
00409ac9mov rax, [rbp-16]
00409acdadd rax, 64
00409ad1mov rax, [rax]
00409ad4cdqe
00409ad6imul rax, rdi
00409adalea r8, [rsi+rax]
00409ademov rax, [rbp-16]
00409ae2add rax, 8
00409ae6mov rax, [rax]
00409ae9movsxd rsi, eax
00409aecmov rax, [rbp-16]
00409af0add rax, 56
00409af4mov rax, [rax]
00409af7cdqe
00409af9imul rsi, rax
00409afdmov rax, [rbp-16]
00409b01add rax, 24
00409b05mov rax, [rax]
00409b08movsxd rdi, eax
00409b0bmov rax, [rbp-16]
00409b0fadd rax, 40
00409b13mov rax, [rax]
00409b16cdqe
00409b18imul rax, rdi
00409b1cadd rax, rsi
00409b1fadd rax, rax
00409b22add rax, r8
00409b25add rax, rax
00409b28add rax, rcx
00409b2bmov [rdx], rax
00409b2emov rax, [rbp-8]
00409b32lea rdx, [rax+72]
00409b36mov rax, [rbp-16]
00409b3aadd rax, 32
00409b3emov rax, [rax]
00409b41movsxd rcx, eax
00409b44mov rax, [rbp-16]
00409b48add rax, 40
00409b4cmov rax, [rax]
00409b4fcdqe
00409b51imul rcx, rax
00409b55mov rax, [rbp-16]
00409b59add rax, 24
00409b5dmov rax, [rax]
00409b60movsxd rsi, eax
00409b63mov rax, [rbp-16]
00409b67add rax, 48
00409b6bmov rax, [rax]
00409b6ecdqe
00409b70imul rax, rsi
00409b74lea rdi, [rcx+rax]
00409b78mov rax, [rbp-16]
00409b7cadd rax, 8
00409b80mov rax, [rax]
00409b83movsxd rcx, eax
00409b86mov rax, [rbp-16]
00409b8aadd rax, 64
00409b8emov rax, [rax]
00409b91cdqe
00409b93imul rcx, rax
00409b97mov rax, [rbp-16]
00409b9badd rax, 16
00409b9fmov rax, [rax]
00409ba2movsxd rsi, eax
00409ba5mov rax, [rbp-16]
00409ba9add rax, 56
00409badmov rax, [rax]
00409bb0cdqe
00409bb2imul rax, rsi
00409bb6add rax, rcx
00409bb9lea rsi, [rdi+rax]
00409bbdmov rax, [rbp-16]
00409bc1mov rax, [rax]
00409bc4movsxd rcx, eax
00409bc7mov rax, [rbp-16]
00409bcbadd rax, 72
00409bcfmov rax, [rax]
00409bd2cdqe
00409bd4imul rax, rcx
00409bd8add rax, rsi
00409bdbadd rax, rax
00409bdemov [rdx], rax
00409be1mov rax, [rbp-8]
00409be5add rax, 80
00409be9mov rdx, [rbp-16]
00409bedadd rdx, 40
00409bf1mov rdx, [rdx]
00409bf4movsxd rcx, edx
00409bf7mov rdx, [rbp-16]
00409bfbadd rdx, 40
00409bffmov rdx, [rdx]
00409c02movsxd rdx, edx
00409c05imul rcx, rdx
00409c09mov rdx, [rbp-16]
00409c0dadd rdx, 32
00409c11mov rdx, [rdx]
00409c14movsxd rsi, edx
00409c17mov rdx, [rbp-16]
00409c1badd rdx, 48
00409c1fmov rdx, [rdx]
00409c22movsxd rdx, edx
00409c25imul rdx, rsi
00409c29lea rdi, [rcx+rdx]
00409c2dmov rdx, [rbp-16]
00409c31add rdx, 24
00409c35mov rdx, [rdx]
00409c38movsxd rcx, edx
00409c3bmov rdx, [rbp-16]
00409c3fadd rdx, 56
00409c43mov rdx, [rdx]
00409c46movsxd rdx, edx
00409c49imul rcx, rdx
00409c4dmov rdx, [rbp-16]
00409c51add rdx, 8
00409c55mov rdx, [rdx]
00409c58movsxd rsi, edx
00409c5bmov rdx, [rbp-16]
00409c5fadd rdx, 72
00409c63mov rdx, [rdx]
00409c66movsxd rdx, edx
00409c69imul rdx, rsi
00409c6dadd rdx, rcx
00409c70lea rsi, [rdx+rdx]
00409c74mov rdx, [rbp-16]
00409c78add rdx, 16
00409c7cmov rdx, [rdx]
00409c7fmovsxd rcx, edx
00409c82mov rdx, [rbp-16]
00409c86add rdx, 64
00409c8amov rdx, [rdx]
00409c8dmovsxd rdx, edx
00409c90imul rdx, rcx
00409c94add rdx, rsi
00409c97add rdx, rdi
00409c9aadd rdx, rdx
00409c9dmov [rax], rdx
00409ca0mov rax, [rbp-8]
00409ca4add rax, 88
00409ca8mov rdx, [rbp-16]
00409cacadd rdx, 40
00409cb0mov rdx, [rdx]
00409cb3movsxd rcx, edx
00409cb6mov rdx, [rbp-16]
00409cbaadd rdx, 48
00409cbemov rdx, [rdx]
00409cc1movsxd rdx, edx
00409cc4imul rcx, rdx
00409cc8mov rdx, [rbp-16]
00409cccadd rdx, 32
00409cd0mov rdx, [rdx]
00409cd3movsxd rsi, edx
00409cd6mov rdx, [rbp-16]
00409cdaadd rdx, 56
00409cdemov rdx, [rdx]
00409ce1movsxd rdx, edx
00409ce4imul rdx, rsi
00409ce8lea rdi, [rcx+rdx]
00409cecmov rdx, [rbp-16]
00409cf0add rdx, 16
00409cf4mov rdx, [rdx]
00409cf7movsxd rcx, edx
00409cfamov rdx, [rbp-16]
00409cfeadd rdx, 72
00409d02mov rdx, [rdx]
00409d05movsxd rdx, edx
00409d08imul rcx, rdx
00409d0cmov rdx, [rbp-16]
00409d10add rdx, 24
00409d14mov rdx, [rdx]
00409d17movsxd rsi, edx
00409d1amov rdx, [rbp-16]
00409d1eadd rdx, 64
00409d22mov rdx, [rdx]
00409d25movsxd rdx, edx
00409d28imul rdx, rsi
00409d2cadd rdx, rcx
00409d2fadd rdx, rdi
00409d32add rdx, rdx
00409d35mov [rax], rdx
00409d38mov rax, [rbp-8]
00409d3cadd rax, 96
00409d40mov rdx, [rbp-16]
00409d44add rdx, 48
00409d48mov rdx, [rdx]
00409d4bmovsxd rcx, edx
00409d4emov rdx, [rbp-16]
00409d52add rdx, 48
00409d56mov rdx, [rdx]
00409d59movsxd rdx, edx
00409d5cimul rdx, rcx
00409d60mov rcx, [rbp-16]
00409d64add rcx, 32
00409d68mov rcx, [rcx]
00409d6bmovsxd rsi, ecx
00409d6emov rcx, [rbp-16]
00409d72add rcx, 64
00409d76mov rcx, [rcx]
00409d79movsxd rcx, ecx
00409d7cimul rcx, rsi
00409d80mov rsi, [rbp-16]
00409d84add rsi, 40
00409d88mov rsi, [rsi]
00409d8bmovsxd rdi, esi
00409d8emov rsi, [rbp-16]
00409d92add rsi, 56
00409d96mov rsi, [rsi]
00409d99movsxd rsi, esi
00409d9cimul rdi, rsi
00409da0mov rsi, [rbp-16]
00409da4add rsi, 24
00409da8mov rsi, [rsi]
00409dabmovsxd r8, esi
00409daemov rsi, [rbp-16]
00409db2add rsi, 72
00409db6mov rsi, [rsi]
00409db9movsxd rsi, esi
00409dbcimul rsi, r8
00409dc0add rsi, rdi
00409dc3add rsi, rsi
00409dc6add rcx, rsi
00409dc9add rcx, rcx
00409dccadd rdx, rcx
00409dcfmov [rax], rdx
00409dd2mov rax, [rbp-8]
00409dd6add rax, 104
00409ddamov rdx, [rbp-16]
00409ddeadd rdx, 48
00409de2mov rdx, [rdx]
00409de5movsxd rcx, edx
00409de8mov rdx, [rbp-16]
00409decadd rdx, 56
00409df0mov rdx, [rdx]
00409df3movsxd rdx, edx
00409df6imul rcx, rdx
00409dfamov rdx, [rbp-16]
00409dfeadd rdx, 40
00409e02mov rdx, [rdx]
00409e05movsxd rsi, edx
00409e08mov rdx, [rbp-16]
00409e0cadd rdx, 64
00409e10mov rdx, [rdx]
00409e13movsxd rdx, edx
00409e16imul rdx, rsi
00409e1alea rsi, [rcx+rdx]
00409e1emov rdx, [rbp-16]
00409e22add rdx, 32
00409e26mov rdx, [rdx]
00409e29movsxd rcx, edx
00409e2cmov rdx, [rbp-16]
00409e30add rdx, 72
00409e34mov rdx, [rdx]
00409e37movsxd rdx, edx
00409e3aimul rdx, rcx
00409e3eadd rdx, rsi
00409e41add rdx, rdx
00409e44mov [rax], rdx
00409e47mov rax, [rbp-8]
00409e4badd rax, 112
00409e4fmov rdx, [rbp-16]
00409e53add rdx, 56
00409e57mov rdx, [rdx]
00409e5amovsxd rcx, edx
00409e5dmov rdx, [rbp-16]
00409e61add rdx, 56
00409e65mov rdx, [rdx]
00409e68movsxd rdx, edx
00409e6bimul rcx, rdx
00409e6fmov rdx, [rbp-16]
00409e73add rdx, 48
00409e77mov rdx, [rdx]
00409e7amovsxd rsi, edx
00409e7dmov rdx, [rbp-16]
00409e81add rdx, 64
00409e85mov rdx, [rdx]
00409e88movsxd rdx, edx
00409e8bimul rdx, rsi
00409e8fadd rcx, rdx
00409e92mov rdx, [rbp-16]
00409e96add rdx, 40
00409e9amov rdx, [rdx]
00409e9dmovsxd rdx, edx
00409ea0lea rsi, [rdx+rdx]
00409ea4mov rdx, [rbp-16]
00409ea8add rdx, 72
00409eacmov rdx, [rdx]
00409eafmovsxd rdx, edx
00409eb2imul rdx, rsi
00409eb6add rdx, rcx
00409eb9add rdx, rdx
00409ebcmov [rax], rdx
00409ebfmov rax, [rbp-8]
00409ec3add rax, 120
00409ec7mov rdx, [rbp-16]
00409ecbadd rdx, 56
00409ecfmov rdx, [rdx]
00409ed2movsxd rcx, edx
00409ed5mov rdx, [rbp-16]
00409ed9add rdx, 64
00409eddmov rdx, [rdx]
00409ee0movsxd rdx, edx
00409ee3imul rcx, rdx
00409ee7mov rdx, [rbp-16]
00409eebadd rdx, 48
00409eefmov rdx, [rdx]
00409ef2movsxd rsi, edx
00409ef5mov rdx, [rbp-16]
00409ef9add rdx, 72
00409efdmov rdx, [rdx]
00409f00movsxd rdx, edx
00409f03imul rdx, rsi
00409f07add rdx, rcx
00409f0aadd rdx, rdx
00409f0dmov [rax], rdx
00409f10mov rax, [rbp-8]
00409f14sub rax, -128
00409f18mov rdx, [rbp-16]
00409f1cadd rdx, 64
00409f20mov rdx, [rdx]
00409f23movsxd rcx, edx
00409f26mov rdx, [rbp-16]
00409f2aadd rdx, 64
00409f2emov rdx, [rdx]
00409f31movsxd rdx, edx
00409f34imul rcx, rdx
00409f38mov rdx, [rbp-16]
00409f3cadd rdx, 56
00409f40mov rdx, [rdx]
00409f43movsxd rdx, edx
00409f46lea rsi, [4*rdx]
00409f4emov rdx, [rbp-16]
00409f52add rdx, 72
00409f56mov rdx, [rdx]
00409f59movsxd rdx, edx
00409f5cimul rdx, rsi
00409f60add rdx, rcx
00409f63mov [rax], rdx
00409f66mov rax, [rbp-8]
00409f6alea rdx, [rax+136]
00409f71mov rax, [rbp-16]
00409f75add rax, 64
00409f79mov rax, [rax]
00409f7ccdqe
00409f7elea rcx, [rax+rax]
00409f82mov rax, [rbp-16]
00409f86add rax, 72
00409f8amov rax, [rax]
00409f8dcdqe
00409f8fimul rax, rcx
00409f93mov [rdx], rax
00409f96mov rax, [rbp-8]
00409f9aadd rax, 144
00409fa0mov rdx, [rbp-16]
00409fa4add rdx, 72
00409fa8mov rdx, [rdx]
00409fabmovsxd rcx, edx
00409faemov rdx, [rbp-16]
00409fb2add rdx, 72
00409fb6mov rdx, [rdx]
00409fb9movsxd rdx, edx
00409fbcimul rdx, rcx
00409fc0add rdx, rdx
00409fc3mov [rax], rdx
00409fc6pop rbp
00409fc7ret
0040978b
00409fc8
00409fc8fsquare:
00409fc8push rbp
00409fc9mov rbp, rsp
00409fccsub rsp, 176
00409fd3mov [rbp-168], rdi
00409fdamov [rbp-176], rsi
00409fe1mov rdx, [rbp-176]
00409fe8lea rax, [rbp-160]
00409fefmov rsi, rdx
00409ff2mov rdi, rax
00409ff5call fsquare_inner
00409ffalea rax, [rbp-160]
0040a001mov rdi, rax
0040a004call freduce_degree
0040a009lea rax, [rbp-160]
0040a010mov rdi, rax
0040a013call freduce_coefficients
0040a018lea rdx, [rbp-160]
0040a01fmov rax, [rbp-168]
0040a026mov rcx, [rdx]
0040a029mov [rax], rcx
0040a02cmov rcx, [rdx+8]
0040a030mov [rax+8], rcx
0040a034mov rcx, [rdx+16]
0040a038mov [rax+16], rcx
0040a03cmov rcx, [rdx+24]
0040a040mov [rax+24], rcx
0040a044mov rcx, [rdx+32]
0040a048mov [rax+32], rcx
0040a04cmov rcx, [rdx+40]
0040a050mov [rax+40], rcx
0040a054mov rcx, [rdx+48]
0040a058mov [rax+48], rcx
0040a05cmov rcx, [rdx+56]
0040a060mov [rax+56], rcx
0040a064mov rcx, [rdx+64]
0040a068mov [rax+64], rcx
0040a06cmov rdx, [rdx+72]
0040a070mov [rax+72], rdx
0040a074leave
0040a075ret
00409fc8
00409fc8fsquare:
00409fc8push rbp
00409fc9mov rbp, rsp
00409fccsub rsp, 176
00409fd3mov [rbp-168], rdi
00409fdamov [rbp-176], rsi
00409fe1mov rdx, [rbp-176]
00409fe8lea rax, [rbp-160]
00409fefmov rsi, rdx
00409ff2mov rdi, rax
00409ff5call fsquare_inner
00409ffalea rax, [rbp-160]
0040a001mov rdi, rax
0040a004call freduce_degree
0040a009lea rax, [rbp-160]
0040a010mov rdi, rax
0040a013call freduce_coefficients
0040a018lea rdx, [rbp-160]
0040a01fmov rax, [rbp-168]
0040a026mov rcx, [rdx]
0040a029mov [rax], rcx
0040a02cmov rcx, [rdx+8]
0040a030mov [rax+8], rcx
0040a034mov rcx, [rdx+16]
0040a038mov [rax+16], rcx
0040a03cmov rcx, [rdx+24]
0040a040mov [rax+24], rcx
0040a044mov rcx, [rdx+32]
0040a048mov [rax+32], rcx
0040a04cmov rcx, [rdx+40]
0040a050mov [rax+40], rcx
0040a054mov rcx, [rdx+48]
0040a058mov [rax+48], rcx
0040a05cmov rcx, [rdx+56]
0040a060mov [rax+56], rcx
0040a064mov rcx, [rdx+64]
0040a068mov [rax+64], rcx
0040a06cmov rdx, [rdx+72]
0040a070mov [rax+72], rdx
0040a074leave
0040a075ret
00409fc8
0040a076
0040a076fexpand:
0040a076push rbp
0040a077mov rbp, rsp
0040a07amov [rbp-8], rdi
0040a07emov [rbp-16], rsi
0040a082mov rax, [rbp-16]
0040a086movzx eax, [rax]
0040a089movzx eax, al
0040a08cmov rdx, [rbp-16]
0040a090add rdx, 1
0040a094movzx edx, [rdx]
0040a097movzx edx, dl
0040a09ashl rdx, 8
0040a09eor rdx, rax
0040a0a1mov rax, [rbp-16]
0040a0a5add rax, 2
0040a0a9movzx eax, [rax]
0040a0acmovzx eax, al
0040a0afshl rax, 16
0040a0b3or rdx, rax
0040a0b6mov rax, [rbp-16]
0040a0baadd rax, 3
0040a0bemovzx eax, [rax]
0040a0c1movzx eax, al
0040a0c4shl rax, 24
0040a0c8or rax, rdx
0040a0cbmov rdx, rax
0040a0ceand edx, 0x3ffffff
0040a0d4mov rax, [rbp-8]
0040a0d8mov [rax], rdx
0040a0dbmov rax, [rbp-8]
0040a0dfadd rax, 8
0040a0e3mov rdx, [rbp-16]
0040a0e7add rdx, 3
0040a0ebmovzx edx, [rdx]
0040a0eemovzx edx, dl
0040a0f1mov rcx, [rbp-16]
0040a0f5add rcx, 4
0040a0f9movzx ecx, [rcx]
0040a0fcmovzx ecx, cl
0040a0ffshl rcx, 8
0040a103or rcx, rdx
0040a106mov rdx, [rbp-16]
0040a10aadd rdx, 5
0040a10emovzx edx, [rdx]
0040a111movzx edx, dl
0040a114shl rdx, 16
0040a118or rcx, rdx
0040a11bmov rdx, [rbp-16]
0040a11fadd rdx, 6
0040a123movzx edx, [rdx]
0040a126movzx edx, dl
0040a129shl rdx, 24
0040a12dor rdx, rcx
0040a130sar rdx, 2
0040a134and edx, 0x1ffffff
0040a13amov [rax], rdx
0040a13dmov rax, [rbp-8]
0040a141add rax, 16
0040a145mov rdx, [rbp-16]
0040a149add rdx, 6
0040a14dmovzx edx, [rdx]
0040a150movzx edx, dl
0040a153mov rcx, [rbp-16]
0040a157add rcx, 7
0040a15bmovzx ecx, [rcx]
0040a15emovzx ecx, cl
0040a161shl rcx, 8
0040a165or rcx, rdx
0040a168mov rdx, [rbp-16]
0040a16cadd rdx, 8
0040a170movzx edx, [rdx]
0040a173movzx edx, dl
0040a176shl rdx, 16
0040a17aor rcx, rdx
0040a17dmov rdx, [rbp-16]
0040a181add rdx, 9
0040a185movzx edx, [rdx]
0040a188movzx edx, dl
0040a18bshl rdx, 24
0040a18for rdx, rcx
0040a192sar rdx, 3
0040a196and edx, 0x3ffffff
0040a19cmov [rax], rdx
0040a19fmov rax, [rbp-8]
0040a1a3add rax, 24
0040a1a7mov rdx, [rbp-16]
0040a1abadd rdx, 9
0040a1afmovzx edx, [rdx]
0040a1b2movzx edx, dl
0040a1b5mov rcx, [rbp-16]
0040a1b9add rcx, 10
0040a1bdmovzx ecx, [rcx]
0040a1c0movzx ecx, cl
0040a1c3shl rcx, 8
0040a1c7or rcx, rdx
0040a1camov rdx, [rbp-16]
0040a1ceadd rdx, 11
0040a1d2movzx edx, [rdx]
0040a1d5movzx edx, dl
0040a1d8shl rdx, 16
0040a1dcor rcx, rdx
0040a1dfmov rdx, [rbp-16]
0040a1e3add rdx, 12
0040a1e7movzx edx, [rdx]
0040a1eamovzx edx, dl
0040a1edshl rdx, 24
0040a1f1or rdx, rcx
0040a1f4sar rdx, 5
0040a1f8and edx, 0x1ffffff
0040a1femov [rax], rdx
0040a201mov rax, [rbp-8]
0040a205add rax, 32
0040a209mov rdx, [rbp-16]
0040a20dadd rdx, 12
0040a211movzx edx, [rdx]
0040a214movzx edx, dl
0040a217mov rcx, [rbp-16]
0040a21badd rcx, 13
0040a21fmovzx ecx, [rcx]
0040a222movzx ecx, cl
0040a225shl rcx, 8
0040a229or rcx, rdx
0040a22cmov rdx, [rbp-16]
0040a230add rdx, 14
0040a234movzx edx, [rdx]
0040a237movzx edx, dl
0040a23ashl rdx, 16
0040a23eor rcx, rdx
0040a241mov rdx, [rbp-16]
0040a245add rdx, 15
0040a249movzx edx, [rdx]
0040a24cmovzx edx, dl
0040a24fshl rdx, 24
0040a253or rdx, rcx
0040a256sar rdx, 6
0040a25aand edx, 0x3ffffff
0040a260mov [rax], rdx
0040a263mov rax, [rbp-8]
0040a267add rax, 40
0040a26bmov rdx, [rbp-16]
0040a26fadd rdx, 16
0040a273movzx edx, [rdx]
0040a276movzx edx, dl
0040a279mov rcx, [rbp-16]
0040a27dadd rcx, 17
0040a281movzx ecx, [rcx]
0040a284movzx ecx, cl
0040a287shl rcx, 8
0040a28bor rcx, rdx
0040a28emov rdx, [rbp-16]
0040a292add rdx, 18
0040a296movzx edx, [rdx]
0040a299movzx edx, dl
0040a29cshl rdx, 16
0040a2a0or rcx, rdx
0040a2a3mov rdx, [rbp-16]
0040a2a7add rdx, 19
0040a2abmovzx edx, [rdx]
0040a2aemovzx edx, dl
0040a2b1shl rdx, 24
0040a2b5or rdx, rcx
0040a2b8and edx, 0x1ffffff
0040a2bemov [rax], rdx
0040a2c1mov rax, [rbp-8]
0040a2c5add rax, 48
0040a2c9mov rdx, [rbp-16]
0040a2cdadd rdx, 19
0040a2d1movzx edx, [rdx]
0040a2d4movzx edx, dl
0040a2d7mov rcx, [rbp-16]
0040a2dbadd rcx, 20
0040a2dfmovzx ecx, [rcx]
0040a2e2movzx ecx, cl
0040a2e5shl rcx, 8
0040a2e9or rcx, rdx
0040a2ecmov rdx, [rbp-16]
0040a2f0add rdx, 21
0040a2f4movzx edx, [rdx]
0040a2f7movzx edx, dl
0040a2fashl rdx, 16
0040a2feor rcx, rdx
0040a301mov rdx, [rbp-16]
0040a305add rdx, 22
0040a309movzx edx, [rdx]
0040a30cmovzx edx, dl
0040a30fshl rdx, 24
0040a313or rdx, rcx
0040a316sar rdx, 1
0040a319and edx, 0x3ffffff
0040a31fmov [rax], rdx
0040a322mov rax, [rbp-8]
0040a326add rax, 56
0040a32amov rdx, [rbp-16]
0040a32eadd rdx, 22
0040a332movzx edx, [rdx]
0040a335movzx edx, dl
0040a338mov rcx, [rbp-16]
0040a33cadd rcx, 23
0040a340movzx ecx, [rcx]
0040a343movzx ecx, cl
0040a346shl rcx, 8
0040a34aor rcx, rdx
0040a34dmov rdx, [rbp-16]
0040a351add rdx, 24
0040a355movzx edx, [rdx]
0040a358movzx edx, dl
0040a35bshl rdx, 16
0040a35for rcx, rdx
0040a362mov rdx, [rbp-16]
0040a366add rdx, 25
0040a36amovzx edx, [rdx]
0040a36dmovzx edx, dl
0040a370shl rdx, 24
0040a374or rdx, rcx
0040a377sar rdx, 3
0040a37band edx, 0x1ffffff
0040a381mov [rax], rdx
0040a384mov rax, [rbp-8]
0040a388add rax, 64
0040a38cmov rdx, [rbp-16]
0040a390add rdx, 25
0040a394movzx edx, [rdx]
0040a397movzx edx, dl
0040a39amov rcx, [rbp-16]
0040a39eadd rcx, 26
0040a3a2movzx ecx, [rcx]
0040a3a5movzx ecx, cl
0040a3a8shl rcx, 8
0040a3acor rcx, rdx
0040a3afmov rdx, [rbp-16]
0040a3b3add rdx, 27
0040a3b7movzx edx, [rdx]
0040a3bamovzx edx, dl
0040a3bdshl rdx, 16
0040a3c1or rcx, rdx
0040a3c4mov rdx, [rbp-16]
0040a3c8add rdx, 28
0040a3ccmovzx edx, [rdx]
0040a3cfmovzx edx, dl
0040a3d2shl rdx, 24
0040a3d6or rdx, rcx
0040a3d9sar rdx, 4
0040a3ddand edx, 0x3ffffff
0040a3e3mov [rax], rdx
0040a3e6mov rax, [rbp-8]
0040a3eaadd rax, 72
0040a3eemov rdx, [rbp-16]
0040a3f2add rdx, 28
0040a3f6movzx edx, [rdx]
0040a3f9movzx edx, dl
0040a3fcmov rcx, [rbp-16]
0040a400add rcx, 29
0040a404movzx ecx, [rcx]
0040a407movzx ecx, cl
0040a40ashl rcx, 8
0040a40eor rcx, rdx
0040a411mov rdx, [rbp-16]
0040a415add rdx, 30
0040a419movzx edx, [rdx]
0040a41cmovzx edx, dl
0040a41fshl rdx, 16
0040a423or rcx, rdx
0040a426mov rdx, [rbp-16]
0040a42aadd rdx, 31
0040a42emovzx edx, [rdx]
0040a431movzx edx, dl
0040a434shl rdx, 24
0040a438or rdx, rcx
0040a43bsar rdx, 6
0040a43fand edx, 0x1ffffff
0040a445mov [rax], rdx
0040a448pop rbp
0040a449ret
0040a076
0040a076fexpand:
0040a076push rbp
0040a077mov rbp, rsp
0040a07amov [rbp-8], rdi
0040a07emov [rbp-16], rsi
0040a082mov rax, [rbp-16]
0040a086movzx eax, [rax]
0040a089movzx eax, al
0040a08cmov rdx, [rbp-16]
0040a090add rdx, 1
0040a094movzx edx, [rdx]
0040a097movzx edx, dl
0040a09ashl rdx, 8
0040a09eor rdx, rax
0040a0a1mov rax, [rbp-16]
0040a0a5add rax, 2
0040a0a9movzx eax, [rax]
0040a0acmovzx eax, al
0040a0afshl rax, 16
0040a0b3or rdx, rax
0040a0b6mov rax, [rbp-16]
0040a0baadd rax, 3
0040a0bemovzx eax, [rax]
0040a0c1movzx eax, al
0040a0c4shl rax, 24
0040a0c8or rax, rdx
0040a0cbmov rdx, rax
0040a0ceand edx, 0x3ffffff
0040a0d4mov rax, [rbp-8]
0040a0d8mov [rax], rdx
0040a0dbmov rax, [rbp-8]
0040a0dfadd rax, 8
0040a0e3mov rdx, [rbp-16]
0040a0e7add rdx, 3
0040a0ebmovzx edx, [rdx]
0040a0eemovzx edx, dl
0040a0f1mov rcx, [rbp-16]
0040a0f5add rcx, 4
0040a0f9movzx ecx, [rcx]
0040a0fcmovzx ecx, cl
0040a0ffshl rcx, 8
0040a103or rcx, rdx
0040a106mov rdx, [rbp-16]
0040a10aadd rdx, 5
0040a10emovzx edx, [rdx]
0040a111movzx edx, dl
0040a114shl rdx, 16
0040a118or rcx, rdx
0040a11bmov rdx, [rbp-16]
0040a11fadd rdx, 6
0040a123movzx edx, [rdx]
0040a126movzx edx, dl
0040a129shl rdx, 24
0040a12dor rdx, rcx
0040a130sar rdx, 2
0040a134and edx, 0x1ffffff
0040a13amov [rax], rdx
0040a13dmov rax, [rbp-8]
0040a141add rax, 16
0040a145mov rdx, [rbp-16]
0040a149add rdx, 6
0040a14dmovzx edx, [rdx]
0040a150movzx edx, dl
0040a153mov rcx, [rbp-16]
0040a157add rcx, 7
0040a15bmovzx ecx, [rcx]
0040a15emovzx ecx, cl
0040a161shl rcx, 8
0040a165or rcx, rdx
0040a168mov rdx, [rbp-16]
0040a16cadd rdx, 8
0040a170movzx edx, [rdx]
0040a173movzx edx, dl
0040a176shl rdx, 16
0040a17aor rcx, rdx
0040a17dmov rdx, [rbp-16]
0040a181add rdx, 9
0040a185movzx edx, [rdx]
0040a188movzx edx, dl
0040a18bshl rdx, 24
0040a18for rdx, rcx
0040a192sar rdx, 3
0040a196and edx, 0x3ffffff
0040a19cmov [rax], rdx
0040a19fmov rax, [rbp-8]
0040a1a3add rax, 24
0040a1a7mov rdx, [rbp-16]
0040a1abadd rdx, 9
0040a1afmovzx edx, [rdx]
0040a1b2movzx edx, dl
0040a1b5mov rcx, [rbp-16]
0040a1b9add rcx, 10
0040a1bdmovzx ecx, [rcx]
0040a1c0movzx ecx, cl
0040a1c3shl rcx, 8
0040a1c7or rcx, rdx
0040a1camov rdx, [rbp-16]
0040a1ceadd rdx, 11
0040a1d2movzx edx, [rdx]
0040a1d5movzx edx, dl
0040a1d8shl rdx, 16
0040a1dcor rcx, rdx
0040a1dfmov rdx, [rbp-16]
0040a1e3add rdx, 12
0040a1e7movzx edx, [rdx]
0040a1eamovzx edx, dl
0040a1edshl rdx, 24
0040a1f1or rdx, rcx
0040a1f4sar rdx, 5
0040a1f8and edx, 0x1ffffff
0040a1femov [rax], rdx
0040a201mov rax, [rbp-8]
0040a205add rax, 32
0040a209mov rdx, [rbp-16]
0040a20dadd rdx, 12
0040a211movzx edx, [rdx]
0040a214movzx edx, dl
0040a217mov rcx, [rbp-16]
0040a21badd rcx, 13
0040a21fmovzx ecx, [rcx]
0040a222movzx ecx, cl
0040a225shl rcx, 8
0040a229or rcx, rdx
0040a22cmov rdx, [rbp-16]
0040a230add rdx, 14
0040a234movzx edx, [rdx]
0040a237movzx edx, dl
0040a23ashl rdx, 16
0040a23eor rcx, rdx
0040a241mov rdx, [rbp-16]
0040a245add rdx, 15
0040a249movzx edx, [rdx]
0040a24cmovzx edx, dl
0040a24fshl rdx, 24
0040a253or rdx, rcx
0040a256sar rdx, 6
0040a25aand edx, 0x3ffffff
0040a260mov [rax], rdx
0040a263mov rax, [rbp-8]
0040a267add rax, 40
0040a26bmov rdx, [rbp-16]
0040a26fadd rdx, 16
0040a273movzx edx, [rdx]
0040a276movzx edx, dl
0040a279mov rcx, [rbp-16]
0040a27dadd rcx, 17
0040a281movzx ecx, [rcx]
0040a284movzx ecx, cl
0040a287shl rcx, 8
0040a28bor rcx, rdx
0040a28emov rdx, [rbp-16]
0040a292add rdx, 18
0040a296movzx edx, [rdx]
0040a299movzx edx, dl
0040a29cshl rdx, 16
0040a2a0or rcx, rdx
0040a2a3mov rdx, [rbp-16]
0040a2a7add rdx, 19
0040a2abmovzx edx, [rdx]
0040a2aemovzx edx, dl
0040a2b1shl rdx, 24
0040a2b5or rdx, rcx
0040a2b8and edx, 0x1ffffff
0040a2bemov [rax], rdx
0040a2c1mov rax, [rbp-8]
0040a2c5add rax, 48
0040a2c9mov rdx, [rbp-16]
0040a2cdadd rdx, 19
0040a2d1movzx edx, [rdx]
0040a2d4movzx edx, dl
0040a2d7mov rcx, [rbp-16]
0040a2dbadd rcx, 20
0040a2dfmovzx ecx, [rcx]
0040a2e2movzx ecx, cl
0040a2e5shl rcx, 8
0040a2e9or rcx, rdx
0040a2ecmov rdx, [rbp-16]
0040a2f0add rdx, 21
0040a2f4movzx edx, [rdx]
0040a2f7movzx edx, dl
0040a2fashl rdx, 16
0040a2feor rcx, rdx
0040a301mov rdx, [rbp-16]
0040a305add rdx, 22
0040a309movzx edx, [rdx]
0040a30cmovzx edx, dl
0040a30fshl rdx, 24
0040a313or rdx, rcx
0040a316sar rdx, 1
0040a319and edx, 0x3ffffff
0040a31fmov [rax], rdx
0040a322mov rax, [rbp-8]
0040a326add rax, 56
0040a32amov rdx, [rbp-16]
0040a32eadd rdx, 22
0040a332movzx edx, [rdx]
0040a335movzx edx, dl
0040a338mov rcx, [rbp-16]
0040a33cadd rcx, 23
0040a340movzx ecx, [rcx]
0040a343movzx ecx, cl
0040a346shl rcx, 8
0040a34aor rcx, rdx
0040a34dmov rdx, [rbp-16]
0040a351add rdx, 24
0040a355movzx edx, [rdx]
0040a358movzx edx, dl
0040a35bshl rdx, 16
0040a35for rcx, rdx
0040a362mov rdx, [rbp-16]
0040a366add rdx, 25
0040a36amovzx edx, [rdx]
0040a36dmovzx edx, dl
0040a370shl rdx, 24
0040a374or rdx, rcx
0040a377sar rdx, 3
0040a37band edx, 0x1ffffff
0040a381mov [rax], rdx
0040a384mov rax, [rbp-8]
0040a388add rax, 64
0040a38cmov rdx, [rbp-16]
0040a390add rdx, 25
0040a394movzx edx, [rdx]
0040a397movzx edx, dl
0040a39amov rcx, [rbp-16]
0040a39eadd rcx, 26
0040a3a2movzx ecx, [rcx]
0040a3a5movzx ecx, cl
0040a3a8shl rcx, 8
0040a3acor rcx, rdx
0040a3afmov rdx, [rbp-16]
0040a3b3add rdx, 27
0040a3b7movzx edx, [rdx]
0040a3bamovzx edx, dl
0040a3bdshl rdx, 16
0040a3c1or rcx, rdx
0040a3c4mov rdx, [rbp-16]
0040a3c8add rdx, 28
0040a3ccmovzx edx, [rdx]
0040a3cfmovzx edx, dl
0040a3d2shl rdx, 24
0040a3d6or rdx, rcx
0040a3d9sar rdx, 4
0040a3ddand edx, 0x3ffffff
0040a3e3mov [rax], rdx
0040a3e6mov rax, [rbp-8]
0040a3eaadd rax, 72
0040a3eemov rdx, [rbp-16]
0040a3f2add rdx, 28
0040a3f6movzx edx, [rdx]
0040a3f9movzx edx, dl
0040a3fcmov rcx, [rbp-16]
0040a400add rcx, 29
0040a404movzx ecx, [rcx]
0040a407movzx ecx, cl
0040a40ashl rcx, 8
0040a40eor rcx, rdx
0040a411mov rdx, [rbp-16]
0040a415add rdx, 30
0040a419movzx edx, [rdx]
0040a41cmovzx edx, dl
0040a41fshl rdx, 16
0040a423or rcx, rdx
0040a426mov rdx, [rbp-16]
0040a42aadd rdx, 31
0040a42emovzx edx, [rdx]
0040a431movzx edx, dl
0040a434shl rdx, 24
0040a438or rdx, rcx
0040a43bsar rdx, 6
0040a43fand edx, 0x1ffffff
0040a445mov [rax], rdx
0040a448pop rbp
0040a449ret
0040a076
Loading..