18010b1bf:	f7 d8                	neg    %eax
18010b1c1:	89 07                	mov    %eax,(%rdi)
18010b1c3:	eb 15                	jmp    0x18010b1da
18010b1c5:	f6 c1 20             	test   $0x20,%cl
18010b1c8:	75 13                	jne    0x18010b1dd
18010b1ca:	4c 8b c7             	mov    %rdi,%r8
18010b1cd:	8b d3                	mov    %ebx,%edx
18010b1cf:	41 8b cf             	mov    %r15d,%ecx
18010b1d2:	e8 c5 15 00 00       	call   0x18010c79c
18010b1d7:	83 c3 02             	add    $0x2,%ebx
18010b1da:	45 33 db             	xor    %r11d,%r11d
18010b1dd:	0f b7 45 40          	movzwl 0x40(%rbp),%eax
18010b1e1:	66 41 ff c6          	inc    %r14w
18010b1e5:	41 0f bf ce          	movswl %r14w,%ecx
18010b1e9:	3b c8                	cmp    %eax,%ecx
18010b1eb:	7c 84                	jl     0x18010b171
18010b1ed:	4c 8b 6d e0          	mov    -0x20(%rbp),%r13
18010b1f1:	48 8b 45 50          	mov    0x50(%rbp),%rax
18010b1f5:	48 89 30             	mov    %rsi,(%rax)
18010b1f8:	48 8b 45 58          	mov    0x58(%rbp),%rax
18010b1fc:	4c 39 18             	cmp    %r11,(%rax)
18010b1ff:	0f 85 d0 fc ff ff    	jne    0x18010aed5
18010b205:	49 8b cd             	mov    %r13,%rcx
18010b208:	e8 ef ed f8 ff       	call   0x180099ffc
18010b20d:	e9 c3 fc ff ff       	jmp    0x18010aed5
18010b212:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
18010b217:	48 8b 9c 24 a8 00 00 	mov    0xa8(%rsp),%rbx
18010b21e:	00
18010b21f:	48 83 c4 60          	add    $0x60,%rsp
18010b223:	41 5f                	pop    %r15
18010b225:	41 5e                	pop    %r14
18010b227:	41 5d                	pop    %r13
18010b229:	41 5c                	pop    %r12
18010b22b:	5f                   	pop    %rdi
18010b22c:	5e                   	pop    %rsi
18010b22d:	5d                   	pop    %rbp
18010b22e:	c3                   	ret
18010b22f:	cc                   	int3
18010b230:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
18010b235:	57                   	push   %rdi
18010b236:	48 83 ec 20          	sub    $0x20,%rsp
18010b23a:	48 8b da             	mov    %rdx,%rbx
18010b23d:	48 8b f9             	mov    %rcx,%rdi
18010b240:	49 8b d0             	mov    %r8,%rdx
18010b243:	b9 11 00 00 00       	mov    $0x11,%ecx
18010b248:	e8 c3 13 00 00       	call   0x18010c610
18010b24d:	4c 8b c0             	mov    %rax,%r8
18010b250:	48 85 c0             	test   %rax,%rax
18010b253:	74 3d                	je     0x18010b292
18010b255:	4c 8b cf             	mov    %rdi,%r9
18010b258:	4d 8b d0             	mov    %r8,%r10
18010b25b:	4c 2b cb             	sub    %rbx,%r9
18010b25e:	48 8b cb             	mov    %rbx,%rcx
18010b261:	4c 2b d3             	sub    %rbx,%r10
18010b264:	41 bb 04 00 00 00    	mov    $0x4,%r11d
18010b26a:	41 8b 04 09          	mov    (%r9,%rcx,1),%eax
18010b26e:	03 01                	add    (%rcx),%eax
18010b270:	99                   	cltd
18010b271:	2b c2                	sub    %edx,%eax
18010b273:	d1 f8                	sar    $1,%eax
18010b275:	41 89 04 0a          	mov    %eax,(%r10,%rcx,1)
18010b279:	48 8d 49 04          	lea    0x4(%rcx),%rcx
18010b27d:	49 83 eb 01          	sub    $0x1,%r11
18010b281:	75 e7                	jne    0x18010b26a
18010b283:	8a 47 10             	mov    0x10(%rdi),%al
18010b286:	0a 43 10             	or     0x10(%rbx),%al
18010b289:	0c 01                	or     $0x1,%al
18010b28b:	41 88 40 10          	mov    %al,0x10(%r8)
18010b28f:	49 8b c0             	mov    %r8,%rax
18010b292:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
18010b297:	48 83 c4 20          	add    $0x20,%rsp
18010b29b:	5f                   	pop    %rdi
18010b29c:	c3                   	ret
18010b29d:	cc                   	int3
18010b29e:	cc                   	int3
18010b29f:	cc                   	int3
18010b2a0:	4c 8b dc             	mov    %rsp,%r11
18010b2a3:	49 89 5b 18          	mov    %rbx,0x18(%r11)
18010b2a7:	4d 89 4b 20          	mov    %r9,0x20(%r11)
18010b2ab:	55                   	push   %rbp
18010b2ac:	56                   	push   %rsi
18010b2ad:	57                   	push   %rdi
18010b2ae:	41 54                	push   %r12
18010b2b0:	41 55                	push   %r13
18010b2b2:	41 56                	push   %r14
18010b2b4:	41 57                	push   %r15
18010b2b6:	48 8b ec             	mov    %rsp,%rbp
18010b2b9:	48 83 ec 30          	sub    $0x30,%rsp
18010b2bd:	44 0f b7 71 58       	movzwl 0x58(%rcx),%r14d
18010b2c2:	4c 8d 4d 40          	lea    0x40(%rbp),%r9
18010b2c6:	45 33 e4             	xor    %r12d,%r12d
18010b2c9:	48 8b d9             	mov    %rcx,%rbx
18010b2cc:	8b 49 44             	mov    0x44(%rcx),%ecx
18010b2cf:	4d 8b e8             	mov    %r8,%r13
18010b2d2:	66 44 89 65 48       	mov    %r12w,0x48(%rbp)
18010b2d7:	8b fa                	mov    %edx,%edi
18010b2d9:	48 8b 43 10          	mov    0x10(%rbx),%rax
18010b2dd:	45 8d 7c 24 02       	lea    0x2(%r12),%r15d
18010b2e2:	45 89 7b c0          	mov    %r15d,-0x40(%r11)
18010b2e6:	44 8b 50 10          	mov    0x10(%rax),%r10d
18010b2ea:	41 3b d6             	cmp    %r14d,%edx
18010b2ed:	73 7a                	jae    0x18010b369
18010b2ef:	44 8d 04 91          	lea    (%rcx,%rdx,4),%r8d
18010b2f3:	4d 89 63 b8          	mov    %r12,-0x48(%r11)
18010b2f7:	41 8d 54 24 04       	lea    0x4(%r12),%edx
18010b2fc:	41 8b ca             	mov    %r10d,%ecx
18010b2ff:	e8 4c dc f5 ff       	call   0x180068f50
18010b304:	85 c0                	test   %eax,%eax
18010b306:	0f 88 2f 01 00 00    	js     0x18010b43b
18010b30c:	0f b7 45 40          	movzwl 0x40(%rbp),%eax
18010b310:	0f b7 4d 42          	movzwl 0x42(%rbp),%ecx
18010b314:	66 c1 c8 08          	ror    $0x8,%ax
18010b318:	66 c1 c9 08          	ror    $0x8,%cx
18010b31c:	0f b7 f0             	movzwl %ax,%esi
18010b31f:	66 89 4d 48          	mov    %cx,0x48(%rbp)
18010b323:	85 f6                	test   %esi,%esi
18010b325:	0f 85 93 00 00 00    	jne    0x18010b3be
18010b32b:	44 8b 43 44          	mov    0x44(%rbx),%r8d
18010b32f:	4c 8d 4d 40          	lea    0x40(%rbp),%r9
18010b333:	48 8b 43 10          	mov    0x10(%rbx),%rax
18010b337:	8d 56 04             	lea    0x4(%rsi),%edx
18010b33a:	41 83 c0 fc          	add    $0xfffffffc,%r8d
18010b33e:	44 89 7c 24 28       	mov    %r15d,0x28(%rsp)
18010b343:	4c 89 64 24 20       	mov    %r12,0x20(%rsp)
18010b348:	8b 48 10             	mov    0x10(%rax),%ecx
18010b34b:	47 8d 04 b0          	lea    (%r8,%r14,4),%r8d
18010b34f:	e8 fc db f5 ff       	call   0x180068f50
18010b354:	85 c0                	test   %eax,%eax
18010b356:	0f 88 df 00 00 00    	js     0x18010b43b
18010b35c:	0f b7 45 40          	movzwl 0x40(%rbp),%eax
18010b360:	66 c1 c8 08          	ror    $0x8,%ax
18010b364:	0f b7 f0             	movzwl %ax,%esi
18010b367:	eb 51                	jmp    0x18010b3ba
18010b369:	48 83 64 24 20 00    	andq   $0x0,0x20(%rsp)
18010b36f:	46 8d 24 b1          	lea    (%rcx,%r14,4),%r12d
18010b373:	45 8d 44 24 fc       	lea    -0x4(%r12),%r8d
18010b378:	ba 04 00 00 00       	mov    $0x4,%edx
18010b37d:	41 8b ca             	mov    %r10d,%ecx
18010b380:	e8 cb db f5 ff       	call   0x180068f50
18010b385:	85 c0                	test   %eax,%eax
18010b387:	0f 88 ae 00 00 00    	js     0x18010b43b
18010b38d:	0f b7 45 40          	movzwl 0x40(%rbp),%eax
18010b391:	4c 8d 45 48          	lea    0x48(%rbp),%r8
18010b395:	66 c1 c8 08          	ror    $0x8,%ax
18010b399:	41 2b fe             	sub    %r14d,%edi
18010b39c:	0f b7 f0             	movzwl %ax,%esi
18010b39f:	48 8b 43 10          	mov    0x10(%rbx),%rax
18010b3a3:	41 8d 14 7c          	lea    (%r12,%rdi,2),%edx
18010b3a7:	8b 48 10             	mov    0x10(%rax),%ecx
18010b3aa:	e8 ed 13 00 00       	call   0x18010c79c
18010b3af:	45 33 e4             	xor    %r12d,%r12d
18010b3b2:	85 c0                	test   %eax,%eax
18010b3b4:	0f 88 81 00 00 00    	js     0x18010b43b
18010b3ba:	0f b7 4d 48          	movzwl 0x48(%rbp),%ecx
18010b3be:	45 8b 4d 12          	mov    0x12(%r13),%r9d
18010b3c2:	66 85 c9             	test   %cx,%cx
18010b3c5:	45 0f b7 45 18       	movzwl 0x18(%r13),%r8d
18010b3ca:	41 8b c4             	mov    %r12d,%eax
18010b3cd:	45 8b 55 0a          	mov    0xa(%r13),%r10d
18010b3d1:	66 0f 49 c1          	cmovns %cx,%ax
18010b3d5:	49 8b 55 32          	mov    0x32(%r13),%rdx
18010b3d9:	45 2b d1             	sub    %r9d,%r10d
18010b3dc:	66 89 45 48          	mov    %ax,0x48(%rbp)
18010b3e0:	0f bf c8             	movswl %ax,%ecx
18010b3e3:	44 03 d1             	add    %ecx,%r10d
18010b3e6:	41 3b f2             	cmp    %r10d,%esi
18010b3e9:	44 0f 4d d6          	cmovge %esi,%r10d
18010b3ed:	44 2b c9             	sub    %ecx,%r9d
18010b3f0:	46 89 0c 82          	mov    %r9d,(%rdx,%r8,4)
18010b3f4:	41 8b ca             	mov    %r10d,%ecx
18010b3f7:	0f bf 45 48          	movswl 0x48(%rbp),%eax
18010b3fb:	2b c8                	sub    %eax,%ecx
18010b3fd:	41 03 4d 12          	add    0x12(%r13),%ecx
18010b401:	42 89 4c 82 04       	mov    %ecx,0x4(%rdx,%r8,4)
18010b406:	0f bf 43 52          	movswl 0x52(%rbx),%eax
18010b40a:	0f bf 4b 54          	movswl 0x54(%rbx),%ecx
18010b40e:	45 0f b7 45 18       	movzwl 0x18(%r13),%r8d
18010b413:	03 c8                	add    %eax,%ecx
18010b415:	49 8b 55 3a          	mov    0x3a(%r13),%rdx
18010b419:	42 89 0c 82          	mov    %ecx,(%rdx,%r8,4)
18010b41d:	0f bf 43 52          	movswl 0x52(%rbx),%eax
18010b421:	0f bf 4b 54          	movswl 0x54(%rbx),%ecx
18010b425:	03 c8                	add    %eax,%ecx
18010b427:	48 8b 45 58          	mov    0x58(%rbp),%rax
18010b42b:	42 89 4c 82 04       	mov    %ecx,0x4(%rdx,%r8,4)
18010b430:	66 45 01 7d 18       	add    %r15w,0x18(%r13)
18010b435:	44 89 10             	mov    %r10d,(%rax)
18010b438:	41 8b c4             	mov    %r12d,%eax
18010b43b:	48 8b 9c 24 80 00 00 	mov    0x80(%rsp),%rbx
18010b442:	00
18010b443:	48 83 c4 30          	add    $0x30,%rsp
18010b447:	41 5f                	pop    %r15
18010b449:	41 5e                	pop    %r14
18010b44b:	41 5d                	pop    %r13
18010b44d:	41 5c                	pop    %r12
18010b44f:	5f                   	pop    %rdi
18010b450:	5e                   	pop    %rsi
18010b451:	5d                   	pop    %rbp
18010b452:	c3                   	ret
18010b453:	cc                   	int3
18010b454:	48 8b c4             	mov    %rsp,%rax
18010b457:	48 89 58 10          	mov    %rbx,0x10(%rax)
18010b45b:	48 89 70 18          	mov    %rsi,0x18(%rax)
18010b45f:	48 89 78 20          	mov    %rdi,0x20(%rax)
18010b463:	55                   	push   %rbp
18010b464:	41 54                	push   %r12
18010b466:	41 55                	push   %r13
18010b468:	41 56                	push   %r14
18010b46a:	41 57                	push   %r15
18010b46c:	48 8d 68 a9          	lea    -0x57(%rax),%rbp
18010b470:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
18010b477:	33 c0                	xor    %eax,%eax
18010b479:	33 ff                	xor    %edi,%edi
18010b47b:	48 89 45 07          	mov    %rax,0x7(%rbp)
18010b47f:	4d 8b e1             	mov    %r9,%r12
18010b482:	66 89 45 0f          	mov    %ax,0xf(%rbp)
18010b486:	4d 8b e8             	mov    %r8,%r13
18010b489:	48 89 7d ff          	mov    %rdi,-0x1(%rbp)
18010b48d:	44 8b f2             	mov    %edx,%r14d
18010b490:	48 8b d9             	mov    %rcx,%rbx
18010b493:	48 85 c9             	test   %rcx,%rcx
18010b496:	0f 84 8f 01 00 00    	je     0x18010b62b
18010b49c:	8b 49 3c             	mov    0x3c(%rcx),%ecx
18010b49f:	85 c9                	test   %ecx,%ecx
18010b4a1:	0f 84 84 01 00 00    	je     0x18010b62b
18010b4a7:	48 8b 43 10          	mov    0x10(%rbx),%rax
18010b4ab:	8d 34 11             	lea    (%rcx,%rdx,1),%esi
18010b4ae:	4c 8d 45 07          	lea    0x7(%rbp),%r8
18010b4b2:	8b d6                	mov    %esi,%edx
18010b4b4:	44 8b 78 10          	mov    0x10(%rax),%r15d
18010b4b8:	41 8b cf             	mov    %r15d,%ecx
18010b4bb:	e8 dc 12 00 00       	call   0x18010c79c
18010b4c0:	83 c6 02             	add    $0x2,%esi
18010b4c3:	4c 8d 45 09          	lea    0x9(%rbp),%r8
18010b4c7:	8b d6                	mov    %esi,%edx
18010b4c9:	41 8b cf             	mov    %r15d,%ecx
18010b4cc:	e8 cb 12 00 00       	call   0x18010c79c
18010b4d1:	4c 8d 45 0b          	lea    0xb(%rbp),%r8
18010b4d5:	41 8b cf             	mov    %r15d,%ecx
18010b4d8:	8d 56 02             	lea    0x2(%rsi),%edx
18010b4db:	e8 bc 12 00 00       	call   0x18010c79c
18010b4e0:	83 c6 04             	add    $0x4,%esi
18010b4e3:	4c 8d 45 0d          	lea    0xd(%rbp),%r8
18010b4e7:	8b d6                	mov    %esi,%edx
18010b4e9:	41 8b cf             	mov    %r15d,%ecx
18010b4ec:	e8 ab 12 00 00       	call   0x18010c79c
18010b4f1:	4c 8d 45 0f          	lea    0xf(%rbp),%r8
18010b4f5:	41 8b cf             	mov    %r15d,%ecx
18010b4f8:	8d 56 02             	lea    0x2(%rsi),%edx
18010b4fb:	e8 9c 12 00 00       	call   0x18010c79c
18010b500:	83 c6 04             	add    $0x4,%esi
18010b503:	66 39 7d 07          	cmp    %di,0x7(%rbp)
18010b507:	7c 0a                	jl     0x18010b513
18010b509:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
18010b50e:	e9 1d 01 00 00       	jmp    0x18010b630
18010b513:	89 7d f7             	mov    %edi,-0x9(%rbp)
18010b516:	66 89 7d 5f          	mov    %di,0x5f(%rbp)
18010b51a:	66 89 7d ef          	mov    %di,-0x11(%rbp)
18010b51e:	66 89 7d f3          	mov    %di,-0xd(%rbp)
18010b522:	41 83 fe ff          	cmp    $0xffffffff,%r14d
18010b526:	74 e1                	je     0x18010b509
18010b528:	48 8b 7d 7f          	mov    0x7f(%rbp),%rdi
18010b52c:	48 8d 45 17          	lea    0x17(%rbp),%rax
18010b530:	48 89 7c 24 38       	mov    %rdi,0x38(%rsp)
18010b535:	4c 8d 4d ef          	lea    -0x11(%rbp),%r9
18010b539:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
18010b53e:	4c 8d 45 f3          	lea    -0xd(%rbp),%r8
18010b542:	48 8d 45 f7          	lea    -0x9(%rbp),%rax
18010b546:	41 8b d6             	mov    %r14d,%edx
18010b549:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
18010b54e:	48 8b cb             	mov    %rbx,%rcx
18010b551:	48 8d 45 5f          	lea    0x5f(%rbp),%rax
18010b555:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
18010b55a:	e8 85 f1 ff ff       	call   0x18010a6e4
18010b55f:	85 c0                	test   %eax,%eax
18010b561:	0f 88 c9 00 00 00    	js     0x18010b630
18010b567:	8b 55 f7             	mov    -0x9(%rbp),%edx
18010b56a:	48 8d 45 ff          	lea    -0x1(%rbp),%rax
18010b56e:	44 0f b7 4d f3       	movzwl -0xd(%rbp),%r9d
18010b573:	4c 8d 45 07          	lea    0x7(%rbp),%r8
18010b577:	48 89 7c 24 48       	mov    %rdi,0x48(%rsp)
18010b57c:	03 d6                	add    %esi,%edx
18010b57e:	48 89 44 24 40       	mov    %rax,0x40(%rsp)
18010b583:	41 8b cf             	mov    %r15d,%ecx
18010b586:	0f b7 45 5f          	movzwl 0x5f(%rbp),%eax
18010b58a:	4c 89 6c 24 38       	mov    %r13,0x38(%rsp)
18010b58f:	89 54 24 30          	mov    %edx,0x30(%rsp)
18010b593:	48 8d 55 17          	lea    0x17(%rbp),%rdx
18010b597:	66 89 44 24 28       	mov    %ax,0x28(%rsp)
18010b59c:	0f b7 45 ef          	movzwl -0x11(%rbp),%eax
18010b5a0:	66 89 44 24 20       	mov    %ax,0x20(%rsp)
18010b5a5:	e8 9e f4 ff ff       	call   0x18010aa48
18010b5aa:	8b f0                	mov    %eax,%esi
18010b5ac:	85 c0                	test   %eax,%eax
18010b5ae:	78 4c                	js     0x18010b5fc
18010b5b0:	48 8b 45 ff          	mov    -0x1(%rbp),%rax
18010b5b4:	49 89 04 24          	mov    %rax,(%r12)
18010b5b8:	8b c6                	mov    %esi,%eax
18010b5ba:	eb 74                	jmp    0x18010b630
18010b5bc:	48 8d 45 17          	lea    0x17(%rbp),%rax
18010b5c0:	48 39 43 08          	cmp    %rax,0x8(%rbx)
18010b5c4:	75 5e                	jne    0x18010b624
18010b5c6:	48 8b 03             	mov    (%rbx),%rax
18010b5c9:	48 39 58 08          	cmp    %rbx,0x8(%rax)
18010b5cd:	75 55                	jne    0x18010b624
18010b5cf:	48 89 45 17          	mov    %rax,0x17(%rbp)
18010b5d3:	48 8d 4d 17          	lea    0x17(%rbp),%rcx
18010b5d7:	48 89 48 08          	mov    %rcx,0x8(%rax)
18010b5db:	48 8b 07             	mov    (%rdi),%rax
18010b5de:	48 85 c0             	test   %rax,%rax
18010b5e1:	75 19                	jne    0x18010b5fc
18010b5e3:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
18010b5e7:	e8 10 ea f8 ff       	call   0x180099ffc
18010b5ec:	48 8b 07             	mov    (%rdi),%rax
18010b5ef:	48 85 c0             	test   %rax,%rax
18010b5f2:	75 08                	jne    0x18010b5fc
18010b5f4:	48 8b cb             	mov    %rbx,%rcx
18010b5f7:	e8 00 ea f8 ff       	call   0x180099ffc
18010b5fc:	48 8b 5d 17          	mov    0x17(%rbp),%rbx
18010b600:	48 8d 45 17          	lea    0x17(%rbp),%rax
18010b604:	48 3b d8             	cmp    %rax,%rbx
18010b607:	75 b3                	jne    0x18010b5bc
18010b609:	48 8b 45 ff          	mov    -0x1(%rbp),%rax
18010b60d:	48 85 c0             	test   %rax,%rax
18010b610:	74 a2                	je     0x18010b5b4
18010b612:	48 83 3f 00          	cmpq   $0x0,(%rdi)
18010b616:	75 08                	jne    0x18010b620
18010b618:	48 8b c8             	mov    %rax,%rcx
18010b61b:	e8 dc e9 f8 ff       	call   0x180099ffc
18010b620:	33 c0                	xor    %eax,%eax
18010b622:	eb 90                	jmp    0x18010b5b4
18010b624:	b9 03 00 00 00       	mov    $0x3,%ecx
18010b629:	cd 29                	int    $0x29
18010b62b:	b8 01 00 00 c0       	mov    $0xc0000001,%eax
18010b630:	4c 8d 9c 24 90 00 00 	lea    0x90(%rsp),%r11
18010b637:	00
18010b638:	49 8b 5b 38          	mov    0x38(%r11),%rbx
18010b63c:	49 8b 73 40          	mov    0x40(%r11),%rsi
18010b640:	49 8b 7b 48          	mov    0x48(%r11),%rdi
18010b644:	49 8b e3             	mov    %r11,%rsp
18010b647:	41 5f                	pop    %r15
18010b649:	41 5e                	pop    %r14
18010b64b:	41 5d                	pop    %r13
18010b64d:	41 5c                	pop    %r12
18010b64f:	5d                   	pop    %rbp
18010b650:	c3                   	ret
18010b651:	cc                   	int3
18010b652:	cc                   	int3
18010b653:	cc                   	int3
18010b654:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)