1400311ab:	48 85 f6             	test   %rsi,%rsi
1400311ae:	74 0a                	je     0x1400311ba
1400311b0:	e8 ef b1 00 00       	call   0x14003c3a4
1400311b5:	48 8b f8             	mov    %rax,%rdi
1400311b8:	eb 02                	jmp    0x1400311bc
1400311ba:	33 ff                	xor    %edi,%edi
1400311bc:	48 0f af dd          	imul   %rbp,%rbx
1400311c0:	48 8b ce             	mov    %rsi,%rcx
1400311c3:	48 8b d3             	mov    %rbx,%rdx
1400311c6:	e8 15 b2 00 00       	call   0x14003c3e0
1400311cb:	48 8b f0             	mov    %rax,%rsi
1400311ce:	48 85 c0             	test   %rax,%rax
1400311d1:	74 16                	je     0x1400311e9
1400311d3:	48 3b fb             	cmp    %rbx,%rdi
1400311d6:	73 11                	jae    0x1400311e9
1400311d8:	48 2b df             	sub    %rdi,%rbx
1400311db:	48 8d 0c 38          	lea    (%rax,%rdi,1),%rcx
1400311df:	4c 8b c3             	mov    %rbx,%r8
1400311e2:	33 d2                	xor    %edx,%edx
1400311e4:	e8 b7 65 ff ff       	call   0x1400277a0
1400311e9:	48 8b c6             	mov    %rsi,%rax
1400311ec:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1400311f1:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
1400311f6:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
1400311fb:	48 83 c4 20          	add    $0x20,%rsp
1400311ff:	5f                   	pop    %rdi
140031200:	c3                   	ret
140031201:	cc                   	int3
140031202:	cc                   	int3
140031203:	cc                   	int3
140031204:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140031209:	33 c0                	xor    %eax,%eax
14003120b:	49 8b d8             	mov    %r8,%rbx
14003120e:	4c 8b d2             	mov    %rdx,%r10
140031211:	48 85 c9             	test   %rcx,%rcx
140031214:	75 2c                	jne    0x140031242
140031216:	49 8b 08             	mov    (%r8),%rcx
140031219:	eb 27                	jmp    0x140031242
14003121b:	4d 8b ca             	mov    %r10,%r9
14003121e:	66 41 39 02          	cmp    %ax,(%r10)
140031222:	74 26                	je     0x14003124a
140031224:	45 0f b7 02          	movzwl (%r10),%r8d
140031228:	66 44 3b c2          	cmp    %dx,%r8w
14003122c:	74 10                	je     0x14003123e
14003122e:	49 83 c1 02          	add    $0x2,%r9
140031232:	45 0f b7 01          	movzwl (%r9),%r8d
140031236:	66 45 85 c0          	test   %r8w,%r8w
14003123a:	74 0e                	je     0x14003124a
14003123c:	eb ea                	jmp    0x140031228
14003123e:	48 83 c1 02          	add    $0x2,%rcx
140031242:	0f b7 11             	movzwl (%rcx),%edx
140031245:	66 85 d2             	test   %dx,%dx
140031248:	75 d1                	jne    0x14003121b
14003124a:	4c 8b c9             	mov    %rcx,%r9
14003124d:	66 39 01             	cmp    %ax,(%rcx)
140031250:	74 45                	je     0x140031297
140031252:	41 0f b7 12          	movzwl (%r10),%edx
140031256:	4d 8b da             	mov    %r10,%r11
140031259:	66 85 d2             	test   %dx,%dx
14003125c:	74 1f                	je     0x14003127d
14003125e:	44 0f b7 c2          	movzwl %dx,%r8d
140031262:	41 0f b7 d0          	movzwl %r8w,%edx
140031266:	66 44 3b 01          	cmp    (%rcx),%r8w
14003126a:	74 11                	je     0x14003127d
14003126c:	49 83 c3 02          	add    $0x2,%r11
140031270:	41 0f b7 13          	movzwl (%r11),%edx
140031274:	44 0f b7 c2          	movzwl %dx,%r8d
140031278:	66 85 d2             	test   %dx,%dx
14003127b:	75 e5                	jne    0x140031262
14003127d:	4c 8d 41 02          	lea    0x2(%rcx),%r8
140031281:	66 85 d2             	test   %dx,%dx
140031284:	75 0b                	jne    0x140031291
140031286:	49 8b c8             	mov    %r8,%rcx
140031289:	66 41 39 00          	cmp    %ax,(%r8)
14003128d:	75 c3                	jne    0x140031252
14003128f:	eb 06                	jmp    0x140031297
140031291:	66 89 01             	mov    %ax,(%rcx)
140031294:	49 8b c8             	mov    %r8,%rcx
140031297:	49 3b c9             	cmp    %r9,%rcx
14003129a:	48 89 0b             	mov    %rcx,(%rbx)
14003129d:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
1400312a2:	49 0f 45 c1          	cmovne %r9,%rax
1400312a6:	c3                   	ret
1400312a7:	cc                   	int3
1400312a8:	48 83 ec 28          	sub    $0x28,%rsp
1400312ac:	4d 85 c0             	test   %r8,%r8
1400312af:	75 17                	jne    0x1400312c8
1400312b1:	e8 82 a7 ff ff       	call   0x14002ba38
1400312b6:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
1400312bc:	e8 e3 a2 ff ff       	call   0x14002b5a4
1400312c1:	33 c0                	xor    %eax,%eax
1400312c3:	48 83 c4 28          	add    $0x28,%rsp
1400312c7:	c3                   	ret
1400312c8:	48 85 d2             	test   %rdx,%rdx
1400312cb:	74 e4                	je     0x1400312b1
1400312cd:	48 85 c9             	test   %rcx,%rcx
1400312d0:	75 05                	jne    0x1400312d7
1400312d2:	49 39 08             	cmp    %rcx,(%r8)
1400312d5:	74 da                	je     0x1400312b1
1400312d7:	48 83 c4 28          	add    $0x28,%rsp
1400312db:	e9 24 ff ff ff       	jmp    0x140031204
1400312e0:	40 55                	rex push %rbp
1400312e2:	41 56                	push   %r14
1400312e4:	41 57                	push   %r15
1400312e6:	48 83 ec 40          	sub    $0x40,%rsp
1400312ea:	48 8d 6c 24 30       	lea    0x30(%rsp),%rbp
1400312ef:	48 89 5d 30          	mov    %rbx,0x30(%rbp)
1400312f3:	48 89 75 38          	mov    %rsi,0x38(%rbp)
1400312f7:	48 89 7d 40          	mov    %rdi,0x40(%rbp)
1400312fb:	4c 89 65 48          	mov    %r12,0x48(%rbp)
1400312ff:	48 8b 05 12 0d 04 00 	mov    0x40d12(%rip),%rax        # 0x140072018
140031306:	48 33 c5             	xor    %rbp,%rax
140031309:	48 89 45 08          	mov    %rax,0x8(%rbp)
14003130d:	45 33 e4             	xor    %r12d,%r12d
140031310:	4d 8b f8             	mov    %r8,%r15
140031313:	48 8b f2             	mov    %rdx,%rsi
140031316:	48 8b f9             	mov    %rcx,%rdi
140031319:	48 85 c9             	test   %rcx,%rcx
14003131c:	75 18                	jne    0x140031336
14003131e:	e8 15 a7 ff ff       	call   0x14002ba38
140031323:	bb 16 00 00 00       	mov    $0x16,%ebx
140031328:	89 18                	mov    %ebx,(%rax)
14003132a:	e8 75 a2 ff ff       	call   0x14002b5a4
14003132f:	8b c3                	mov    %ebx,%eax
140031331:	e9 7c 01 00 00       	jmp    0x1400314b2
140031336:	e8 51 a4 ff ff       	call   0x14002b78c
14003133b:	48 3b c6             	cmp    %rsi,%rax
14003133e:	72 06                	jb     0x140031346
140031340:	66 44 89 27          	mov    %r12w,(%rdi)
140031344:	eb d8                	jmp    0x14003131e
140031346:	49 8b 07             	mov    (%r15),%rax
140031349:	48 8b 88 38 01 00 00 	mov    0x138(%rax),%rcx
140031350:	48 85 c9             	test   %rcx,%rcx
140031353:	74 4e                	je     0x1400313a3
140031355:	44 89 64 24 28       	mov    %r12d,0x28(%rsp)
14003135a:	41 83 c9 ff          	or     $0xffffffff,%r9d
14003135e:	4c 8b c7             	mov    %rdi,%r8
140031361:	4c 89 64 24 20       	mov    %r12,0x20(%rsp)
140031366:	ba 00 02 00 00       	mov    $0x200,%edx
14003136b:	e8 ec b0 00 00       	call   0x14003c45c
140031370:	4c 63 f0             	movslq %eax,%r14
140031373:	85 c0                	test   %eax,%eax
140031375:	75 3b                	jne    0x1400313b2
140031377:	e8 bc a6 ff ff       	call   0x14002ba38
14003137c:	bf 2a 00 00 00       	mov    $0x2a,%edi
140031381:	89 38                	mov    %edi,(%rax)
140031383:	e8 b0 a6 ff ff       	call   0x14002ba38
140031388:	8b 00                	mov    (%rax),%eax
14003138a:	e9 23 01 00 00       	jmp    0x1400314b2
14003138f:	8d 41 9f             	lea    -0x61(%rcx),%eax
140031392:	66 83 f8 19          	cmp    $0x19,%ax
140031396:	77 07                	ja     0x14003139f
140031398:	66 83 e9 20          	sub    $0x20,%cx
14003139c:	66 89 0f             	mov    %cx,(%rdi)
14003139f:	48 83 c7 02          	add    $0x2,%rdi
1400313a3:	0f b7 0f             	movzwl (%rdi),%ecx
1400313a6:	66 85 c9             	test   %cx,%cx
1400313a9:	75 e4                	jne    0x14003138f
1400313ab:	33 c0                	xor    %eax,%eax
1400313ad:	e9 00 01 00 00       	jmp    0x1400314b2
1400313b2:	49 8b c6             	mov    %r14,%rax
1400313b5:	49 3b f6             	cmp    %r14,%rsi
1400313b8:	73 13                	jae    0x1400313cd
1400313ba:	66 44 89 27          	mov    %r12w,(%rdi)
1400313be:	e8 75 a6 ff ff       	call   0x14002ba38
1400313c3:	bb 22 00 00 00       	mov    $0x22,%ebx
1400313c8:	e9 5b ff ff ff       	jmp    0x140031328
1400313cd:	48 03 c0             	add    %rax,%rax
1400313d0:	48 8d 48 10          	lea    0x10(%rax),%rcx
1400313d4:	48 3b c1             	cmp    %rcx,%rax
1400313d7:	48 1b d2             	sbb    %rdx,%rdx
1400313da:	48 23 d1             	and    %rcx,%rdx
1400313dd:	0f 84 a2 00 00 00    	je     0x140031485
1400313e3:	48 81 fa 00 04 00 00 	cmp    $0x400,%rdx
1400313ea:	77 31                	ja     0x14003141d
1400313ec:	48 8d 42 0f          	lea    0xf(%rdx),%rax
1400313f0:	48 3b c2             	cmp    %rdx,%rax
1400313f3:	77 0a                	ja     0x1400313ff
1400313f5:	48 b8 f0 ff ff ff ff 	movabs $0xffffffffffffff0,%rax
1400313fc:	ff ff 0f
1400313ff:	48 83 e0 f0          	and    $0xfffffffffffffff0,%rax
140031403:	e8 48 41 ff ff       	call   0x140025550
140031408:	48 2b e0             	sub    %rax,%rsp
14003140b:	48 8d 5c 24 30       	lea    0x30(%rsp),%rbx
140031410:	48 85 db             	test   %rbx,%rbx
140031413:	74 73                	je     0x140031488
140031415:	c7 03 cc cc 00 00    	movl   $0xcccc,(%rbx)
14003141b:	eb 16                	jmp    0x140031433
14003141d:	48 8b ca             	mov    %rdx,%rcx
140031420:	e8 a3 79 00 00       	call   0x140038dc8
140031425:	48 8b d8             	mov    %rax,%rbx
140031428:	48 85 c0             	test   %rax,%rax
14003142b:	74 0a                	je     0x140031437
14003142d:	c7 00 dd dd 00 00    	movl   $0xdddd,(%rax)
140031433:	48 83 c3 10          	add    $0x10,%rbx
140031437:	48 85 db             	test   %rbx,%rbx
14003143a:	74 4c                	je     0x140031488
14003143c:	49 8b 07             	mov    (%r15),%rax
14003143f:	41 83 c9 ff          	or     $0xffffffff,%r9d
140031443:	44 89 74 24 28       	mov    %r14d,0x28(%rsp)
140031448:	4c 8b c7             	mov    %rdi,%r8
14003144b:	ba 00 02 00 00       	mov    $0x200,%edx
140031450:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
140031455:	48 8b 88 38 01 00 00 	mov    0x138(%rax),%rcx
14003145c:	e8 fb af 00 00       	call   0x14003c45c
140031461:	85 c0                	test   %eax,%eax
140031463:	74 12                	je     0x140031477
140031465:	4c 8b c3             	mov    %rbx,%r8
140031468:	48 8b d6             	mov    %rsi,%rdx
14003146b:	48 8b cf             	mov    %rdi,%rcx
14003146e:	e8 89 fc ff ff       	call   0x1400310fc
140031473:	8b f8                	mov    %eax,%edi
140031475:	eb 23                	jmp    0x14003149a
140031477:	e8 bc a5 ff ff       	call   0x14002ba38
14003147c:	bf 2a 00 00 00       	mov    $0x2a,%edi
140031481:	89 38                	mov    %edi,(%rax)
140031483:	eb 1a                	jmp    0x14003149f
140031485:	49 8b dc             	mov    %r12,%rbx
140031488:	e8 ab a5 ff ff       	call   0x14002ba38
14003148d:	c7 00 0c 00 00 00    	movl   $0xc,(%rax)
140031493:	e8 a0 a5 ff ff       	call   0x14002ba38
140031498:	8b 38                	mov    (%rax),%edi
14003149a:	48 85 db             	test   %rbx,%rbx
14003149d:	74 11                	je     0x1400314b0
14003149f:	48 8d 4b f0          	lea    -0x10(%rbx),%rcx
1400314a3:	81 39 dd dd 00 00    	cmpl   $0xdddd,(%rcx)
1400314a9:	75 05                	jne    0x1400314b0
1400314ab:	e8 dc 78 00 00       	call   0x140038d8c
1400314b0:	8b c7                	mov    %edi,%eax
1400314b2:	48 8b 4d 08          	mov    0x8(%rbp),%rcx
1400314b6:	48 33 cd             	xor    %rbp,%rcx
1400314b9:	e8 42 36 ff ff       	call   0x140024b00
1400314be:	48 8b 5d 30          	mov    0x30(%rbp),%rbx
1400314c2:	48 8b 75 38          	mov    0x38(%rbp),%rsi
1400314c6:	48 8b 7d 40          	mov    0x40(%rbp),%rdi
1400314ca:	4c 8b 65 48          	mov    0x48(%rbp),%r12
1400314ce:	48 8d 65 10          	lea    0x10(%rbp),%rsp
1400314d2:	41 5f                	pop    %r15
1400314d4:	41 5e                	pop    %r14
1400314d6:	5d                   	pop    %rbp
1400314d7:	c3                   	ret
1400314d8:	45 33 c0             	xor    %r8d,%r8d
1400314db:	e9 00 00 00 00       	jmp    0x1400314e0
1400314e0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400314e5:	57                   	push   %rdi
1400314e6:	48 83 ec 40          	sub    $0x40,%rsp
1400314ea:	48 8b da             	mov    %rdx,%rbx
1400314ed:	48 8b f9             	mov    %rcx,%rdi
1400314f0:	49 8b d0             	mov    %r8,%rdx
1400314f3:	48 8d 4c 24 20       	lea    0x20(%rsp),%rcx
1400314f8:	e8 73 a9 ff ff       	call   0x14002be70
1400314fd:	4c 8d 44 24 28       	lea    0x28(%rsp),%r8
140031502:	48 8b d3             	mov    %rbx,%rdx
140031505:	48 8b cf             	mov    %rdi,%rcx
140031508:	e8 d3 fd ff ff       	call   0x1400312e0
14003150d:	80 7c 24 38 00       	cmpb   $0x0,0x38(%rsp)
140031512:	74 0c                	je     0x140031520
140031514:	48 8b 4c 24 20       	mov    0x20(%rsp),%rcx
140031519:	83 a1 a8 03 00 00 fd 	andl   $0xfffffffd,0x3a8(%rcx)
140031520:	48 8b 5c 24 50       	mov    0x50(%rsp),%rbx
140031525:	48 83 c4 40          	add    $0x40,%rsp
140031529:	5f                   	pop    %rdi
14003152a:	c3                   	ret
14003152b:	cc                   	int3
14003152c:	40 53                	rex push %rbx
14003152e:	48 83 ec 20          	sub    $0x20,%rsp
140031532:	33 db                	xor    %ebx,%ebx
140031534:	4c 8b c9             	mov    %rcx,%r9
140031537:	48 85 c9             	test   %rcx,%rcx
14003153a:	74 0d                	je     0x140031549
14003153c:	48 85 d2             	test   %rdx,%rdx
14003153f:	74 08                	je     0x140031549
140031541:	4d 85 c0             	test   %r8,%r8
140031544:	75 1c                	jne    0x140031562
140031546:	66 89 19             	mov    %bx,(%rcx)
140031549:	e8 ea a4 ff ff       	call   0x14002ba38
14003154e:	bb 16 00 00 00       	mov    $0x16,%ebx
140031553:	89 18                	mov    %ebx,(%rax)
140031555:	e8 4a a0 ff ff       	call   0x14002b5a4
14003155a:	8b c3                	mov    %ebx,%eax
14003155c:	48 83 c4 20          	add    $0x20,%rsp
140031560:	5b                   	pop    %rbx
140031561:	c3                   	ret
140031562:	66 39 19             	cmp    %bx,(%rcx)
140031565:	74 10                	je     0x140031577
140031567:	48 83 c1 02          	add    $0x2,%rcx
14003156b:	48 83 ea 01          	sub    $0x1,%rdx
14003156f:	75 f1                	jne    0x140031562
140031571:	66 41 89 19          	mov    %bx,(%r9)
140031575:	eb d2                	jmp    0x140031549
140031577:	4c 2b c1             	sub    %rcx,%r8
14003157a:	41 0f b7 04 08       	movzwl (%r8,%rcx,1),%eax
14003157f:	66 89 01             	mov    %ax,(%rcx)
140031582:	48 8d 49 02          	lea    0x2(%rcx),%rcx
140031586:	66 85 c0             	test   %ax,%ax
140031589:	74 cf                	je     0x14003155a
14003158b:	48 83 ea 01          	sub    $0x1,%rdx
14003158f:	75 e9                	jne    0x14003157a
140031591:	66 41 89 19          	mov    %bx,(%r9)
140031595:	e8 9e a4 ff ff       	call   0x14002ba38
14003159a:	bb 22 00 00 00       	mov    $0x22,%ebx
14003159f:	eb b2                	jmp    0x140031553
1400315a1:	cc                   	int3
1400315a2:	cc                   	int3
1400315a3:	cc                   	int3
1400315a4:	66 89 4c 24 08       	mov    %cx,0x8(%rsp)
1400315a9:	48 83 ec 58          	sub    $0x58,%rsp
1400315ad:	b8 ff ff 00 00       	mov    $0xffff,%eax
1400315b2:	66 3b c8             	cmp    %ax,%cx
1400315b5:	0f 84 d5 00 00 00    	je     0x140031690
1400315bb:	48 8d 4c 24 30       	lea    0x30(%rsp),%rcx
1400315c0:	e8 ab a8 ff ff       	call   0x14002be70
1400315c5:	4c 8b 54 24 38       	mov    0x38(%rsp),%r10
1400315ca:	41 bb 00 01 00 00    	mov    $0x100,%r11d
1400315d0:	41 81 7a 0c e9 fd 00 	cmpl   $0xfde9,0xc(%r10)
1400315d7:	00
1400315d8:	75 2a                	jne    0x140031604
1400315da:	0f b7 4c 24 60       	movzwl 0x60(%rsp),%ecx
1400315df:	41 8d 43 80          	lea    -0x80(%r11),%eax
1400315e3:	66 3b c8             	cmp    %ax,%cx
1400315e6:	73 58                	jae    0x140031640
1400315e8:	0f b6 c1             	movzbl %cl,%eax
1400315eb:	4c 8d 05 ce e4 01 00 	lea    0x1e4ce(%rip),%r8        # 0x14004fac0
1400315f2:	41 f6 44 40 02 01    	testb  $0x1,0x2(%r8,%rax,2)
1400315f8:	74 05                	je     0x1400315ff
1400315fa:	0f b6 c9             	movzbl %cl,%ecx
1400315fd:	eb 25                	jmp    0x140031624
1400315ff:	0f b6 d1             	movzbl %cl,%edx
140031602:	eb 76                	jmp    0x14003167a
140031604:	0f b7 54 24 60       	movzwl 0x60(%rsp),%edx
140031609:	66 41 3b d3          	cmp    %r11w,%dx
14003160d:	73 27                	jae    0x140031636
14003160f:	0f b6 c2             	movzbl %dl,%eax
140031612:	4c 8d 05 a7 e4 01 00 	lea    0x1e4a7(%rip),%r8        # 0x14004fac0
140031619:	41 f6 44 40 02 01    	testb  $0x1,0x2(%r8,%rax,2)
14003161f:	74 10                	je     0x140031631
140031621:	0f b6 ca             	movzbl %dl,%ecx
140031624:	49 8b 82 10 01 00 00 	mov    0x110(%r10),%rax
14003162b:	0f b6 14 08          	movzbl (%rax,%rcx,1),%edx
14003162f:	eb 49                	jmp    0x14003167a
140031631:	0f b6 d2             	movzbl %dl,%edx
140031634:	eb 44                	jmp    0x14003167a
140031636:	49 83 ba 38 01 00 00 	cmpq   $0x0,0x138(%r10)
14003163d:	00
14003163e:	74 3a                	je     0x14003167a
140031640:	49 8b 8a 38 01 00 00 	mov    0x138(%r10),%rcx
140031647:	48 8d 44 24 70       	lea    0x70(%rsp),%rax
14003164c:	c7 44 24 28 01 00 00 	movl   $0x1,0x28(%rsp)
140031653:	00
140031654:	4c 8d 44 24 60       	lea    0x60(%rsp),%r8