180043f72:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
180043f77:	48 8b 74 24 10       	mov    0x10(%rsp),%rsi
180043f7c:	48 8b 7c 24 18       	mov    0x18(%rsp),%rdi
180043f81:	c3                   	ret
180043f82:	cc                   	int3
180043f83:	cc                   	int3
180043f84:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180043f89:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180043f8e:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
180043f93:	57                   	push   %rdi
180043f94:	41 56                	push   %r14
180043f96:	41 57                	push   %r15
180043f98:	48 83 ec 20          	sub    $0x20,%rsp
180043f9c:	33 ff                	xor    %edi,%edi
180043f9e:	41 8b e9             	mov    %r9d,%ebp
180043fa1:	45 8b f0             	mov    %r8d,%r14d
180043fa4:	44 8b fa             	mov    %edx,%r15d
180043fa7:	48 8b f1             	mov    %rcx,%rsi
180043faa:	39 79 0c             	cmp    %edi,0xc(%rcx)
180043fad:	76 33                	jbe    0x180043fe2
180043faf:	44 8b 4e 0c          	mov    0xc(%rsi),%r9d
180043fb3:	44 8b c5             	mov    %ebp,%r8d
180043fb6:	48 8b 5e 10          	mov    0x10(%rsi),%rbx
180043fba:	45 8b d9             	mov    %r9d,%r11d
180043fbd:	48 8b 0e             	mov    (%rsi),%rcx
180043fc0:	45 0f af ce          	imul   %r14d,%r9d
180043fc4:	45 0f af df          	imul   %r15d,%r11d
180043fc8:	44 03 cf             	add    %edi,%r9d
180043fcb:	44 03 df             	add    %edi,%r11d
180043fce:	42 8b 14 8b          	mov    (%rbx,%r9,4),%edx
180043fd2:	e8 89 fe ff ff       	call   0x180043e60
180043fd7:	42 31 04 9b          	xor    %eax,(%rbx,%r11,4)
180043fdb:	ff c7                	inc    %edi
180043fdd:	3b 7e 0c             	cmp    0xc(%rsi),%edi
180043fe0:	72 cd                	jb     0x180043faf
180043fe2:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
180043fe7:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
180043fec:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180043ff1:	48 83 c4 20          	add    $0x20,%rsp
180043ff5:	41 5f                	pop    %r15
180043ff7:	41 5e                	pop    %r14
180043ff9:	5f                   	pop    %rdi
180043ffa:	c3                   	ret
180043ffb:	cc                   	int3
180043ffc:	48 8b c4             	mov    %rsp,%rax
180043fff:	48 89 58 08          	mov    %rbx,0x8(%rax)
180044003:	48 89 68 10          	mov    %rbp,0x10(%rax)
180044007:	48 89 70 18          	mov    %rsi,0x18(%rax)
18004400b:	48 89 78 20          	mov    %rdi,0x20(%rax)
18004400f:	41 56                	push   %r14
180044011:	48 83 ec 20          	sub    $0x20,%rsp
180044015:	8b 41 0c             	mov    0xc(%rcx),%eax
180044018:	33 ff                	xor    %edi,%edi
18004401a:	41 8b e8             	mov    %r8d,%ebp
18004401d:	44 8b f2             	mov    %edx,%r14d
180044020:	48 8b f1             	mov    %rcx,%rsi
180044023:	85 c0                	test   %eax,%eax
180044025:	74 28                	je     0x18004404f
180044027:	4c 8b 5e 10          	mov    0x10(%rsi),%r11
18004402b:	44 8b c5             	mov    %ebp,%r8d
18004402e:	48 8b 0e             	mov    (%rsi),%rcx
180044031:	41 0f af c6          	imul   %r14d,%eax
180044035:	03 c7                	add    %edi,%eax
180044037:	8b d8                	mov    %eax,%ebx
180044039:	41 8b 14 83          	mov    (%r11,%rax,4),%edx
18004403d:	e8 5a fe ff ff       	call   0x180043e9c
180044042:	41 89 04 9b          	mov    %eax,(%r11,%rbx,4)
180044046:	ff c7                	inc    %edi
180044048:	8b 46 0c             	mov    0xc(%rsi),%eax
18004404b:	3b f8                	cmp    %eax,%edi
18004404d:	72 d8                	jb     0x180044027
18004404f:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
180044054:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
180044059:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
18004405e:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
180044063:	48 83 c4 20          	add    $0x20,%rsp
180044067:	41 5e                	pop    %r14
180044069:	c3                   	ret
18004406a:	cc                   	int3
18004406b:	cc                   	int3
18004406c:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180044071:	48 89 6c 24 10       	mov    %rbp,0x10(%rsp)
180044076:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
18004407b:	57                   	push   %rdi
18004407c:	41 56                	push   %r14
18004407e:	41 57                	push   %r15
180044080:	48 83 ec 20          	sub    $0x20,%rsp
180044084:	8b 79 0c             	mov    0xc(%rcx),%edi
180044087:	45 33 db             	xor    %r11d,%r11d
18004408a:	33 db                	xor    %ebx,%ebx
18004408c:	41 8b e8             	mov    %r8d,%ebp
18004408f:	85 ff                	test   %edi,%edi
180044091:	74 5f                	je     0x1800440f2
180044093:	4c 8b 79 10          	mov    0x10(%rcx),%r15
180044097:	8b f7                	mov    %edi,%esi
180044099:	4c 8b 31             	mov    (%rcx),%r14
18004409c:	0f af f2             	imul   %edx,%esi
18004409f:	8d 04 1e             	lea    (%rsi,%rbx,1),%eax
1800440a2:	44 8b c5             	mov    %ebp,%r8d
1800440a5:	41 8b 14 87          	mov    (%r15,%rax,4),%edx
1800440a9:	49 8b ce             	mov    %r14,%rcx
1800440ac:	e8 eb fd ff ff       	call   0x180043e9c
1800440b1:	45 33 d2             	xor    %r10d,%r10d
1800440b4:	85 c0                	test   %eax,%eax
1800440b6:	74 31                	je     0x1800440e9
1800440b8:	45 8b 0e             	mov    (%r14),%r9d
1800440bb:	8b c8                	mov    %eax,%ecx
1800440bd:	49 8b 46 08          	mov    0x8(%r14),%rax
1800440c1:	44 8b 04 88          	mov    (%rax,%rcx,4),%r8d
1800440c5:	45 0f af c1          	imul   %r9d,%r8d
1800440c9:	45 0f af c9          	imul   %r9d,%r9d
1800440cd:	4d 03 46 18          	add    0x18(%r14),%r8
1800440d1:	45 85 c9             	test   %r9d,%r9d
1800440d4:	74 13                	je     0x1800440e9
1800440d6:	41 8b d1             	mov    %r9d,%edx
1800440d9:	41 0f b6 08          	movzbl (%r8),%ecx
1800440dd:	49 ff c0             	inc    %r8
1800440e0:	44 03 d1             	add    %ecx,%r10d
1800440e3:	48 83 ea 01          	sub    $0x1,%rdx
1800440e7:	75 f0                	jne    0x1800440d9
1800440e9:	45 03 da             	add    %r10d,%r11d
1800440ec:	ff c3                	inc    %ebx
1800440ee:	3b df                	cmp    %edi,%ebx
1800440f0:	72 ad                	jb     0x18004409f
1800440f2:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1800440f7:	41 8b c3             	mov    %r11d,%eax
1800440fa:	48 8b 6c 24 48       	mov    0x48(%rsp),%rbp
1800440ff:	48 8b 74 24 50       	mov    0x50(%rsp),%rsi
180044104:	48 83 c4 20          	add    $0x20,%rsp
180044108:	41 5f                	pop    %r15
18004410a:	41 5e                	pop    %r14
18004410c:	5f                   	pop    %rdi
18004410d:	c3                   	ret
18004410e:	cc                   	int3
18004410f:	cc                   	int3
180044110:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180044115:	44 8b 51 0c          	mov    0xc(%rcx),%r10d
180044119:	45 33 c0             	xor    %r8d,%r8d
18004411c:	44 89 44 24 08       	mov    %r8d,0x8(%rsp)
180044121:	45 8b c8             	mov    %r8d,%r9d
180044124:	45 85 d2             	test   %r10d,%r10d
180044127:	74 2b                	je     0x180044154
180044129:	48 8b 59 10          	mov    0x10(%rcx),%rbx
18004412d:	45 8b da             	mov    %r10d,%r11d
180044130:	44 0f af da          	imul   %edx,%r11d
180044134:	43 8d 04 0b          	lea    (%r11,%r9,1),%eax
180044138:	44 39 04 83          	cmp    %r8d,(%rbx,%rax,4)
18004413c:	74 09                	je     0x180044147
18004413e:	48 8d 44 24 08       	lea    0x8(%rsp),%rax
180044143:	44 0f ab 08          	bts    %r9d,(%rax)
180044147:	41 ff c1             	inc    %r9d
18004414a:	45 3b ca             	cmp    %r10d,%r9d
18004414d:	72 e5                	jb     0x180044134
18004414f:	44 8b 44 24 08       	mov    0x8(%rsp),%r8d
180044154:	48 8b 5c 24 10       	mov    0x10(%rsp),%rbx
180044159:	41 8b c0             	mov    %r8d,%eax
18004415c:	c3                   	ret
18004415d:	cc                   	int3
18004415e:	cc                   	int3
18004415f:	cc                   	int3
180044160:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180044165:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
18004416a:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
18004416f:	55                   	push   %rbp
180044170:	41 54                	push   %r12
180044172:	41 55                	push   %r13
180044174:	41 56                	push   %r14
180044176:	41 57                	push   %r15
180044178:	48 8b ec             	mov    %rsp,%rbp
18004417b:	48 83 ec 40          	sub    $0x40,%rsp
18004417f:	44 8b 49 0c          	mov    0xc(%rcx),%r9d
180044183:	48 8b d9             	mov    %rcx,%rbx
180044186:	44 8b 41 08          	mov    0x8(%rcx),%r8d
18004418a:	48 8b 11             	mov    (%rcx),%rdx
18004418d:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
180044191:	48 83 65 e0 00       	andq   $0x0,-0x20(%rbp)
180044196:	83 65 e8 00          	andl   $0x0,-0x18(%rbp)
18004419a:	83 65 ec 00          	andl   $0x0,-0x14(%rbp)
18004419e:	48 83 65 f0 00       	andq   $0x0,-0x10(%rbp)
1800441a3:	e8 30 fd ff ff       	call   0x180043ed8
1800441a8:	4c 8b 75 f0          	mov    -0x10(%rbp),%r14
1800441ac:	44 8b e0             	mov    %eax,%r12d
1800441af:	85 c0                	test   %eax,%eax
1800441b1:	0f 88 42 01 00 00    	js     0x1800442f9
1800441b7:	8b 4b 08             	mov    0x8(%rbx),%ecx
1800441ba:	33 d2                	xor    %edx,%edx
1800441bc:	85 c9                	test   %ecx,%ecx
1800441be:	74 1c                	je     0x1800441dc
1800441c0:	44 8b 45 ec          	mov    -0x14(%rbp),%r8d
1800441c4:	41 8d 40 01          	lea    0x1(%r8),%eax
1800441c8:	0f af c2             	imul   %edx,%eax
1800441cb:	ff c2                	inc    %edx
1800441cd:	41 c7 04 86 01 00 00 	movl   $0x1,(%r14,%rax,4)
1800441d4:	00
1800441d5:	8b 4b 08             	mov    0x8(%rbx),%ecx
1800441d8:	3b d1                	cmp    %ecx,%edx
1800441da:	72 e8                	jb     0x1800441c4
1800441dc:	33 ff                	xor    %edi,%edi
1800441de:	85 c9                	test   %ecx,%ecx
1800441e0:	0f 84 c6 00 00 00    	je     0x1800442ac
1800441e6:	8b 53 0c             	mov    0xc(%rbx),%edx
1800441e9:	4c 8b 43 10          	mov    0x10(%rbx),%r8
1800441ed:	8d 42 01             	lea    0x1(%rdx),%eax
1800441f0:	0f af c7             	imul   %edi,%eax
1800441f3:	45 8b 3c 80          	mov    (%r8,%rax,4),%r15d
1800441f7:	45 85 ff             	test   %r15d,%r15d
1800441fa:	75 3b                	jne    0x180044237
1800441fc:	8d 77 01             	lea    0x1(%rdi),%esi
1800441ff:	3b f1                	cmp    %ecx,%esi
180044201:	0f 83 aa 00 00 00    	jae    0x1800442b1
180044207:	8b c2                	mov    %edx,%eax
180044209:	0f af c6             	imul   %esi,%eax
18004420c:	03 c7                	add    %edi,%eax
18004420e:	45 8b 3c 80          	mov    (%r8,%rax,4),%r15d
180044212:	45 85 ff             	test   %r15d,%r15d
180044215:	75 07                	jne    0x18004421e
180044217:	ff c6                	inc    %esi
180044219:	3b 73 08             	cmp    0x8(%rbx),%esi
18004421c:	eb e3                	jmp    0x180044201
18004421e:	44 8b c6             	mov    %esi,%r8d
180044221:	8b d7                	mov    %edi,%edx
180044223:	48 8b cb             	mov    %rbx,%rcx
180044226:	e8 e9 fc ff ff       	call   0x180043f14
18004422b:	44 8b c6             	mov    %esi,%r8d
18004422e:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
180044232:	e8 dd fc ff ff       	call   0x180043f14
180044237:	45 8b c7             	mov    %r15d,%r8d
18004423a:	8b d7                	mov    %edi,%edx
18004423c:	48 8b cb             	mov    %rbx,%rcx
18004423f:	e8 b8 fd ff ff       	call   0x180043ffc
180044244:	45 8b c7             	mov    %r15d,%r8d
180044247:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
18004424b:	8b d7                	mov    %edi,%edx
18004424d:	e8 aa fd ff ff       	call   0x180043ffc
180044252:	8b 4b 08             	mov    0x8(%rbx),%ecx
180044255:	44 8d 6f 01          	lea    0x1(%rdi),%r13d
180044259:	41 8b f5             	mov    %r13d,%esi
18004425c:	44 3b e9             	cmp    %ecx,%r13d
18004425f:	73 3f                	jae    0x1800442a0
180044261:	48 8b 43 10          	mov    0x10(%rbx),%rax
180044265:	8b ce                	mov    %esi,%ecx
180044267:	0f af 4b 0c          	imul   0xc(%rbx),%ecx
18004426b:	03 cf                	add    %edi,%ecx
18004426d:	44 8b 3c 88          	mov    (%rax,%rcx,4),%r15d
180044271:	45 85 ff             	test   %r15d,%r15d
180044274:	74 21                	je     0x180044297
180044276:	45 8b cf             	mov    %r15d,%r9d
180044279:	44 8b c7             	mov    %edi,%r8d
18004427c:	8b d6                	mov    %esi,%edx
18004427e:	48 8b cb             	mov    %rbx,%rcx
180044281:	e8 fe fc ff ff       	call   0x180043f84
180044286:	45 8b cf             	mov    %r15d,%r9d
180044289:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
18004428d:	44 8b c7             	mov    %edi,%r8d
180044290:	8b d6                	mov    %esi,%edx
180044292:	e8 ed fc ff ff       	call   0x180043f84
180044297:	8b 4b 08             	mov    0x8(%rbx),%ecx
18004429a:	ff c6                	inc    %esi
18004429c:	3b f1                	cmp    %ecx,%esi
18004429e:	72 c1                	jb     0x180044261
1800442a0:	41 8b fd             	mov    %r13d,%edi
1800442a3:	44 3b e9             	cmp    %ecx,%r13d
1800442a6:	0f 82 3a ff ff ff    	jb     0x1800441e6
1800442ac:	8d 79 ff             	lea    -0x1(%rcx),%edi
1800442af:	eb 39                	jmp    0x1800442ea
1800442b1:	41 bc 01 00 00 c0    	mov    $0xc0000001,%r12d
1800442b7:	eb 40                	jmp    0x1800442f9
1800442b9:	33 f6                	xor    %esi,%esi
1800442bb:	85 ff                	test   %edi,%edi
1800442bd:	74 29                	je     0x1800442e8
1800442bf:	48 8b 43 10          	mov    0x10(%rbx),%rax
1800442c3:	8b ce                	mov    %esi,%ecx
1800442c5:	0f af 4b 0c          	imul   0xc(%rbx),%ecx
1800442c9:	03 cf                	add    %edi,%ecx
1800442cb:	44 8b 0c 88          	mov    (%rax,%rcx,4),%r9d
1800442cf:	45 85 c9             	test   %r9d,%r9d
1800442d2:	74 0e                	je     0x1800442e2
1800442d4:	44 8b c7             	mov    %edi,%r8d
1800442d7:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
1800442db:	8b d6                	mov    %esi,%edx
1800442dd:	e8 a2 fc ff ff       	call   0x180043f84
1800442e2:	ff c6                	inc    %esi
1800442e4:	3b f7                	cmp    %edi,%esi
1800442e6:	72 d7                	jb     0x1800442bf
1800442e8:	ff cf                	dec    %edi
1800442ea:	85 ff                	test   %edi,%edi
1800442ec:	7f cb                	jg     0x1800442b9
1800442ee:	48 8b 43 10          	mov    0x10(%rbx),%rax
1800442f2:	4c 89 73 10          	mov    %r14,0x10(%rbx)
1800442f6:	4c 8b f0             	mov    %rax,%r14
1800442f9:	4d 85 f6             	test   %r14,%r14
1800442fc:	74 08                	je     0x180044306
1800442fe:	49 8b ce             	mov    %r14,%rcx
180044301:	e8 56 26 00 00       	call   0x18004695c
180044306:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
18004430b:	41 8b c4             	mov    %r12d,%eax
18004430e:	49 8b 5b 30          	mov    0x30(%r11),%rbx
180044312:	49 8b 73 38          	mov    0x38(%r11),%rsi
180044316:	49 8b 7b 40          	mov    0x40(%r11),%rdi
18004431a:	49 8b e3             	mov    %r11,%rsp
18004431d:	41 5f                	pop    %r15
18004431f:	41 5e                	pop    %r14
180044321:	41 5d                	pop    %r13
180044323:	41 5c                	pop    %r12
180044325:	5d                   	pop    %rbp
180044326:	c3                   	ret
180044327:	cc                   	int3
180044328:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
18004432d:	48 89 6c 24 18       	mov    %rbp,0x18(%rsp)
180044332:	48 89 74 24 20       	mov    %rsi,0x20(%rsp)
180044337:	57                   	push   %rdi
180044338:	41 54                	push   %r12
18004433a:	41 55                	push   %r13
18004433c:	41 56                	push   %r14
18004433e:	41 57                	push   %r15
180044340:	48 83 ec 20          	sub    $0x20,%rsp
180044344:	8b 41 0c             	mov    0xc(%rcx),%eax
180044347:	44 8b f2             	mov    %edx,%r14d
18004434a:	33 d2                	xor    %edx,%edx
18004434c:	45 33 c0             	xor    %r8d,%r8d
18004434f:	41 f7 f6             	div    %r14d
180044352:	33 db                	xor    %ebx,%ebx
180044354:	48 8b f9             	mov    %rcx,%rdi
180044357:	44 8b d8             	mov    %eax,%r11d
18004435a:	45 8d 60 01          	lea    0x1(%r8),%r12d
18004435e:	44 8b d2             	mov    %edx,%r10d
180044361:	45 85 f6             	test   %r14d,%r14d
180044364:	74 42                	je     0x1800443a8
180044366:	45 85 db             	test   %r11d,%r11d
180044369:	74 1c                	je     0x180044387
18004436b:	49 8b d3             	mov    %r11,%rdx
18004436e:	48 8b 47 10          	mov    0x10(%rdi),%rax
180044372:	8b cb                	mov    %ebx,%ecx
180044374:	0f af 4f 0c          	imul   0xc(%rdi),%ecx
180044378:	41 03 c8             	add    %r8d,%ecx
18004437b:	45 03 c4             	add    %r12d,%r8d
18004437e:	44 89 24 88          	mov    %r12d,(%rax,%rcx,4)
180044382:	49 2b d4             	sub    %r12,%rdx
180044385:	75 e7                	jne    0x18004436e
180044387:	44 3b d3             	cmp    %ebx,%r10d
18004438a:	76 14                	jbe    0x1800443a0
18004438c:	48 8b 47 10          	mov    0x10(%rdi),%rax
180044390:	8b cb                	mov    %ebx,%ecx
180044392:	0f af 4f 0c          	imul   0xc(%rdi),%ecx
180044396:	41 03 c8             	add    %r8d,%ecx
180044399:	45 03 c4             	add    %r12d,%r8d
18004439c:	44 89 24 88          	mov    %r12d,(%rax,%rcx,4)
1800443a0:	41 03 dc             	add    %r12d,%ebx
1800443a3:	41 3b de             	cmp    %r14d,%ebx
1800443a6:	72 be                	jb     0x180044366