1800a42dc:	66 85 c9             	test   %cx,%cx
1800a42df:	74 5a                	je     0x1800a433b
1800a42e1:	48 8b 07             	mov    (%rdi),%rax
1800a42e4:	0f b7 d1             	movzwl %cx,%edx
1800a42e7:	48 8b cf             	mov    %rdi,%rcx
1800a42ea:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a42ee:	ff d0                	call   *%rax
1800a42f0:	0f 1f 00             	nopl   (%rax)
1800a42f3:	41 03 c4             	add    %r12d,%eax
1800a42f6:	3b c5                	cmp    %ebp,%eax
1800a42f8:	77 34                	ja     0x1800a432e
1800a42fa:	48 8b 07             	mov    (%rdi),%rax
1800a42fd:	48 8b cf             	mov    %rdi,%rcx
1800a4300:	41 0f b7 16          	movzwl (%r14),%edx
1800a4304:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a4308:	ff d0                	call   *%rax
1800a430a:	0f 1f 00             	nopl   (%rax)
1800a430d:	49 83 c6 02          	add    $0x2,%r14
1800a4311:	44 03 e0             	add    %eax,%r12d
1800a4314:	41 0f b7 0e          	movzwl (%r14),%ecx
1800a4318:	e8 f3 29 00 00       	call   0x1800a6d10
1800a431d:	85 c0                	test   %eax,%eax
1800a431f:	75 05                	jne    0x1800a4326
1800a4321:	66 85 c9             	test   %cx,%cx
1800a4324:	75 bb                	jne    0x1800a42e1
1800a4326:	49 8b f6             	mov    %r14,%rsi
1800a4329:	66 85 c9             	test   %cx,%cx
1800a432c:	75 b3                	jne    0x1800a42e1
1800a432e:	4c 8b bc 24 90 00 00 	mov    0x90(%rsp),%r15
1800a4335:	00
1800a4336:	48 3b f3             	cmp    %rbx,%rsi
1800a4339:	75 0a                	jne    0x1800a4345
1800a433b:	41 8b 45 04          	mov    0x4(%r13),%eax
1800a433f:	41 39 47 04          	cmp    %eax,0x4(%r15)
1800a4343:	74 56                	je     0x1800a439b
1800a4345:	48 8b 07             	mov    (%rdi),%rax
1800a4348:	48 8b cf             	mov    %rdi,%rcx
1800a434b:	48 8b 40 20          	mov    0x20(%rax),%rax
1800a434f:	ff d0                	call   *%rax
1800a4351:	0f 1f 00             	nopl   (%rax)
1800a4354:	41 03 07             	add    (%r15),%eax
1800a4357:	41 3b 45 08          	cmp    0x8(%r13),%eax
1800a435b:	76 41                	jbe    0x1800a439e
1800a435d:	eb 3c                	jmp    0x1800a439b
1800a435f:	48 8b 07             	mov    (%rdi),%rax
1800a4362:	0f b7 d1             	movzwl %cx,%edx
1800a4365:	48 8b cf             	mov    %rdi,%rcx
1800a4368:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a436c:	ff d0                	call   *%rax
1800a436e:	0f 1f 00             	nopl   (%rax)
1800a4371:	41 03 c4             	add    %r12d,%eax
1800a4374:	3b c5                	cmp    %ebp,%eax
1800a4376:	77 23                	ja     0x1800a439b
1800a4378:	48 8b 07             	mov    (%rdi),%rax
1800a437b:	48 8b cf             	mov    %rdi,%rcx
1800a437e:	41 0f b7 16          	movzwl (%r14),%edx
1800a4382:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a4386:	ff d0                	call   *%rax
1800a4388:	0f 1f 00             	nopl   (%rax)
1800a438b:	44 03 e0             	add    %eax,%r12d
1800a438e:	49 83 c6 02          	add    $0x2,%r14
1800a4392:	41 0f b7 0e          	movzwl (%r14),%ecx
1800a4396:	66 85 c9             	test   %cx,%cx
1800a4399:	75 c4                	jne    0x1800a435f
1800a439b:	49 8b f6             	mov    %r14,%rsi
1800a439e:	33 c0                	xor    %eax,%eax
1800a43a0:	48 8b ee             	mov    %rsi,%rbp
1800a43a3:	48 2b eb             	sub    %rbx,%rbp
1800a43a6:	44 8b f0             	mov    %eax,%r14d
1800a43a9:	48 ff c5             	inc    %rbp
1800a43ac:	48 d1 ed             	shr    $1,%rbp
1800a43af:	48 3b de             	cmp    %rsi,%rbx
1800a43b2:	48 0f 47 e8          	cmova  %rax,%rbp
1800a43b6:	48 85 ed             	test   %rbp,%rbp
1800a43b9:	74 37                	je     0x1800a43f2
1800a43bb:	48 8b 07             	mov    (%rdi),%rax
1800a43be:	48 8b cf             	mov    %rdi,%rcx
1800a43c1:	0f b7 13             	movzwl (%rbx),%edx
1800a43c4:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800a43cb:	ff d0                	call   *%rax
1800a43cd:	0f 1f 00             	nopl   (%rax)
1800a43d0:	48 8b 07             	mov    (%rdi),%rax
1800a43d3:	48 8b cf             	mov    %rdi,%rcx
1800a43d6:	0f b7 13             	movzwl (%rbx),%edx
1800a43d9:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a43dd:	ff d0                	call   *%rax
1800a43df:	0f 1f 00             	nopl   (%rax)
1800a43e2:	41 01 47 04          	add    %eax,0x4(%r15)
1800a43e6:	48 8d 5b 02          	lea    0x2(%rbx),%rbx
1800a43ea:	49 ff c6             	inc    %r14
1800a43ed:	4c 3b f5             	cmp    %rbp,%r14
1800a43f0:	72 c9                	jb     0x1800a43bb
1800a43f2:	0f b7 0e             	movzwl (%rsi),%ecx
1800a43f5:	e8 16 29 00 00       	call   0x1800a6d10
1800a43fa:	45 33 f6             	xor    %r14d,%r14d
1800a43fd:	85 c0                	test   %eax,%eax
1800a43ff:	74 52                	je     0x1800a4453
1800a4401:	48 8b 07             	mov    (%rdi),%rax
1800a4404:	41 8d 56 20          	lea    0x20(%r14),%edx
1800a4408:	48 8b cf             	mov    %rdi,%rcx
1800a440b:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a440f:	ff d0                	call   *%rax
1800a4411:	0f 1f 00             	nopl   (%rax)
1800a4414:	8b ac 24 88 00 00 00 	mov    0x88(%rsp),%ebp
1800a441b:	41 03 c4             	add    %r12d,%eax
1800a441e:	3b c5                	cmp    %ebp,%eax
1800a4420:	77 2b                	ja     0x1800a444d
1800a4422:	48 8b 07             	mov    (%rdi),%rax
1800a4425:	48 8b cf             	mov    %rdi,%rcx
1800a4428:	0f b7 16             	movzwl (%rsi),%edx
1800a442b:	48 8b 80 80 00 00 00 	mov    0x80(%rax),%rax
1800a4432:	ff d0                	call   *%rax
1800a4434:	0f 1f 00             	nopl   (%rax)
1800a4437:	48 8b 07             	mov    (%rdi),%rax
1800a443a:	48 8b cf             	mov    %rdi,%rcx
1800a443d:	0f b7 16             	movzwl (%rsi),%edx
1800a4440:	48 8b 40 28          	mov    0x28(%rax),%rax
1800a4444:	ff d0                	call   *%rax
1800a4446:	0f 1f 00             	nopl   (%rax)
1800a4449:	41 01 47 04          	add    %eax,0x4(%r15)
1800a444d:	48 83 c6 02          	add    $0x2,%rsi
1800a4451:	eb 07                	jmp    0x1800a445a
1800a4453:	8b ac 24 88 00 00 00 	mov    0x88(%rsp),%ebp
1800a445a:	41 8b 45 08          	mov    0x8(%r13),%eax
1800a445e:	41 39 07             	cmp    %eax,(%r15)
1800a4461:	73 66                	jae    0x1800a44c9
1800a4463:	0f b7 06             	movzwl (%rsi),%eax
1800a4466:	66 85 c0             	test   %ax,%ax
1800a4469:	74 52                	je     0x1800a44bd
1800a446b:	48 8b 07             	mov    (%rdi),%rax
1800a446e:	48 8b cf             	mov    %rdi,%rcx
1800a4471:	48 8b 40 20          	mov    0x20(%rax),%rax
1800a4475:	ff d0                	call   *%rax
1800a4477:	0f 1f 00             	nopl   (%rax)
1800a447a:	41 03 07             	add    (%r15),%eax
1800a447d:	41 3b 45 08          	cmp    0x8(%r13),%eax
1800a4481:	73 46                	jae    0x1800a44c9
1800a4483:	48 8b 07             	mov    (%rdi),%rax
1800a4486:	48 8b cf             	mov    %rdi,%rcx
1800a4489:	48 8b 40 20          	mov    0x20(%rax),%rax
1800a448d:	ff d0                	call   *%rax
1800a448f:	0f 1f 00             	nopl   (%rax)
1800a4492:	41 01 07             	add    %eax,(%r15)
1800a4495:	48 8b cf             	mov    %rdi,%rcx
1800a4498:	45 8b 45 04          	mov    0x4(%r13),%r8d
1800a449c:	41 8b 17             	mov    (%r15),%edx
1800a449f:	45 89 47 04          	mov    %r8d,0x4(%r15)
1800a44a3:	48 8b 07             	mov    (%rdi),%rax
1800a44a6:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a44aa:	ff d0                	call   *%rax
1800a44ac:	0f 1f 00             	nopl   (%rax)
1800a44af:	8b 6c 24 20          	mov    0x20(%rsp),%ebp
1800a44b3:	0f b7 06             	movzwl (%rsi),%eax
1800a44b6:	89 ac 24 88 00 00 00 	mov    %ebp,0x88(%rsp)
1800a44bd:	48 8b de             	mov    %rsi,%rbx
1800a44c0:	66 85 c0             	test   %ax,%ax
1800a44c3:	0f 85 dc fd ff ff    	jne    0x1800a42a5
1800a44c9:	48 8b 9c 24 98 00 00 	mov    0x98(%rsp),%rbx
1800a44d0:	00
1800a44d1:	48 83 c4 40          	add    $0x40,%rsp
1800a44d5:	41 5f                	pop    %r15
1800a44d7:	41 5e                	pop    %r14
1800a44d9:	41 5d                	pop    %r13
1800a44db:	41 5c                	pop    %r12
1800a44dd:	5f                   	pop    %rdi
1800a44de:	5e                   	pop    %rsi
1800a44df:	5d                   	pop    %rbp
1800a44e0:	c3                   	ret
1800a44e1:	cc                   	int3
1800a44e2:	cc                   	int3
1800a44e3:	cc                   	int3
1800a44e4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800a44e9:	57                   	push   %rdi
1800a44ea:	48 83 ec 20          	sub    $0x20,%rsp
1800a44ee:	48 8d 05 03 fe 09 00 	lea    0x9fe03(%rip),%rax        # 0x1801442f8
1800a44f5:	48 8b f9             	mov    %rcx,%rdi
1800a44f8:	48 89 01             	mov    %rax,(%rcx)
1800a44fb:	8b da                	mov    %edx,%ebx
1800a44fd:	48 8b 49 10          	mov    0x10(%rcx),%rcx
1800a4501:	48 8b 01             	mov    (%rcx),%rax
1800a4504:	48 8b 40 08          	mov    0x8(%rax),%rax
1800a4508:	ff d0                	call   *%rax
1800a450a:	0f 1f 00             	nopl   (%rax)
1800a450d:	48 8d 05 bc fb 09 00 	lea    0x9fbbc(%rip),%rax        # 0x1801440d0
1800a4514:	48 89 07             	mov    %rax,(%rdi)
1800a4517:	f6 c3 01             	test   $0x1,%bl
1800a451a:	74 08                	je     0x1800a4524
1800a451c:	48 8b cf             	mov    %rdi,%rcx
1800a451f:	e8 d8 5a ff ff       	call   0x180099ffc
1800a4524:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800a4529:	48 8b c7             	mov    %rdi,%rax
1800a452c:	48 83 c4 20          	add    $0x20,%rsp
1800a4530:	5f                   	pop    %rdi
1800a4531:	c3                   	ret
1800a4532:	cc                   	int3
1800a4533:	cc                   	int3
1800a4534:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1800a4539:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1800a453e:	57                   	push   %rdi
1800a453f:	48 83 ec 20          	sub    $0x20,%rsp
1800a4543:	48 8b 01             	mov    (%rcx),%rax
1800a4546:	48 8b fa             	mov    %rdx,%rdi
1800a4549:	48 8b f1             	mov    %rcx,%rsi
1800a454c:	48 8b 40 20          	mov    0x20(%rax),%rax
1800a4550:	ff d0                	call   *%rax
1800a4552:	0f 1f 00             	nopl   (%rax)
1800a4555:	48 8b c8             	mov    %rax,%rcx
1800a4558:	41 b8 01 00 00 00    	mov    $0x1,%r8d
1800a455e:	48 8b d7             	mov    %rdi,%rdx
1800a4561:	e8 ee b7 ff ff       	call   0x18009fd54
1800a4566:	48 8b d8             	mov    %rax,%rbx
1800a4569:	48 85 c0             	test   %rax,%rax
1800a456c:	0f 84 81 00 00 00    	je     0x1800a45f3
1800a4572:	48 8b 07             	mov    (%rdi),%rax
1800a4575:	48 8b cf             	mov    %rdi,%rcx
1800a4578:	48 8b 40 50          	mov    0x50(%rax),%rax
1800a457c:	ff d0                	call   *%rax
1800a457e:	0f 1f 00             	nopl   (%rax)
1800a4581:	48 8d 15 f0 e0 0a 00 	lea    0xae0f0(%rip),%rdx        # 0x180152678
1800a4588:	66 89 44 24 30       	mov    %ax,0x30(%rsp)
1800a458d:	48 8b ce             	mov    %rsi,%rcx
1800a4590:	0f b7 f8             	movzwl %ax,%edi
1800a4593:	e8 c8 6a 07 00       	call   0x18011b060
1800a4598:	48 85 c0             	test   %rax,%rax
1800a459b:	74 1a                	je     0x1800a45b7
1800a459d:	ba 01 00 00 00       	mov    $0x1,%edx
1800a45a2:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
1800a45a7:	44 8b c2             	mov    %edx,%r8d
1800a45aa:	48 8b c8             	mov    %rax,%rcx
1800a45ad:	e8 72 1d 00 00       	call   0x1800a6324
1800a45b2:	0f b7 7c 24 30       	movzwl 0x30(%rsp),%edi
1800a45b7:	b9 20 00 00 00       	mov    $0x20,%ecx
1800a45bc:	e8 8f 58 ff ff       	call   0x180099e50
1800a45c1:	48 85 c0             	test   %rax,%rax
1800a45c4:	74 19                	je     0x1800a45df
1800a45c6:	48 8d 0d 2b fd 09 00 	lea    0x9fd2b(%rip),%rcx        # 0x1801442f8
1800a45cd:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%rax)
1800a45d4:	48 89 08             	mov    %rcx,(%rax)
1800a45d7:	48 89 58 10          	mov    %rbx,0x10(%rax)
1800a45db:	66 89 78 18          	mov    %di,0x18(%rax)
1800a45df:	48 85 c0             	test   %rax,%rax
1800a45e2:	75 11                	jne    0x1800a45f5
1800a45e4:	48 8b 03             	mov    (%rbx),%rax
1800a45e7:	48 8b cb             	mov    %rbx,%rcx
1800a45ea:	48 8b 40 08          	mov    0x8(%rax),%rax
1800a45ee:	ff d0                	call   *%rax
1800a45f0:	0f 1f 00             	nopl   (%rax)
1800a45f3:	33 c0                	xor    %eax,%eax
1800a45f5:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
1800a45fa:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1800a45ff:	48 83 c4 20          	add    $0x20,%rsp
1800a4603:	5f                   	pop    %rdi
1800a4604:	c3                   	ret
1800a4605:	cc                   	int3
1800a4606:	cc                   	int3
1800a4607:	cc                   	int3
1800a4608:	48 8b c4             	mov    %rsp,%rax
1800a460b:	48 89 58 08          	mov    %rbx,0x8(%rax)
1800a460f:	48 89 68 10          	mov    %rbp,0x10(%rax)
1800a4613:	48 89 70 18          	mov    %rsi,0x18(%rax)
1800a4617:	48 89 78 20          	mov    %rdi,0x20(%rax)
1800a461b:	41 56                	push   %r14
1800a461d:	48 83 ec 20          	sub    $0x20,%rsp
1800a4621:	49 8b 01             	mov    (%r9),%rax
1800a4624:	48 8b d9             	mov    %rcx,%rbx
1800a4627:	49 8b c9             	mov    %r9,%rcx
1800a462a:	4d 8b f1             	mov    %r9,%r14
1800a462d:	49 8b f0             	mov    %r8,%rsi
1800a4630:	48 8b ea             	mov    %rdx,%rbp
1800a4633:	48 8b 40 50          	mov    0x50(%rax),%rax
1800a4637:	ff d0                	call   *%rax
1800a4639:	0f 1f 00             	nopl   (%rax)
1800a463c:	0f b7 53 18          	movzwl 0x18(%rbx),%edx
1800a4640:	0f b7 f8             	movzwl %ax,%edi
1800a4643:	49 8b 06             	mov    (%r14),%rax
1800a4646:	49 8b ce             	mov    %r14,%rcx
1800a4649:	48 8b 40 48          	mov    0x48(%rax),%rax
1800a464d:	ff d0                	call   *%rax
1800a464f:	0f 1f 00             	nopl   (%rax)
1800a4652:	49 8b 06             	mov    (%r14),%rax
1800a4655:	49 8b ce             	mov    %r14,%rcx
1800a4658:	44 8b 46 04          	mov    0x4(%rsi),%r8d
1800a465c:	8b 16                	mov    (%rsi),%edx
1800a465e:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a4662:	ff d0                	call   *%rax
1800a4664:	0f 1f 00             	nopl   (%rax)
1800a4667:	49 8b 06             	mov    (%r14),%rax
1800a466a:	49 8b ce             	mov    %r14,%rcx
1800a466d:	48 8b 40 68          	mov    0x68(%rax),%rax
1800a4671:	ff d0                	call   *%rax
1800a4673:	0f 1f 00             	nopl   (%rax)
1800a4676:	49 8b 06             	mov    (%r14),%rax
1800a4679:	49 8b ce             	mov    %r14,%rcx
1800a467c:	44 8b 46 04          	mov    0x4(%rsi),%r8d
1800a4680:	8b 16                	mov    (%rsi),%edx
1800a4682:	48 8b 40 58          	mov    0x58(%rax),%rax
1800a4686:	ff d0                	call   *%rax
1800a4688:	0f 1f 00             	nopl   (%rax)
1800a468b:	48 8b 4b 10          	mov    0x10(%rbx),%rcx
1800a468f:	4d 8b ce             	mov    %r14,%r9
1800a4692:	4c 8b c6             	mov    %rsi,%r8
1800a4695:	48 8b d5             	mov    %rbp,%rdx
1800a4698:	48 8b 01             	mov    (%rcx),%rax
1800a469b:	48 8b 40 10          	mov    0x10(%rax),%rax
1800a469f:	ff d0                	call   *%rax
1800a46a1:	0f 1f 00             	nopl   (%rax)
1800a46a4:	49 8b 06             	mov    (%r14),%rax
1800a46a7:	0f b7 d7             	movzwl %di,%edx
1800a46aa:	49 8b ce             	mov    %r14,%rcx
1800a46ad:	48 8b 40 48          	mov    0x48(%rax),%rax
1800a46b1:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800a46b6:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1800a46bb:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1800a46c0:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
1800a46c5:	48 83 c4 20          	add    $0x20,%rsp
1800a46c9:	41 5e                	pop    %r14
1800a46cb:	48 ff e0             	rex.W jmp *%rax
1800a46ce:	cc                   	int3
1800a46cf:	cc                   	int3
1800a46d0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800a46d5:	57                   	push   %rdi
1800a46d6:	48 83 ec 20          	sub    $0x20,%rsp
1800a46da:	48 8d 05 87 fc 09 00 	lea    0x9fc87(%rip),%rax        # 0x180144368
1800a46e1:	48 8b f9             	mov    %rcx,%rdi
1800a46e4:	48 89 01             	mov    %rax,(%rcx)
1800a46e7:	8b da                	mov    %edx,%ebx
1800a46e9:	48 8b 49 10          	mov    0x10(%rcx),%rcx
1800a46ed:	e8 0a 59 ff ff       	call   0x180099ffc
1800a46f2:	48 8d 05 d7 f9 09 00 	lea    0x9f9d7(%rip),%rax        # 0x1801440d0
1800a46f9:	48 89 07             	mov    %rax,(%rdi)
1800a46fc:	f6 c3 01             	test   $0x1,%bl
1800a46ff:	74 08                	je     0x1800a4709
1800a4701:	48 8b cf             	mov    %rdi,%rcx
1800a4704:	e8 f3 58 ff ff       	call   0x180099ffc
1800a4709:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1800a470e:	48 8b c7             	mov    %rdi,%rax
1800a4711:	48 83 c4 20          	add    $0x20,%rsp
1800a4715:	5f                   	pop    %rdi
1800a4716:	c3                   	ret
1800a4717:	cc                   	int3
1800a4718:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1800a471d:	57                   	push   %rdi
1800a471e:	48 83 ec 20          	sub    $0x20,%rsp
1800a4722:	48 8d 05 1f fd 09 00 	lea    0x9fd1f(%rip),%rax        # 0x180144448
1800a4729:	48 8b f9             	mov    %rcx,%rdi
1800a472c:	48 89 01             	mov    %rax,(%rcx)
1800a472f:	8b da                	mov    %edx,%ebx
1800a4731:	48 8b 49 18          	mov    0x18(%rcx),%rcx
1800a4735:	48 8b 01             	mov    (%rcx),%rax
1800a4738:	48 8b 40 08          	mov    0x8(%rax),%rax