14057a63f:	cc                   	int3
14057a640:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
14057a645:	57                   	push   %rdi
14057a646:	48 83 ec 20          	sub    $0x20,%rsp
14057a64a:	48 8b d9             	mov    %rcx,%rbx
14057a64d:	48 8b fa             	mov    %rdx,%rdi
14057a650:	48 8d 4a 10          	lea    0x10(%rdx),%rcx
14057a654:	48 8b 53 10          	mov    0x10(%rbx),%rdx
14057a658:	e8 43 fc ff ff       	call   0x14057a2a0
14057a65d:	48 85 c0             	test   %rax,%rax
14057a660:	74 27                	je     0x14057a689
14057a662:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
14057a666:	48 85 c9             	test   %rcx,%rcx
14057a669:	74 40                	je     0x14057a6ab
14057a66b:	48 8b 01             	mov    (%rcx),%rax
14057a66e:	ba 01 00 00 00       	mov    $0x1,%edx
14057a673:	48 8b 00             	mov    (%rax),%rax
14057a676:	ff 15 a4 93 a0 00    	call   *0xa093a4(%rip)        # 0x140f83a20
14057a67c:	b0 01                	mov    $0x1,%al
14057a67e:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
14057a683:	48 83 c4 20          	add    $0x20,%rsp
14057a687:	5f                   	pop    %rdi
14057a688:	c3                   	ret
14057a689:	48 8b 43 10          	mov    0x10(%rbx),%rax
14057a68d:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
14057a692:	48 c7 43 10 00 00 00 	movq   $0x0,0x10(%rbx)
14057a699:	00
14057a69a:	48 8b cf             	mov    %rdi,%rcx
14057a69d:	48 8b 53 08          	mov    0x8(%rbx),%rdx
14057a6a1:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
14057a6a6:	e8 35 f6 ff ff       	call   0x140579ce0
14057a6ab:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
14057a6b0:	b0 01                	mov    $0x1,%al
14057a6b2:	48 83 c4 20          	add    $0x20,%rsp
14057a6b6:	5f                   	pop    %rdi
14057a6b7:	c3                   	ret
14057a6b8:	cc                   	int3
14057a6b9:	cc                   	int3
14057a6ba:	cc                   	int3
14057a6bb:	cc                   	int3
14057a6bc:	cc                   	int3
14057a6bd:	cc                   	int3
14057a6be:	cc                   	int3
14057a6bf:	cc                   	int3
14057a6c0:	48 83 ec 28          	sub    $0x28,%rsp
14057a6c4:	48 8b 41 20          	mov    0x20(%rcx),%rax
14057a6c8:	4c 8d 44 24 30       	lea    0x30(%rsp),%r8
14057a6cd:	4c 8b ca             	mov    %rdx,%r9
14057a6d0:	48 c7 41 20 00 00 00 	movq   $0x0,0x20(%rcx)
14057a6d7:	00
14057a6d8:	48 8d 51 08          	lea    0x8(%rcx),%rdx
14057a6dc:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
14057a6e1:	49 8b c9             	mov    %r9,%rcx
14057a6e4:	e8 87 08 00 00       	call   0x14057af70
14057a6e9:	48 83 c4 28          	add    $0x28,%rsp
14057a6ed:	c3                   	ret
14057a6ee:	cc                   	int3
14057a6ef:	cc                   	int3
14057a6f0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
14057a6f5:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14057a6fa:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
14057a6ff:	57                   	push   %rdi
14057a700:	48 83 ec 30          	sub    $0x30,%rsp
14057a704:	49 8b d8             	mov    %r8,%rbx
14057a707:	48 8b f2             	mov    %rdx,%rsi
14057a70a:	48 8b f9             	mov    %rcx,%rdi
14057a70d:	4d 8b 00             	mov    (%r8),%r8
14057a710:	4c 89 44 24 20       	mov    %r8,0x20(%rsp)
14057a715:	4d 85 c0             	test   %r8,%r8
14057a718:	74 1e                	je     0x14057a738
14057a71a:	41 8b 40 10          	mov    0x10(%r8),%eax
14057a71e:	ff c0                	inc    %eax
14057a720:	41 89 40 10          	mov    %eax,0x10(%r8)
14057a724:	83 f8 01             	cmp    $0x1,%eax
14057a727:	0f 8e 51 01 00 00    	jle    0x14057a87e
14057a72d:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
14057a732:	0f 84 4e 01 00 00    	je     0x14057a886
14057a738:	4c 8d 4c 24 20       	lea    0x20(%rsp),%r9
14057a73d:	4c 8b c6             	mov    %rsi,%r8
14057a740:	48 8d 54 24 58       	lea    0x58(%rsp),%rdx
14057a745:	e8 76 f0 ff ff       	call   0x1405797c0
14057a74a:	90                   	nop
14057a74b:	48 8b 03             	mov    (%rbx),%rax
14057a74e:	48 c7 03 00 00 00 00 	movq   $0x0,(%rbx)
14057a755:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14057a75a:	4c 8d 44 24 28       	lea    0x28(%rsp),%r8
14057a75f:	48 8b d6             	mov    %rsi,%rdx
14057a762:	48 8b cf             	mov    %rdi,%rcx
14057a765:	e8 a6 f8 ff ff       	call   0x14057a010
14057a76a:	48 8b f0             	mov    %rax,%rsi
14057a76d:	48 85 c0             	test   %rax,%rax
14057a770:	75 5e                	jne    0x14057a7d0
14057a772:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
14057a777:	48 85 ff             	test   %rdi,%rdi
14057a77a:	74 16                	je     0x14057a792
14057a77c:	48 8b cf             	mov    %rdi,%rcx
14057a77f:	e8 0c 74 22 00       	call   0x1407a1b90
14057a784:	ba 38 00 00 00       	mov    $0x38,%edx
14057a789:	48 8b cf             	mov    %rdi,%rcx
14057a78c:	e8 b3 09 8a 00       	call   0x140e1b144
14057a791:	90                   	nop
14057a792:	48 8b 0b             	mov    (%rbx),%rcx
14057a795:	48 85 c9             	test   %rcx,%rcx
14057a798:	74 24                	je     0x14057a7be
14057a79a:	8b 41 10             	mov    0x10(%rcx),%eax
14057a79d:	ff c8                	dec    %eax
14057a79f:	89 41 10             	mov    %eax,0x10(%rcx)
14057a7a2:	85 c0                	test   %eax,%eax
14057a7a4:	7f 18                	jg     0x14057a7be
14057a7a6:	0f 88 e5 00 00 00    	js     0x14057a891
14057a7ac:	48 8b 01             	mov    (%rcx),%rax
14057a7af:	ba 01 00 00 00       	mov    $0x1,%edx
14057a7b4:	48 8b 00             	mov    (%rax),%rax
14057a7b7:	ff 15 63 92 a0 00    	call   *0xa09263(%rip)        # 0x140f83a20
14057a7bd:	90                   	nop
14057a7be:	33 c0                	xor    %eax,%eax
14057a7c0:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
14057a7c5:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
14057a7ca:	48 83 c4 30          	add    $0x30,%rsp
14057a7ce:	5f                   	pop    %rdi
14057a7cf:	c3                   	ret
14057a7d0:	b9 18 00 00 00       	mov    $0x18,%ecx
14057a7d5:	e8 2e 09 8a 00       	call   0x140e1b108
14057a7da:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14057a7df:	48 85 c0             	test   %rax,%rax
14057a7e2:	74 20                	je     0x14057a804
14057a7e4:	48 8b 4c 24 58       	mov    0x58(%rsp),%rcx
14057a7e9:	48 c7 44 24 58 00 00 	movq   $0x0,0x58(%rsp)
14057a7f0:	00 00
14057a7f2:	48 8d 15 bf 5a a9 00 	lea    0xa95abf(%rip),%rdx        # 0x1410102b8
14057a7f9:	48 89 10             	mov    %rdx,(%rax)
14057a7fc:	48 89 70 08          	mov    %rsi,0x8(%rax)
14057a800:	48 89 48 10          	mov    %rcx,0x10(%rax)
14057a804:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14057a809:	48 8d 54 24 28       	lea    0x28(%rsp),%rdx
14057a80e:	48 8d 4f 68          	lea    0x68(%rdi),%rcx
14057a812:	e8 39 0a 00 00       	call   0x14057b250
14057a817:	90                   	nop
14057a818:	48 8b 7c 24 58       	mov    0x58(%rsp),%rdi
14057a81d:	48 85 ff             	test   %rdi,%rdi
14057a820:	74 16                	je     0x14057a838
14057a822:	48 8b cf             	mov    %rdi,%rcx
14057a825:	e8 66 73 22 00       	call   0x1407a1b90
14057a82a:	ba 38 00 00 00       	mov    $0x38,%edx
14057a82f:	48 8b cf             	mov    %rdi,%rcx
14057a832:	e8 0d 09 8a 00       	call   0x140e1b144
14057a837:	90                   	nop
14057a838:	48 8b 0b             	mov    (%rbx),%rcx
14057a83b:	48 85 c9             	test   %rcx,%rcx
14057a83e:	74 20                	je     0x14057a860
14057a840:	8b 41 10             	mov    0x10(%rcx),%eax
14057a843:	ff c8                	dec    %eax
14057a845:	89 41 10             	mov    %eax,0x10(%rcx)
14057a848:	85 c0                	test   %eax,%eax
14057a84a:	7f 14                	jg     0x14057a860
14057a84c:	78 25                	js     0x14057a873
14057a84e:	48 8b 01             	mov    (%rcx),%rax
14057a851:	ba 01 00 00 00       	mov    $0x1,%edx
14057a856:	48 8b 00             	mov    (%rax),%rax
14057a859:	ff 15 c1 91 a0 00    	call   *0xa091c1(%rip)        # 0x140f83a20
14057a85f:	90                   	nop
14057a860:	48 8b c6             	mov    %rsi,%rax
14057a863:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
14057a868:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
14057a86d:	48 83 c4 30          	add    $0x30,%rsp
14057a871:	5f                   	pop    %rdi
14057a872:	c3                   	ret
14057a873:	b9 02 00 00 00       	mov    $0x2,%ecx
14057a878:	e8 83 fe 20 00       	call   0x14078a700
14057a87d:	90                   	nop
14057a87e:	33 c9                	xor    %ecx,%ecx
14057a880:	e8 7b fe 20 00       	call   0x14078a700
14057a885:	cc                   	int3
14057a886:	b9 01 00 00 00       	mov    $0x1,%ecx
14057a88b:	e8 70 fe 20 00       	call   0x14078a700
14057a890:	90                   	nop
14057a891:	b9 02 00 00 00       	mov    $0x2,%ecx
14057a896:	e8 65 fe 20 00       	call   0x14078a700
14057a89b:	cc                   	int3
14057a89c:	cc                   	int3
14057a89d:	cc                   	int3
14057a89e:	cc                   	int3
14057a89f:	cc                   	int3
14057a8a0:	4c 8b dc             	mov    %rsp,%r11
14057a8a3:	4d 89 43 18          	mov    %r8,0x18(%r11)
14057a8a7:	53                   	push   %rbx
14057a8a8:	55                   	push   %rbp
14057a8a9:	56                   	push   %rsi
14057a8aa:	57                   	push   %rdi
14057a8ab:	41 56                	push   %r14
14057a8ad:	48 83 ec 40          	sub    $0x40,%rsp
14057a8b1:	49 8b f0             	mov    %r8,%rsi
14057a8b4:	48 8b fa             	mov    %rdx,%rdi
14057a8b7:	48 8b d9             	mov    %rcx,%rbx
14057a8ba:	49 8b 00             	mov    (%r8),%rax
14057a8bd:	49 c7 00 00 00 00 00 	movq   $0x0,(%r8)
14057a8c4:	49 89 43 b8          	mov    %rax,-0x48(%r11)
14057a8c8:	4d 8d 4b b8          	lea    -0x48(%r11),%r9
14057a8cc:	4c 8b c2             	mov    %rdx,%r8
14057a8cf:	49 8d 53 20          	lea    0x20(%r11),%rdx
14057a8d3:	e8 e8 ee ff ff       	call   0x1405797c0
14057a8d8:	90                   	nop
14057a8d9:	48 8d 4b 10          	lea    0x10(%rbx),%rcx
14057a8dd:	48 8b 94 24 88 00 00 	mov    0x88(%rsp),%rdx
14057a8e4:	00
14057a8e5:	e8 b6 f9 ff ff       	call   0x14057a2a0
14057a8ea:	48 8b e8             	mov    %rax,%rbp
14057a8ed:	4c 8d 73 68          	lea    0x68(%rbx),%r14
14057a8f1:	b9 28 00 00 00       	mov    $0x28,%ecx
14057a8f6:	e8 0d 08 8a 00       	call   0x140e1b108
14057a8fb:	48 8b d8             	mov    %rax,%rbx
14057a8fe:	48 89 44 24 28       	mov    %rax,0x28(%rsp)
14057a903:	48 85 c0             	test   %rax,%rax
14057a906:	74 6c                	je     0x14057a974
14057a908:	48 8b 8c 24 88 00 00 	mov    0x88(%rsp),%rcx
14057a90f:	00
14057a910:	48 c7 84 24 88 00 00 	movq   $0x0,0x88(%rsp)
14057a917:	00 00 00 00 00
14057a91c:	48 89 4c 24 70       	mov    %rcx,0x70(%rsp)
14057a921:	48 8d 44 24 70       	lea    0x70(%rsp),%rax
14057a926:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
14057a92b:	48 8d 05 a6 59 a9 00 	lea    0xa959a6(%rip),%rax        # 0x1410102d8
14057a932:	48 89 03             	mov    %rax,(%rbx)
14057a935:	48 8d 4b 08          	lea    0x8(%rbx),%rcx
14057a939:	48 8b d7             	mov    %rdi,%rdx
14057a93c:	e8 af c5 1d 00       	call   0x140756ef0
14057a941:	48 8b 44 24 70       	mov    0x70(%rsp),%rax
14057a946:	48 c7 44 24 70 00 00 	movq   $0x0,0x70(%rsp)
14057a94d:	00 00
14057a94f:	48 89 43 20          	mov    %rax,0x20(%rbx)
14057a953:	48 8b 7c 24 70       	mov    0x70(%rsp),%rdi
14057a958:	48 85 ff             	test   %rdi,%rdi
14057a95b:	74 19                	je     0x14057a976
14057a95d:	48 8b cf             	mov    %rdi,%rcx
14057a960:	e8 2b 72 22 00       	call   0x1407a1b90
14057a965:	ba 38 00 00 00       	mov    $0x38,%edx
14057a96a:	48 8b cf             	mov    %rdi,%rcx
14057a96d:	e8 d2 07 8a 00       	call   0x140e1b144
14057a972:	eb 02                	jmp    0x14057a976
14057a974:	33 db                	xor    %ebx,%ebx
14057a976:	48 89 5c 24 28       	mov    %rbx,0x28(%rsp)
14057a97b:	48 8d 54 24 28       	lea    0x28(%rsp),%rdx
14057a980:	49 8b ce             	mov    %r14,%rcx
14057a983:	e8 c8 08 00 00       	call   0x14057b250
14057a988:	48 85 ed             	test   %rbp,%rbp
14057a98b:	40 0f 95 c7          	setne  %dil
14057a98f:	48 8b 9c 24 88 00 00 	mov    0x88(%rsp),%rbx
14057a996:	00
14057a997:	48 85 db             	test   %rbx,%rbx
14057a99a:	74 16                	je     0x14057a9b2
14057a99c:	48 8b cb             	mov    %rbx,%rcx
14057a99f:	e8 ec 71 22 00       	call   0x1407a1b90
14057a9a4:	ba 38 00 00 00       	mov    $0x38,%edx
14057a9a9:	48 8b cb             	mov    %rbx,%rcx
14057a9ac:	e8 93 07 8a 00       	call   0x140e1b144
14057a9b1:	90                   	nop
14057a9b2:	48 8b 0e             	mov    (%rsi),%rcx
14057a9b5:	48 85 c9             	test   %rcx,%rcx
14057a9b8:	74 20                	je     0x14057a9da
14057a9ba:	8b 41 10             	mov    0x10(%rcx),%eax
14057a9bd:	ff c8                	dec    %eax
14057a9bf:	89 41 10             	mov    %eax,0x10(%rcx)
14057a9c2:	85 c0                	test   %eax,%eax
14057a9c4:	7f 14                	jg     0x14057a9da
14057a9c6:	78 21                	js     0x14057a9e9
14057a9c8:	48 8b 11             	mov    (%rcx),%rdx
14057a9cb:	48 8b 02             	mov    (%rdx),%rax
14057a9ce:	ba 01 00 00 00       	mov    $0x1,%edx
14057a9d3:	ff 15 47 90 a0 00    	call   *0xa09047(%rip)        # 0x140f83a20
14057a9d9:	90                   	nop
14057a9da:	40 0f b6 c7          	movzbl %dil,%eax
14057a9de:	48 83 c4 40          	add    $0x40,%rsp
14057a9e2:	41 5e                	pop    %r14
14057a9e4:	5f                   	pop    %rdi
14057a9e5:	5e                   	pop    %rsi
14057a9e6:	5d                   	pop    %rbp
14057a9e7:	5b                   	pop    %rbx
14057a9e8:	c3                   	ret
14057a9e9:	b9 02 00 00 00       	mov    $0x2,%ecx
14057a9ee:	e8 0d fd 20 00       	call   0x14078a700
14057a9f3:	cc                   	int3
14057a9f4:	cc                   	int3
14057a9f5:	cc                   	int3
14057a9f6:	cc                   	int3
14057a9f7:	cc                   	int3
14057a9f8:	cc                   	int3
14057a9f9:	cc                   	int3
14057a9fa:	cc                   	int3
14057a9fb:	cc                   	int3
14057a9fc:	cc                   	int3
14057a9fd:	cc                   	int3
14057a9fe:	cc                   	int3
14057a9ff:	cc                   	int3
14057aa00:	48 8b c4             	mov    %rsp,%rax
14057aa03:	57                   	push   %rdi
14057aa04:	48 81 ec 90 00 00 00 	sub    $0x90,%rsp
14057aa0b:	66 83 79 0c 00       	cmpw   $0x0,0xc(%rcx)
14057aa10:	48 8b f9             	mov    %rcx,%rdi
14057aa13:	0f 87 ed 01 00 00    	ja     0x14057ac06
14057aa19:	8b 51 10             	mov    0x10(%rcx),%edx
14057aa1c:	48 89 68 10          	mov    %rbp,0x10(%rax)
14057aa20:	bd 10 00 00 00       	mov    $0x10,%ebp
14057aa25:	4c 89 78 e8          	mov    %r15,-0x18(%rax)
14057aa29:	45 33 ff             	xor    %r15d,%r15d
14057aa2c:	48 89 58 08          	mov    %rbx,0x8(%rax)
14057aa30:	48 89 70 18          	mov    %rsi,0x18(%rax)
14057aa34:	4c 89 60 20          	mov    %r12,0x20(%rax)
14057aa38:	4c 89 70 f0          	mov    %r14,-0x10(%rax)
14057aa3c:	85 d2                	test   %edx,%edx
14057aa3e:	0f 88 8e 01 00 00    	js     0x14057abd2
14057aa44:	41 be ff ff 00 00    	mov    $0xffff,%r14d
14057aa4a:	49 bc 15 7c 4a 7f b9 	movabs $0x9e3779b97f4a7c15,%r12
14057aa51:	79 37 9e
14057aa54:	85 ed                	test   %ebp,%ebp
14057aa56:	0f 8e 7a 01 00 00    	jle    0x14057abd6
14057aa5c:	44 8b ca             	mov    %edx,%r9d
14057aa5f:	49 c1 e1 05          	shl    $0x5,%r9
14057aa63:	4c 03 4f 40          	add    0x40(%rdi),%r9
14057aa67:	41 0f b7 01          	movzwl (%r9),%eax
14057aa6b:	66 41 3b c6          	cmp    %r14w,%ax
14057aa6f:	0f 84 50 01 00 00    	je     0x14057abc5
14057aa75:	44 8b c2             	mov    %edx,%r8d
14057aa78:	44 2b c0             	sub    %eax,%r8d
14057aa7b:	0f b7 47 02          	movzwl 0x2(%rdi),%eax
14057aa7f:	66 85 c0             	test   %ax,%ax
14057aa82:	75 05                	jne    0x14057aa89
14057aa84:	41 8b f7             	mov    %r15d,%esi
14057aa87:	eb 16                	jmp    0x14057aa9f
14057aa89:	41 8b 71 08          	mov    0x8(%r9),%esi
14057aa8d:	b9 40 00 00 00       	mov    $0x40,%ecx
14057aa92:	49 0f af f4          	imul   %r12,%rsi
14057aa96:	48 2b c8             	sub    %rax,%rcx
14057aa99:	48 d3 e6             	shl    %cl,%rsi
14057aa9c:	48 d3 ee             	shr    %cl,%rsi
14057aa9f:	44 3b c6             	cmp    %esi,%r8d
14057aaa2:	0f 84 1d 01 00 00    	je     0x14057abc5
14057aaa8:	44 8b c2             	mov    %edx,%r8d
14057aaab:	45 33 c9             	xor    %r9d,%r9d
14057aaae:	48 8d 54 24 40       	lea    0x40(%rsp),%rdx
14057aab3:	48 8b cf             	mov    %rdi,%rcx
14057aab6:	e8 85 05 00 00       	call   0x14057b040
14057aabb:	48 8b 4f 40          	mov    0x40(%rdi),%rcx
14057aabf:	8b de                	mov    %esi,%ebx
14057aac1:	48 85 c9             	test   %rcx,%rcx
14057aac4:	74 05                	je     0x14057aacb
14057aac6:	8b 47 04             	mov    0x4(%rdi),%eax
14057aac9:	eb 03                	jmp    0x14057aace
14057aacb:	41 8b c7             	mov    %r15d,%eax
14057aace:	3b f0                	cmp    %eax,%esi
14057aad0:	7d 2f                	jge    0x14057ab01