1800a408c:	0f 84 e0 00 00 00    	je     0x1800a4172
1800a4092:	41 0f b7 16          	movzwl (%r14),%edx
1800a4096:	8b fe                	mov    %esi,%edi
1800a4098:	8b ee                	mov    %esi,%ebp
1800a409a:	41 b8 20 00 00 00    	mov    $0x20,%r8d
1800a40a0:	66 85 d2             	test   %dx,%dx
1800a40a3:	0f 84 8b 00 00 00    	je     0x1800a4134
1800a40a9:	49 8b f6             	mov    %r14,%rsi
1800a40ac:	66 83 fa 26          	cmp    $0x26,%dx
1800a40b0:	74 41                	je     0x1800a40f3
1800a40b2:	0f b7 ca             	movzwl %dx,%ecx
1800a40b5:	e8 56 2c 00 00       	call   0x1800a6d10
1800a40ba:	33 f6                	xor    %esi,%esi
1800a40bc:	85 c0                	test   %eax,%eax
1800a40be:	74 26                	je     0x1800a40e6
1800a40c0:	45 85 e4             	test   %r12d,%r12d
1800a40c3:	74 14                	je     0x1800a40d9
1800a40c5:	45 85 ff             	test   %r15d,%r15d
1800a40c8:	75 56                	jne    0x1800a4120
1800a40ca:	8b c7                	mov    %edi,%eax
1800a40cc:	44 8d 7e 01          	lea    0x1(%rsi),%r15d
1800a40d0:	ff c7                	inc    %edi
1800a40d2:	66 44 89 04 43       	mov    %r8w,(%rbx,%rax,2)
1800a40d7:	eb 47                	jmp    0x1800a4120
1800a40d9:	85 c0                	test   %eax,%eax
1800a40db:	74 09                	je     0x1800a40e6
1800a40dd:	45 85 ed             	test   %r13d,%r13d
1800a40e0:	74 04                	je     0x1800a40e6
1800a40e2:	41 0f b7 d0          	movzwl %r8w,%edx
1800a40e6:	8b c7                	mov    %edi,%eax
1800a40e8:	44 8b fe             	mov    %esi,%r15d
1800a40eb:	ff c7                	inc    %edi
1800a40ed:	66 89 14 43          	mov    %dx,(%rbx,%rax,2)
1800a40f1:	eb 2d                	jmp    0x1800a4120
1800a40f3:	48 8b ce             	mov    %rsi,%rcx
1800a40f6:	e8 d1 fc ff ff       	call   0x1800a3dcc
1800a40fb:	8b cf                	mov    %edi,%ecx
1800a40fd:	ff c7                	inc    %edi
1800a40ff:	66 89 04 4b          	mov    %ax,(%rbx,%rcx,2)
1800a4103:	0f b7 06             	movzwl (%rsi),%eax
1800a4106:	66 83 f8 3b          	cmp    $0x3b,%ax
1800a410a:	74 0e                	je     0x1800a411a
1800a410c:	66 85 c0             	test   %ax,%ax
1800a410f:	74 09                	je     0x1800a411a
1800a4111:	ff c5                	inc    %ebp
1800a4113:	41 0f b7 04 6e       	movzwl (%r14,%rbp,2),%eax
1800a4118:	eb ec                	jmp    0x1800a4106
1800a411a:	41 b8 20 00 00 00    	mov    $0x20,%r8d
1800a4120:	ff c5                	inc    %ebp
1800a4122:	49 8d 34 6e          	lea    (%r14,%rbp,2),%rsi
1800a4126:	0f b7 16             	movzwl (%rsi),%edx
1800a4129:	66 85 d2             	test   %dx,%dx
1800a412c:	0f 85 7a ff ff ff    	jne    0x1800a40ac
1800a4132:	33 f6                	xor    %esi,%esi
1800a4134:	8b c7                	mov    %edi,%eax
1800a4136:	49 8b c8             	mov    %r8,%rcx
1800a4139:	66 89 34 43          	mov    %si,(%rbx,%rax,2)
1800a413d:	e8 0e 5d ff ff       	call   0x180099e50
1800a4142:	48 85 c0             	test   %rax,%rax
1800a4145:	74 1b                	je     0x1800a4162
1800a4147:	48 8d 0d 12 03 0a 00 	lea    0xa0312(%rip),%rcx        # 0x180144460
1800a414e:	c7 40 08 01 00 00 00 	movl   $0x1,0x8(%rax)
1800a4155:	48 89 08             	mov    %rcx,(%rax)
1800a4158:	48 89 58 10          	mov    %rbx,0x10(%rax)
1800a415c:	44 89 60 18          	mov    %r12d,0x18(%rax)
1800a4160:	eb 03                	jmp    0x1800a4165
1800a4162:	48 8b c6             	mov    %rsi,%rax
1800a4165:	48 85 c0             	test   %rax,%rax
1800a4168:	75 0a                	jne    0x1800a4174
1800a416a:	48 8b cb             	mov    %rbx,%rcx
1800a416d:	e8 8a 5e ff ff       	call   0x180099ffc
1800a4172:	33 c0                	xor    %eax,%eax
1800a4174:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
1800a4179:	48 8b 6c 24 58       	mov    0x58(%rsp),%rbp
1800a417e:	48 8b 74 24 60       	mov    0x60(%rsp),%rsi
1800a4183:	48 83 c4 20          	add    $0x20,%rsp
1800a4187:	41 5f                	pop    %r15
1800a4189:	41 5e                	pop    %r14
1800a418b:	41 5d                	pop    %r13
1800a418d:	41 5c                	pop    %r12
1800a418f:	5f                   	pop    %rdi
1800a4190:	c3                   	ret
1800a4191:	cc                   	int3
1800a4192:	cc                   	int3
1800a4193:	cc                   	int3
1800a4194:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1800a4199:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
1800a419e:	55                   	push   %rbp
1800a419f:	56                   	push   %rsi
1800a41a0:	57                   	push   %rdi
1800a41a1:	41 54                	push   %r12
1800a41a3:	41 55                	push   %r13
1800a41a5:	41 56                	push   %r14
1800a41a7:	41 57                	push   %r15
1800a41a9:	48 83 ec 40          	sub    $0x40,%rsp
1800a41ad:	41 8b 40 04          	mov    0x4(%r8),%eax
1800a41b1:	49 8b f9             	mov    %r9,%rdi
1800a41b4:	44 8b 4a 04          	mov    0x4(%rdx),%r9d
1800a41b8:	4d 8b f8             	mov    %r8,%r15
1800a41bb:	48 8b 59 10          	mov    0x10(%rcx),%rbx
1800a41bf:	4c 8b ea             	mov    %rdx,%r13
1800a41c2:	45 8b c1             	mov    %r9d,%r8d
1800a41c5:	41 3b c1             	cmp    %r9d,%eax
1800a41c8:	73 0b                	jae    0x1800a41d5
1800a41ca:	45 89 4f 04          	mov    %r9d,0x4(%r15)
1800a41ce:	41 8b c1             	mov    %r9d,%eax
1800a41d1:	44 8b 42 04          	mov    0x4(%rdx),%r8d
1800a41d5:	8b 6a 0c             	mov    0xc(%rdx),%ebp
1800a41d8:	45 33 f6             	xor    %r14d,%r14d
1800a41db:	8b d5                	mov    %ebp,%edx
1800a41dd:	2b e8                	sub    %eax,%ebp
1800a41df:	41 2b d0             	sub    %r8d,%edx
1800a41e2:	89 ac 24 88 00 00 00 	mov    %ebp,0x88(%rsp)
1800a41e9:	89 54 24 20          	mov    %edx,0x20(%rsp)
1800a41ed:	44 39 71 18          	cmp    %r14d,0x18(%rcx)
1800a41f1:	74 23                	je     0x1800a4216
1800a41f3:	41 3b c0             	cmp    %r8d,%eax
1800a41f6:	75 1e                	jne    0x1800a4216
1800a41f8:	0f b7 0b             	movzwl (%rbx),%ecx
1800a41fb:	e8 10 2b 00 00       	call   0x1800a6d10
1800a4200:	85 c0                	test   %eax,%eax
1800a4202:	74 12                	je     0x1800a4216
1800a4204:	48 8d 53 02          	lea    0x2(%rbx),%rdx
1800a4208:	0f b7 0a             	movzwl (%rdx),%ecx
1800a420b:	e8 00 2b 00 00       	call   0x1800a6d10
1800a4210:	85 c0                	test   %eax,%eax
1800a4212:	48 0f 44 da          	cmove  %rdx,%rbx
1800a4216:	48 8b 0d bb 07 10 00 	mov    0x1007bb(%rip),%rcx        # 0x1801a49d8
1800a421d:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
1800a4222:	ba 05 00 00 12       	mov    $0x12000005,%edx
1800a4227:	c6 84 24 80 00 00 00 	movb   $0x1,0x80(%rsp)
1800a422e:	01
1800a422f:	e8 24 83 fd ff       	call   0x18007c558
1800a4234:	85 c0                	test   %eax,%eax
1800a4236:	78 63                	js     0x1800a429b
1800a4238:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
1800a423d:	48 8d 15 74 ad 0a 00 	lea    0xaad74(%rip),%rdx        # 0x18014efb8
1800a4244:	0f b7 01             	movzwl (%rcx),%eax
1800a4247:	66 89 44 24 24       	mov    %ax,0x24(%rsp)
1800a424c:	0f b7 41 02          	movzwl 0x2(%rcx),%eax
1800a4250:	48 8d 4c 24 24       	lea    0x24(%rsp),%rcx
1800a4255:	66 89 44 24 26       	mov    %ax,0x26(%rsp)
1800a425a:	66 44 89 74 24 28    	mov    %r14w,0x28(%rsp)
1800a4260:	e8 87 6b 08 00       	call   0x18012adec
1800a4265:	85 c0                	test   %eax,%eax
1800a4267:	74 2a                	je     0x1800a4293
1800a4269:	48 8d 15 6c ad 0a 00 	lea    0xaad6c(%rip),%rdx        # 0x18014efdc
1800a4270:	48 8d 4c 24 24       	lea    0x24(%rsp),%rcx
1800a4275:	e8 72 6b 08 00       	call   0x18012adec
1800a427a:	85 c0                	test   %eax,%eax
1800a427c:	74 15                	je     0x1800a4293
1800a427e:	48 8d 15 ff e3 0a 00 	lea    0xae3ff(%rip),%rdx        # 0x180152684
1800a4285:	48 8d 4c 24 24       	lea    0x24(%rsp),%rcx
1800a428a:	e8 5d 6b 08 00       	call   0x18012adec
1800a428f:	85 c0                	test   %eax,%eax
1800a4291:	75 08                	jne    0x1800a429b
1800a4293:	44 88 b4 24 80 00 00 	mov    %r14b,0x80(%rsp)
1800a429a:	00
1800a429b:	66 44 39 33          	cmp    %r14w,(%rbx)
1800a429f:	0f 84 24 02 00 00    	je     0x1800a44c9
1800a42a5:	48 8b 07             	mov    (%rdi),%rax
1800a42a8:	48 8b cf             	mov    %rdi,%rcx
1800a42ab:	48 8b 40 20          	mov    0x20(%rax),%rax
1800a42af:	ff d0                	call   *%rax
1800a42b1:	0f 1f 00             	nopl   (%rax)
1800a42b4:	41 03 07             	add    (%r15),%eax
1800a42b7:	41 3b 45 08          	cmp    0x8(%r13),%eax
1800a42bb:	0f 87 08 02 00 00    	ja     0x1800a44c9
1800a42c1:	0f b7 0b             	movzwl (%rbx),%ecx
1800a42c4:	33 c0                	xor    %eax,%eax
1800a42c6:	45 8b e6             	mov    %r14d,%r12d
1800a42c9:	48 8b f3             	mov    %rbx,%rsi
1800a42cc:	4c 8b f3             	mov    %rbx,%r14
1800a42cf:	38 84 24 80 00 00 00 	cmp    %al,0x80(%rsp)
1800a42d6:	0f 84 ba 00 00 00    	je     0x1800a4396
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