18010bf51:	81 7d 50 ff ff ff 7f 	cmpl   $0x7fffffff,0x50(%rbp)
18010bf58:	74 f2                	je     0x18010bf4c
18010bf5a:	41 3b d2             	cmp    %r10d,%edx
18010bf5d:	7c 09                	jl     0x18010bf68
18010bf5f:	3b 55 50             	cmp    0x50(%rbp),%edx
18010bf62:	7f 04                	jg     0x18010bf68
18010bf64:	44 01 04 8e          	add    %r8d,(%rsi,%rcx,4)
18010bf68:	41 ff c1             	inc    %r9d
18010bf6b:	48 ff c1             	inc    %rcx
18010bf6e:	49 3b cd             	cmp    %r13,%rcx
18010bf71:	7c bc                	jl     0x18010bf2f
18010bf73:	eb 04                	jmp    0x18010bf79
18010bf75:	4c 8b 6d f0          	mov    -0x10(%rbp),%r13
18010bf79:	49 83 c7 19          	add    $0x19,%r15
18010bf7d:	49 83 ec 01          	sub    $0x1,%r12
18010bf81:	0f 85 27 ff ff ff    	jne    0x18010beae
18010bf87:	44 8b 7d 40          	mov    0x40(%rbp),%r15d
18010bf8b:	44 8b 65 60          	mov    0x60(%rbp),%r12d
18010bf8f:	8b d7                	mov    %edi,%edx
18010bf91:	8b cf                	mov    %edi,%ecx
18010bf93:	48 c1 ea 03          	shr    $0x3,%rdx
18010bf97:	83 e1 07             	and    $0x7,%ecx
18010bf9a:	49 03 56 18          	add    0x18(%r14),%rdx
18010bf9e:	41 ba 80 00 00 00    	mov    $0x80,%r10d
18010bfa4:	45 8b c2             	mov    %r10d,%r8d
18010bfa7:	45 33 c9             	xor    %r9d,%r9d
18010bfaa:	41 d3 f8             	sar    %cl,%r8d
18010bfad:	4d 85 ed             	test   %r13,%r13
18010bfb0:	7e 2d                	jle    0x18010bfdf
18010bfb2:	42 83 3c 8e 00       	cmpl   $0x0,(%rsi,%r9,4)
18010bfb7:	74 03                	je     0x18010bfbc
18010bfb9:	44 08 02             	or     %r8b,(%rdx)
18010bfbc:	41 d0 e8             	shr    $1,%r8b
18010bfbf:	48 8d 42 01          	lea    0x1(%rdx),%rax
18010bfc3:	41 8a c8             	mov    %r8b,%cl
18010bfc6:	45 0f b6 c0          	movzbl %r8b,%r8d
18010bfca:	45 0f 44 c2          	cmove  %r10d,%r8d
18010bfce:	49 ff c1             	inc    %r9
18010bfd1:	84 c9                	test   %cl,%cl
18010bfd3:	48 0f 45 c2          	cmovne %rdx,%rax
18010bfd7:	48 8b d0             	mov    %rax,%rdx
18010bfda:	4d 3b cd             	cmp    %r13,%r9
18010bfdd:	7c d3                	jl     0x18010bfb2
18010bfdf:	41 ff c7             	inc    %r15d
18010bfe2:	4a 8d 0c ad 00 00 00 	lea    0x0(,%r13,4),%rcx
18010bfe9:	00
18010bfea:	41 03 fc             	add    %r12d,%edi
18010bfed:	44 89 7d 40          	mov    %r15d,0x40(%rbp)
18010bff1:	44 3b 7d d0          	cmp    -0x30(%rbp),%r15d
18010bff5:	0f 8c 77 fe ff ff    	jl     0x18010be72
18010bffb:	8b 7d 58             	mov    0x58(%rbp),%edi
18010bffe:	4c 8b 65 78          	mov    0x78(%rbp),%r12
18010c002:	48 8b 45 68          	mov    0x68(%rbp),%rax
18010c006:	33 db                	xor    %ebx,%ebx
18010c008:	4c 89 30             	mov    %r14,(%rax)
18010c00b:	48 8b 45 70          	mov    0x70(%rbp),%rax
18010c00f:	89 38                	mov    %edi,(%rax)
18010c011:	48 8d 05 98 8f 08 00 	lea    0x88f98(%rip),%rax        # 0x180194fb0
18010c018:	48 3b f0             	cmp    %rax,%rsi
18010c01b:	74 24                	je     0x18010c041
18010c01d:	49 39 1c 24          	cmp    %rbx,(%r12)
18010c021:	75 1e                	jne    0x18010c041
18010c023:	48 8b ce             	mov    %rsi,%rcx
18010c026:	eb 14                	jmp    0x18010c03c
18010c028:	bb 9a 00 00 c0       	mov    $0xc000009a,%ebx
18010c02d:	4d 85 f6             	test   %r14,%r14
18010c030:	74 0f                	je     0x18010c041
18010c032:	49 83 3c 24 00       	cmpq   $0x0,(%r12)
18010c037:	75 08                	jne    0x18010c041
18010c039:	49 8b ce             	mov    %r14,%rcx
18010c03c:	e8 bb df f8 ff       	call   0x180099ffc
18010c041:	48 8b 45 e8          	mov    -0x18(%rbp),%rax
18010c045:	48 85 c0             	test   %rax,%rax
18010c048:	74 0e                	je     0x18010c058
18010c04a:	8b 55 d4             	mov    -0x2c(%rbp),%edx
18010c04d:	4d 8b c4             	mov    %r12,%r8
18010c050:	48 8b c8             	mov    %rax,%rcx
18010c053:	e8 c4 e5 ff ff       	call   0x18010a61c
18010c058:	8b c3                	mov    %ebx,%eax
18010c05a:	48 8b 9c 24 a8 00 00 	mov    0xa8(%rsp),%rbx
18010c061:	00
18010c062:	48 83 c4 60          	add    $0x60,%rsp
18010c066:	41 5f                	pop    %r15
18010c068:	41 5e                	pop    %r14
18010c06a:	41 5d                	pop    %r13
18010c06c:	41 5c                	pop    %r12
18010c06e:	5f                   	pop    %rdi
18010c06f:	5e                   	pop    %rsi
18010c070:	5d                   	pop    %rbp
18010c071:	c3                   	ret
18010c072:	cc                   	int3
18010c073:	cc                   	int3
18010c074:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18010c079:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
18010c07e:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
18010c083:	57                   	push   %rdi
18010c084:	41 54                	push   %r12
18010c086:	41 55                	push   %r13
18010c088:	41 56                	push   %r14
18010c08a:	41 57                	push   %r15
18010c08c:	48 83 ec 10          	sub    $0x10,%rsp
18010c090:	4c 8b 11             	mov    (%rcx),%r10
18010c093:	4d 8b d9             	mov    %r9,%r11
18010c096:	4c 8b 69 08          	mov    0x8(%rcx),%r13
18010c09a:	49 8b f8             	mov    %r8,%rdi
18010c09d:	4c 8b f9             	mov    %rcx,%r15
18010c0a0:	48 8b 49 10          	mov    0x10(%rcx),%rcx
18010c0a4:	41 8b 42 08          	mov    0x8(%r10),%eax
18010c0a8:	41 03 02             	add    (%r10),%eax
18010c0ab:	48 98                	cltq
18010c0ad:	48 8b e8             	mov    %rax,%rbp
18010c0b0:	48 89 04 24          	mov    %rax,(%rsp)
18010c0b4:	41 8b 42 0c          	mov    0xc(%r10),%eax
18010c0b8:	41 03 42 04          	add    0x4(%r10),%eax
18010c0bc:	4c 63 d0             	movslq %eax,%r10
18010c0bf:	41 8b 45 0c          	mov    0xc(%r13),%eax
18010c0c3:	4d 8b ca             	mov    %r10,%r9
18010c0c6:	41 03 45 04          	add    0x4(%r13),%eax
18010c0ca:	48 63 f0             	movslq %eax,%rsi
18010c0cd:	8b 41 08             	mov    0x8(%rcx),%eax
18010c0d0:	4c 8b f6             	mov    %rsi,%r14
18010c0d3:	03 01                	add    (%rcx),%eax
18010c0d5:	48 98                	cltq
18010c0d7:	48 8b d8             	mov    %rax,%rbx
18010c0da:	48 89 44 24 08       	mov    %rax,0x8(%rsp)
18010c0df:	8b 41 0c             	mov    0xc(%rcx),%eax
18010c0e2:	03 41 04             	add    0x4(%rcx),%eax
18010c0e5:	4c 63 e0             	movslq %eax,%r12
18010c0e8:	48 63 c2             	movslq %edx,%rax
18010c0eb:	4d 8b c4             	mov    %r12,%r8
18010c0ee:	48 8b d0             	mov    %rax,%rdx
18010c0f1:	48 c1 e5 10          	shl    $0x10,%rbp
18010c0f5:	48 c1 e2 10          	shl    $0x10,%rdx
18010c0f9:	49 c1 e1 10          	shl    $0x10,%r9
18010c0fd:	49 c1 e6 10          	shl    $0x10,%r14
18010c101:	48 c1 e3 10          	shl    $0x10,%rbx
18010c105:	49 c1 e0 10          	shl    $0x10,%r8
18010c109:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
18010c10e:	4d 3b c8             	cmp    %r8,%r9
18010c111:	75 0a                	jne    0x18010c11d
18010c113:	4c 3b ca             	cmp    %rdx,%r9
18010c116:	75 0a                	jne    0x18010c122
18010c118:	e9 0d 01 00 00       	jmp    0x18010c22a
18010c11d:	4c 3b ca             	cmp    %rdx,%r9
18010c120:	74 17                	je     0x18010c139
18010c122:	4c 3b c2             	cmp    %rdx,%r8
18010c125:	74 12                	je     0x18010c139
18010c127:	41 8a 4f 18          	mov    0x18(%r15),%cl
18010c12b:	8a c1                	mov    %cl,%al
18010c12d:	80 f9 01             	cmp    $0x1,%cl
18010c130:	74 0e                	je     0x18010c140
18010c132:	4c 3b f2             	cmp    %rdx,%r14
18010c135:	75 09                	jne    0x18010c140
18010c137:	eb 04                	jmp    0x18010c13d
18010c139:	41 8a 47 18          	mov    0x18(%r15),%al
18010c13d:	48 ff c2             	inc    %rdx
18010c140:	3c 01                	cmp    $0x1,%al
18010c142:	75 4e                	jne    0x18010c192
18010c144:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c149:	41 89 0b             	mov    %ecx,(%r11)
18010c14c:	4c 3b ca             	cmp    %rdx,%r9
18010c14f:	7e 08                	jle    0x18010c159
18010c151:	4c 3b c2             	cmp    %rdx,%r8
18010c154:	7f 0a                	jg     0x18010c160
18010c156:	4c 3b ca             	cmp    %rdx,%r9
18010c159:	7d 0c                	jge    0x18010c167
18010c15b:	4c 3b c2             	cmp    %rdx,%r8
18010c15e:	7d 07                	jge    0x18010c167
18010c160:	89 0f                	mov    %ecx,(%rdi)
18010c162:	e9 02 02 00 00       	jmp    0x18010c369
18010c167:	49 2b d1             	sub    %r9,%rdx
18010c16a:	48 2b dd             	sub    %rbp,%rbx
18010c16d:	48 0f af d3          	imul   %rbx,%rdx
18010c171:	4d 2b c1             	sub    %r9,%r8
18010c174:	48 8b c2             	mov    %rdx,%rax
18010c177:	48 99                	cqto
18010c179:	49 f7 f8             	idiv   %r8
18010c17c:	48 03 c5             	add    %rbp,%rax
18010c17f:	48 99                	cqto
18010c181:	0f b7 d2             	movzwl %dx,%edx
18010c184:	48 03 c2             	add    %rdx,%rax
18010c187:	48 c1 f8 10          	sar    $0x10,%rax
18010c18b:	89 07                	mov    %eax,(%rdi)
18010c18d:	e9 d7 01 00 00       	jmp    0x18010c369
18010c192:	4c 3b ca             	cmp    %rdx,%r9
18010c195:	7e 11                	jle    0x18010c1a8
18010c197:	4c 3b f2             	cmp    %rdx,%r14
18010c19a:	7e 09                	jle    0x18010c1a5
18010c19c:	4c 3b c2             	cmp    %rdx,%r8
18010c19f:	0f 8f 85 00 00 00    	jg     0x18010c22a
18010c1a5:	4c 3b ca             	cmp    %rdx,%r9
18010c1a8:	7d 0a                	jge    0x18010c1b4
18010c1aa:	4c 3b f2             	cmp    %rdx,%r14
18010c1ad:	7d 05                	jge    0x18010c1b4
18010c1af:	4c 3b c2             	cmp    %rdx,%r8
18010c1b2:	7c 76                	jl     0x18010c22a
18010c1b4:	4b 8d 04 36          	lea    (%r14,%r14,1),%rax
18010c1b8:	49 8b c8             	mov    %r8,%rcx
18010c1bb:	48 2b c8             	sub    %rax,%rcx
18010c1be:	49 03 c9             	add    %r9,%rcx
18010c1c1:	75 33                	jne    0x18010c1f6
18010c1c3:	49 2b d1             	sub    %r9,%rdx
18010c1c6:	48 2b dd             	sub    %rbp,%rbx
18010c1c9:	48 0f af d3          	imul   %rbx,%rdx
18010c1cd:	4d 2b c1             	sub    %r9,%r8
18010c1d0:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c1d5:	48 8b c2             	mov    %rdx,%rax
18010c1d8:	48 99                	cqto
18010c1da:	49 f7 f8             	idiv   %r8
18010c1dd:	48 03 c5             	add    %rbp,%rax
18010c1e0:	48 99                	cqto
18010c1e2:	0f b7 d2             	movzwl %dx,%edx
18010c1e5:	48 03 c2             	add    %rdx,%rax
18010c1e8:	48 c1 f8 10          	sar    $0x10,%rax
18010c1ec:	89 07                	mov    %eax,(%rdi)
18010c1ee:	41 89 0b             	mov    %ecx,(%r11)
18010c1f1:	e9 73 01 00 00       	jmp    0x18010c369
18010c1f6:	41 8b 45 08          	mov    0x8(%r13),%eax
18010c1fa:	41 03 45 00          	add    0x0(%r13),%eax
18010c1fe:	48 63 e8             	movslq %eax,%rbp
18010c201:	48 8d 04 36          	lea    (%rsi,%rsi,1),%rax
18010c205:	49 2b f2             	sub    %r10,%rsi
18010c208:	4c 2b e0             	sub    %rax,%r12
18010c20b:	4d 03 e2             	add    %r10,%r12
18010c20e:	48 03 f6             	add    %rsi,%rsi
18010c211:	4c 2b 54 24 40       	sub    0x40(%rsp),%r10
18010c216:	48 8b c6             	mov    %rsi,%rax
18010c219:	4d 0f af d4          	imul   %r12,%r10
18010c21d:	48 0f af c6          	imul   %rsi,%rax
18010c221:	49 c1 e2 02          	shl    $0x2,%r10
18010c225:	49 2b c2             	sub    %r10,%rax
18010c228:	79 09                	jns    0x18010c233
18010c22a:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c22f:	89 0f                	mov    %ecx,(%rdi)
18010c231:	eb bb                	jmp    0x18010c1ee
18010c233:	45 33 c0             	xor    %r8d,%r8d
18010c236:	48 85 c0             	test   %rax,%rax
18010c239:	7e 48                	jle    0x18010c283
18010c23b:	4c 8b c8             	mov    %rax,%r9
18010c23e:	49 c1 e1 20          	shl    $0x20,%r9
18010c242:	48 ff c0             	inc    %rax
18010c245:	48 d1 f8             	sar    $1,%rax
18010c248:	48 85 c0             	test   %rax,%rax
18010c24b:	7e 0b                	jle    0x18010c258
18010c24d:	49 2b c0             	sub    %r8,%rax
18010c250:	49 ff c0             	inc    %r8
18010c253:	49 3b c0             	cmp    %r8,%rax
18010c256:	7f f5                	jg     0x18010c24d
18010c258:	49 c1 e0 10          	shl    $0x10,%r8
18010c25c:	4d 85 c0             	test   %r8,%r8
18010c25f:	74 22                	je     0x18010c283
18010c261:	41 ba 07 00 00 00    	mov    $0x7,%r10d
18010c267:	49 8b c0             	mov    %r8,%rax
18010c26a:	4b 8d 0c 00          	lea    (%r8,%r8,1),%rcx
18010c26e:	49 0f af c0          	imul   %r8,%rax
18010c272:	49 03 c1             	add    %r9,%rax
18010c275:	48 99                	cqto
18010c277:	48 f7 f9             	idiv   %rcx
18010c27a:	4c 8b c0             	mov    %rax,%r8
18010c27d:	49 83 ea 01          	sub    $0x1,%r10
18010c281:	75 e4                	jne    0x18010c267
18010c283:	4b 8d 0c 24          	lea    (%r12,%r12,1),%rcx
18010c287:	48 f7 de             	neg    %rsi
18010c28a:	48 c1 e6 10          	shl    $0x10,%rsi
18010c28e:	41 bc 00 00 01 00    	mov    $0x10000,%r12d
18010c294:	41 bf ff ff ff ff    	mov    $0xffffffff,%r15d
18010c29a:	4a 8d 04 06          	lea    (%rsi,%r8,1),%rax
18010c29e:	49 2b f0             	sub    %r8,%rsi
18010c2a1:	48 99                	cqto
18010c2a3:	45 8b c4             	mov    %r12d,%r8d
18010c2a6:	48 f7 f9             	idiv   %rcx
18010c2a9:	48 8b d8             	mov    %rax,%rbx
18010c2ac:	48 8b c6             	mov    %rsi,%rax
18010c2af:	48 99                	cqto
18010c2b1:	4c 2b c3             	sub    %rbx,%r8
18010c2b4:	48 f7 f9             	idiv   %rcx
18010c2b7:	49 8b d0             	mov    %r8,%rdx
18010c2ba:	48 8b cb             	mov    %rbx,%rcx
18010c2bd:	48 0f af 14 24       	imul   (%rsp),%rdx
18010c2c2:	48 0f af cd          	imul   %rbp,%rcx
18010c2c6:	4c 8b d0             	mov    %rax,%r10
18010c2c9:	48 8d 04 4a          	lea    (%rdx,%rcx,2),%rax
18010c2cd:	48 8b cb             	mov    %rbx,%rcx
18010c2d0:	49 0f af c0          	imul   %r8,%rax
18010c2d4:	48 0f af cb          	imul   %rbx,%rcx
18010c2d8:	45 8b c4             	mov    %r12d,%r8d
18010c2db:	4d 2b c2             	sub    %r10,%r8
18010c2de:	48 0f af 4c 24 08    	imul   0x8(%rsp),%rcx
18010c2e4:	48 03 c1             	add    %rcx,%rax
18010c2e7:	49 8b ca             	mov    %r10,%rcx
18010c2ea:	48 99                	cqto
18010c2ec:	49 23 d7             	and    %r15,%rdx
18010c2ef:	48 03 c2             	add    %rdx,%rax
18010c2f2:	49 8b d0             	mov    %r8,%rdx
18010c2f5:	48 0f af 14 24       	imul   (%rsp),%rdx
18010c2fa:	48 0f af cd          	imul   %rbp,%rcx
18010c2fe:	48 c1 f8 20          	sar    $0x20,%rax
18010c302:	4c 8b c8             	mov    %rax,%r9
18010c305:	89 07                	mov    %eax,(%rdi)
18010c307:	48 8d 04 4a          	lea    (%rdx,%rcx,2),%rax
18010c30b:	49 8b ca             	mov    %r10,%rcx
18010c30e:	49 0f af c0          	imul   %r8,%rax
18010c312:	49 0f af ca          	imul   %r10,%rcx
18010c316:	48 0f af 4c 24 08    	imul   0x8(%rsp),%rcx
18010c31c:	48 03 c1             	add    %rcx,%rax
18010c31f:	b9 ff ff ff 7f       	mov    $0x7fffffff,%ecx
18010c324:	48 99                	cqto
18010c326:	49 23 d7             	and    %r15,%rdx
18010c329:	48 03 c2             	add    %rdx,%rax
18010c32c:	48 c1 f8 20          	sar    $0x20,%rax
18010c330:	41 89 03             	mov    %eax,(%r11)
18010c333:	48 8b d0             	mov    %rax,%rdx
18010c336:	48 85 db             	test   %rbx,%rbx
18010c339:	78 05                	js     0x18010c340
18010c33b:	49 3b dc             	cmp    %r12,%rbx
18010c33e:	7e 05                	jle    0x18010c345
18010c340:	89 0f                	mov    %ecx,(%rdi)
18010c342:	44 8b c9             	mov    %ecx,%r9d
18010c345:	4d 85 d2             	test   %r10,%r10
18010c348:	78 05                	js     0x18010c34f
18010c34a:	4d 3b d4             	cmp    %r12,%r10
18010c34d:	7e 05                	jle    0x18010c354
18010c34f:	41 89 0b             	mov    %ecx,(%r11)
18010c352:	8b d1                	mov    %ecx,%edx
18010c354:	44 3b ca             	cmp    %edx,%r9d
18010c357:	7e 07                	jle    0x18010c360
18010c359:	89 17                	mov    %edx,(%rdi)
18010c35b:	45 89 0b             	mov    %r9d,(%r11)
18010c35e:	eb 09                	jmp    0x18010c369
18010c360:	41 8b 03             	mov    (%r11),%eax
18010c363:	0f 44 c1             	cmove  %ecx,%eax
18010c366:	41 89 03             	mov    %eax,(%r11)
18010c369:	48 8b 5c 24 48       	mov    0x48(%rsp),%rbx
18010c36e:	48 8b 6c 24 50       	mov    0x50(%rsp),%rbp
18010c373:	48 8b 74 24 58       	mov    0x58(%rsp),%rsi
18010c378:	48 83 c4 10          	add    $0x10,%rsp
18010c37c:	41 5f                	pop    %r15
18010c37e:	41 5e                	pop    %r14
18010c380:	41 5d                	pop    %r13
18010c382:	41 5c                	pop    %r12
18010c384:	5f                   	pop    %rdi
18010c385:	c3                   	ret
18010c386:	cc                   	int3
18010c387:	cc                   	int3
18010c388:	40 53                	rex push %rbx
18010c38a:	48 83 ec 20          	sub    $0x20,%rsp
18010c38e:	48 8b 01             	mov    (%rcx),%rax
18010c391:	48 39 48 08          	cmp    %rcx,0x8(%rax)
18010c395:	75 59                	jne    0x18010c3f0
18010c397:	48 89 02             	mov    %rax,(%rdx)