1801077c5:	48 8b d6             	mov    %rsi,%rdx
1801077c8:	e8 2b 06 00 00       	call   0x180107df8
1801077cd:	8b f0                	mov    %eax,%esi
1801077cf:	48 85 ff             	test   %rdi,%rdi
1801077d2:	74 12                	je     0x1801077e6
1801077d4:	48 8d 44 24 20       	lea    0x20(%rsp),%rax
1801077d9:	48 3b f8             	cmp    %rax,%rdi
1801077dc:	74 08                	je     0x1801077e6
1801077de:	48 8b cb             	mov    %rbx,%rcx
1801077e1:	e8 5a 03 00 00       	call   0x180107b40
1801077e6:	8b c6                	mov    %esi,%eax
1801077e8:	4c 8d 5c 24 70       	lea    0x70(%rsp),%r11
1801077ed:	49 8b 5b 18          	mov    0x18(%r11),%rbx
1801077f1:	49 8b 73 20          	mov    0x20(%r11),%rsi
1801077f5:	49 8b e3             	mov    %r11,%rsp
1801077f8:	5f                   	pop    %rdi
1801077f9:	c3                   	ret
1801077fa:	cc                   	int3
1801077fb:	cc                   	int3
1801077fc:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
180107801:	8b 41 04             	mov    0x4(%rcx),%eax
180107804:	0f af 01             	imul   (%rcx),%eax
180107807:	4c 8b 41 18          	mov    0x18(%rcx),%r8
18010780b:	89 54 24 10          	mov    %edx,0x10(%rsp)
18010780f:	85 c0                	test   %eax,%eax
180107811:	74 38                	je     0x18010784b
180107813:	44 8a 54 24 13       	mov    0x13(%rsp),%r10b
180107818:	44 8a 5c 24 12       	mov    0x12(%rsp),%r11b
18010781d:	8a 5c 24 11          	mov    0x11(%rsp),%bl
180107821:	44 8b c8             	mov    %eax,%r9d
180107824:	45 88 58 02          	mov    %r11b,0x2(%r8)
180107828:	41 88 58 01          	mov    %bl,0x1(%r8)
18010782c:	41 88 10             	mov    %dl,(%r8)
18010782f:	8b 41 08             	mov    0x8(%rcx),%eax
180107832:	83 f8 20             	cmp    $0x20,%eax
180107835:	75 07                	jne    0x18010783e
180107837:	45 88 50 03          	mov    %r10b,0x3(%r8)
18010783b:	8b 41 08             	mov    0x8(%rcx),%eax
18010783e:	48 c1 e8 03          	shr    $0x3,%rax
180107842:	4c 03 c0             	add    %rax,%r8
180107845:	49 83 e9 01          	sub    $0x1,%r9
180107849:	75 d9                	jne    0x180107824
18010784b:	83 61 10 ef          	andl   $0xffffffef,0x10(%rcx)
18010784f:	48 8b 5c 24 08       	mov    0x8(%rsp),%rbx
180107854:	c3                   	ret
180107855:	cc                   	int3
180107856:	cc                   	int3
180107857:	cc                   	int3
180107858:	44 8b 51 02          	mov    0x2(%rcx),%r10d
18010785c:	4c 8b c9             	mov    %rcx,%r9
18010785f:	41 83 fa 30          	cmp    $0x30,%r10d
180107863:	72 2e                	jb     0x180107893
180107865:	b8 42 4d 00 00       	mov    $0x4d42,%eax
18010786a:	66 39 01             	cmp    %ax,(%rcx)
18010786d:	75 24                	jne    0x180107893
18010786f:	33 c9                	xor    %ecx,%ecx
180107871:	41 39 49 1e          	cmp    %ecx,0x1e(%r9)
180107875:	75 1c                	jne    0x180107893
180107877:	48 85 d2             	test   %rdx,%rdx
18010787a:	74 0d                	je     0x180107889
18010787c:	41 8b 41 12          	mov    0x12(%r9),%eax
180107880:	89 02                	mov    %eax,(%rdx)
180107882:	41 8b 41 16          	mov    0x16(%r9),%eax
180107886:	89 42 04             	mov    %eax,0x4(%rdx)
180107889:	4d 85 c0             	test   %r8,%r8
18010788c:	74 0a                	je     0x180107898
18010788e:	45 89 10             	mov    %r10d,(%r8)
180107891:	eb 05                	jmp    0x180107898
180107893:	b9 0d 00 00 c0       	mov    $0xc000000d,%ecx
180107898:	8b c1                	mov    %ecx,%eax
18010789a:	c3                   	ret
18010789b:	cc                   	int3
18010789c:	4c 8b dc             	mov    %rsp,%r11
18010789f:	49 89 5b 08          	mov    %rbx,0x8(%r11)
1801078a3:	49 89 6b 10          	mov    %rbp,0x10(%r11)
1801078a7:	49 89 73 18          	mov    %rsi,0x18(%r11)
1801078ab:	57                   	push   %rdi
1801078ac:	41 54                	push   %r12
1801078ae:	41 55                	push   %r13
1801078b0:	41 56                	push   %r14
1801078b2:	41 57                	push   %r15
1801078b4:	48 83 ec 30          	sub    $0x30,%rsp
1801078b8:	33 f6                	xor    %esi,%esi
1801078ba:	4c 8b e2             	mov    %rdx,%r12
1801078bd:	83 79 02 30          	cmpl   $0x30,0x2(%rcx)
1801078c1:	48 8b f9             	mov    %rcx,%rdi
1801078c4:	49 89 73 20          	mov    %rsi,0x20(%r11)
1801078c8:	0f 82 d4 00 00 00    	jb     0x1801079a2
1801078ce:	b8 42 4d 00 00       	mov    $0x4d42,%eax
1801078d3:	66 39 01             	cmp    %ax,(%rcx)
1801078d6:	0f 85 c6 00 00 00    	jne    0x1801079a2
1801078dc:	39 71 1e             	cmp    %esi,0x1e(%rcx)
1801078df:	0f 85 bd 00 00 00    	jne    0x1801079a2
1801078e5:	0f b7 51 1c          	movzwl 0x1c(%rcx),%edx
1801078e9:	8d 42 e8             	lea    -0x18(%rdx),%eax
1801078ec:	a9 f7 ff ff ff       	test   $0xfffffff7,%eax
1801078f1:	0f 85 a4 00 00 00    	jne    0x18010799b
1801078f7:	83 79 0e 28          	cmpl   $0x28,0xe(%rcx)
1801078fb:	0f 85 9a 00 00 00    	jne    0x18010799b
180107901:	8b 41 12             	mov    0x12(%rcx),%eax
180107904:	4d 8d 43 20          	lea    0x20(%r11),%r8
180107908:	89 44 24 20          	mov    %eax,0x20(%rsp)
18010790c:	8b 41 16             	mov    0x16(%rcx),%eax
18010790f:	49 8d 4b c8          	lea    -0x38(%r11),%rcx
180107913:	89 44 24 24          	mov    %eax,0x24(%rsp)
180107917:	e8 ac 00 00 00       	call   0x1801079c8
18010791c:	8b d8                	mov    %eax,%ebx
18010791e:	85 c0                	test   %eax,%eax
180107920:	78 68                	js     0x18010798a
180107922:	4c 8b 74 24 78       	mov    0x78(%rsp),%r14
180107927:	8d 46 04             	lea    0x4(%rsi),%eax
18010792a:	41 8b 16             	mov    (%r14),%edx
18010792d:	45 8b 46 08          	mov    0x8(%r14),%r8d
180107931:	41 c1 e8 03          	shr    $0x3,%r8d
180107935:	45 0f af 46 04       	imul   0x4(%r14),%r8d
18010793a:	8d 6a ff             	lea    -0x1(%rdx),%ebp
18010793d:	41 0f af e8          	imul   %r8d,%ebp
180107941:	41 8b c8             	mov    %r8d,%ecx
180107944:	83 e1 03             	and    $0x3,%ecx
180107947:	2b c1                	sub    %ecx,%eax
180107949:	49 03 6e 18          	add    0x18(%r14),%rbp
18010794d:	f7 d9                	neg    %ecx
18010794f:	45 1b c9             	sbb    %r9d,%r9d
180107952:	48 83 c7 36          	add    $0x36,%rdi
180107956:	44 23 c8             	and    %eax,%r9d
180107959:	85 d2                	test   %edx,%edx
18010795b:	74 22                	je     0x18010797f
18010795d:	45 8b f8             	mov    %r8d,%r15d
180107960:	47 8d 2c 01          	lea    (%r9,%r8,1),%r13d
180107964:	4d 8b c7             	mov    %r15,%r8
180107967:	48 8b d7             	mov    %rdi,%rdx
18010796a:	48 8b cd             	mov    %rbp,%rcx
18010796d:	e8 4e e0 02 00       	call   0x1801359c0
180107972:	49 2b ef             	sub    %r15,%rbp
180107975:	49 03 fd             	add    %r13,%rdi
180107978:	ff c6                	inc    %esi
18010797a:	41 3b 36             	cmp    (%r14),%esi
18010797d:	72 e5                	jb     0x180107964
18010797f:	41 83 66 10 ef       	andl   $0xffffffef,0x10(%r14)
180107984:	4d 89 34 24          	mov    %r14,(%r12)
180107988:	eb 1d                	jmp    0x1801079a7
18010798a:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
18010798f:	48 85 c9             	test   %rcx,%rcx
180107992:	74 13                	je     0x1801079a7
180107994:	e8 a7 01 00 00       	call   0x180107b40
180107999:	eb 0c                	jmp    0x1801079a7
18010799b:	bb bb 00 00 c0       	mov    $0xc00000bb,%ebx
1801079a0:	eb 05                	jmp    0x1801079a7
1801079a2:	bb 0d 00 00 c0       	mov    $0xc000000d,%ebx
1801079a7:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
1801079ac:	8b c3                	mov    %ebx,%eax
1801079ae:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1801079b3:	48 8b 74 24 70       	mov    0x70(%rsp),%rsi
1801079b8:	48 83 c4 30          	add    $0x30,%rsp
1801079bc:	41 5f                	pop    %r15
1801079be:	41 5e                	pop    %r14
1801079c0:	41 5d                	pop    %r13
1801079c2:	41 5c                	pop    %r12
1801079c4:	5f                   	pop    %rdi
1801079c5:	c3                   	ret
1801079c6:	cc                   	int3
1801079c7:	cc                   	int3
1801079c8:	4c 8b dc             	mov    %rsp,%r11
1801079cb:	49 89 5b 10          	mov    %rbx,0x10(%r11)
1801079cf:	55                   	push   %rbp
1801079d0:	56                   	push   %rsi
1801079d1:	57                   	push   %rdi
1801079d2:	41 54                	push   %r12
1801079d4:	41 55                	push   %r13
1801079d6:	41 56                	push   %r14
1801079d8:	41 57                	push   %r15
1801079da:	48 83 ec 40          	sub    $0x40,%rsp
1801079de:	48 8b f1             	mov    %rcx,%rsi
1801079e1:	4d 8b e8             	mov    %r8,%r13
1801079e4:	33 c9                	xor    %ecx,%ecx
1801079e6:	44 8b e2             	mov    %edx,%r12d
1801079e9:	8b e9                	mov    %ecx,%ebp
1801079eb:	49 89 4b 08          	mov    %rcx,0x8(%r11)
1801079ef:	8b d9                	mov    %ecx,%ebx
1801079f1:	8b 3e                	mov    (%rsi),%edi
1801079f3:	0f af fa             	imul   %edx,%edi
1801079f6:	0f af 7e 04          	imul   0x4(%rsi),%edi
1801079fa:	83 c7 07             	add    $0x7,%edi
1801079fd:	c1 ef 03             	shr    $0x3,%edi
180107a00:	44 8d 77 48          	lea    0x48(%rdi),%r14d
180107a04:	41 81 fe 00 10 00 00 	cmp    $0x1000,%r14d
180107a0b:	72 74                	jb     0x180107a81
180107a0d:	89 4c 24 30          	mov    %ecx,0x30(%rsp)
180107a11:	45 8d be ff 0f 00 00 	lea    0xfff(%r14),%r15d
180107a18:	49 89 4b b0          	mov    %rcx,-0x50(%r11)
180107a1c:	b8 00 f0 ff ff       	mov    $0xfffff000,%eax
180107a21:	4c 23 f8             	and    %rax,%r15
180107a24:	49 89 4b 20          	mov    %rcx,0x20(%r11)
180107a28:	49 8b d7             	mov    %r15,%rdx
180107a2b:	c7 44 24 20 01 00 00 	movl   $0x1,0x20(%rsp)
180107a32:	00
180107a33:	48 c1 ea 0c          	shr    $0xc,%rdx
180107a37:	49 8d 4b 08          	lea    0x8(%r11),%rcx
180107a3b:	45 33 c9             	xor    %r9d,%r9d
180107a3e:	41 b8 0d 00 00 d0    	mov    $0xd000000d,%r8d
180107a44:	e8 a3 fe f8 ff       	call   0x1800978ec
180107a49:	8b d8                	mov    %eax,%ebx
180107a4b:	85 c0                	test   %eax,%eax
180107a4d:	78 32                	js     0x180107a81
180107a4f:	48 8b 94 24 80 00 00 	mov    0x80(%rsp),%rdx
180107a56:	00
180107a57:	48 8d 8c 24 98 00 00 	lea    0x98(%rsp),%rcx
180107a5e:	00
180107a5f:	21 6c 24 20          	and    %ebp,0x20(%rsp)
180107a63:	45 33 c9             	xor    %r9d,%r9d
180107a66:	4d 8b c7             	mov    %r15,%r8
180107a69:	e8 b2 2a f9 ff       	call   0x18009a520
180107a6e:	8b d8                	mov    %eax,%ebx
180107a70:	85 c0                	test   %eax,%eax
180107a72:	79 62                	jns    0x180107ad6
180107a74:	48 8b 8c 24 80 00 00 	mov    0x80(%rsp),%rcx
180107a7b:	00
180107a7c:	e8 db 00 f9 ff       	call   0x180097b5c
180107a81:	41 8b ce             	mov    %r14d,%ecx
180107a84:	e8 c7 23 f9 ff       	call   0x180099e50
180107a89:	48 8b d0             	mov    %rax,%rdx
180107a8c:	b8 17 00 00 c0       	mov    $0xc0000017,%eax
180107a91:	48 85 d2             	test   %rdx,%rdx
180107a94:	0f 44 d8             	cmove  %eax,%ebx
180107a97:	85 db                	test   %ebx,%ebx
180107a99:	78 20                	js     0x180107abb
180107a9b:	8b 4e 04             	mov    0x4(%rsi),%ecx
180107a9e:	48 8d 42 48          	lea    0x48(%rdx),%rax
180107aa2:	89 0a                	mov    %ecx,(%rdx)
180107aa4:	8b 0e                	mov    (%rsi),%ecx
180107aa6:	89 4a 04             	mov    %ecx,0x4(%rdx)
180107aa9:	44 89 62 08          	mov    %r12d,0x8(%rdx)
180107aad:	89 6a 10             	mov    %ebp,0x10(%rdx)
180107ab0:	89 7a 0c             	mov    %edi,0xc(%rdx)
180107ab3:	48 89 42 18          	mov    %rax,0x18(%rdx)
180107ab7:	49 89 55 00          	mov    %rdx,0x0(%r13)
180107abb:	8b c3                	mov    %ebx,%eax
180107abd:	48 8b 9c 24 88 00 00 	mov    0x88(%rsp),%rbx
180107ac4:	00
180107ac5:	48 83 c4 40          	add    $0x40,%rsp
180107ac9:	41 5f                	pop    %r15
180107acb:	41 5e                	pop    %r14
180107acd:	41 5d                	pop    %r13
180107acf:	41 5c                	pop    %r12
180107ad1:	5f                   	pop    %rdi
180107ad2:	5e                   	pop    %rsi
180107ad3:	5d                   	pop    %rbp
180107ad4:	c3                   	ret
180107ad5:	cc                   	int3
180107ad6:	48 8b 94 24 98 00 00 	mov    0x98(%rsp),%rdx
180107add:	00
180107ade:	bd 01 00 00 00       	mov    $0x1,%ebp
180107ae3:	eb b2                	jmp    0x180107a97
180107ae5:	cc                   	int3
180107ae6:	cc                   	int3
180107ae7:	cc                   	int3
180107ae8:	45 8b d9             	mov    %r9d,%r11d
180107aeb:	4d 85 c0             	test   %r8,%r8
180107aee:	75 07                	jne    0x180107af7
180107af0:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180107af5:	c3                   	ret
180107af6:	cc                   	int3
180107af7:	44 8b 49 04          	mov    0x4(%rcx),%r9d
180107afb:	44 8b 11             	mov    (%rcx),%r10d
180107afe:	41 8b ca             	mov    %r10d,%ecx
180107b01:	41 0f af c9          	imul   %r9d,%ecx
180107b05:	0f af ca             	imul   %edx,%ecx
180107b08:	83 c1 07             	add    $0x7,%ecx
180107b0b:	c1 e9 03             	shr    $0x3,%ecx
180107b0e:	8d 41 48             	lea    0x48(%rcx),%eax
180107b11:	41 3b c3             	cmp    %r11d,%eax
180107b14:	76 07                	jbe    0x180107b1d
180107b16:	b8 9a 00 00 c0       	mov    $0xc000009a,%eax
180107b1b:	c3                   	ret
180107b1c:	cc                   	int3
180107b1d:	49 8d 40 48          	lea    0x48(%r8),%rax
180107b21:	45 89 08             	mov    %r9d,(%r8)
180107b24:	49 89 40 18          	mov    %rax,0x18(%r8)
180107b28:	33 c0                	xor    %eax,%eax
180107b2a:	45 89 50 04          	mov    %r10d,0x4(%r8)
180107b2e:	41 89 50 08          	mov    %edx,0x8(%r8)
180107b32:	41 c7 40 10 08 00 00 	movl   $0x8,0x10(%r8)
180107b39:	00
180107b3a:	41 89 48 0c          	mov    %ecx,0xc(%r8)
180107b3e:	c3                   	ret
180107b3f:	cc                   	int3
180107b40:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
180107b45:	57                   	push   %rdi
180107b46:	48 83 ec 20          	sub    $0x20,%rsp
180107b4a:	33 ff                	xor    %edi,%edi
180107b4c:	48 8b d9             	mov    %rcx,%rbx
180107b4f:	48 89 7c 24 30       	mov    %rdi,0x30(%rsp)
180107b54:	48 85 c9             	test   %rcx,%rcx
180107b57:	74 49                	je     0x180107ba2
180107b59:	f6 41 10 01          	testb  $0x1,0x10(%rcx)
180107b5d:	74 3e                	je     0x180107b9d
180107b5f:	45 33 c9             	xor    %r9d,%r9d
180107b62:	48 8d 54 24 30       	lea    0x30(%rsp),%rdx
180107b67:	45 33 c0             	xor    %r8d,%r8d
180107b6a:	e8 1d 5a f9 ff       	call   0x18009d58c
180107b6f:	84 c0                	test   %al,%al
180107b71:	74 2f                	je     0x180107ba2
180107b73:	8b 53 0c             	mov    0xc(%rbx),%edx
180107b76:	45 33 c0             	xor    %r8d,%r8d
180107b79:	48 81 c2 47 10 00 00 	add    $0x1047,%rdx
180107b80:	48 8b cb             	mov    %rbx,%rcx
180107b83:	48 81 e2 00 f0 ff ff 	and    $0xfffffffffffff000,%rdx
180107b8a:	e8 dd 2c f9 ff       	call   0x18009a86c
180107b8f:	48 8b 4c 24 30       	mov    0x30(%rsp),%rcx
180107b94:	e8 c3 ff f8 ff       	call   0x180097b5c
180107b99:	8b f8                	mov    %eax,%edi
180107b9b:	eb 05                	jmp    0x180107ba2
180107b9d:	e8 5a 24 f9 ff       	call   0x180099ffc
180107ba2:	48 8b 5c 24 38       	mov    0x38(%rsp),%rbx
180107ba7:	8b c7                	mov    %edi,%eax
180107ba9:	48 83 c4 20          	add    $0x20,%rsp
180107bad:	5f                   	pop    %rdi
180107bae:	c3                   	ret
180107baf:	cc                   	int3
180107bb0:	4c 89 44 24 18       	mov    %r8,0x18(%rsp)
180107bb5:	48 89 4c 24 08       	mov    %rcx,0x8(%rsp)
180107bba:	53                   	push   %rbx
180107bbb:	55                   	push   %rbp
180107bbc:	56                   	push   %rsi
180107bbd:	41 54                	push   %r12
180107bbf:	41 55                	push   %r13
180107bc1:	41 56                	push   %r14
180107bc3:	41 57                	push   %r15
180107bc5:	48 83 ec 50          	sub    $0x50,%rsp
180107bc9:	45 8b f1             	mov    %r9d,%r14d
180107bcc:	4d 8b e0             	mov    %r8,%r12
180107bcf:	41 80 e6 01          	and    $0x1,%r14b
180107bd3:	8b ea                	mov    %edx,%ebp
180107bd5:	44 89 b4 24 a8 00 00 	mov    %r14d,0xa8(%rsp)
180107bdc:	00
180107bdd:	48 8b f1             	mov    %rcx,%rsi
180107be0:	74 33                	je     0x180107c15
180107be2:	3b 51 08             	cmp    0x8(%rcx),%edx
180107be5:	76 0a                	jbe    0x180107bf1
180107be7:	b8 0d 00 00 c0       	mov    $0xc000000d,%eax
180107bec:	e9 f3 01 00 00       	jmp    0x180107de4
180107bf1:	8b 01                	mov    (%rcx),%eax
180107bf3:	49 8b 18             	mov    (%r8),%rbx
180107bf6:	89 03                	mov    %eax,(%rbx)
180107bf8:	8b 41 04             	mov    0x4(%rcx),%eax
180107bfb:	89 43 04             	mov    %eax,0x4(%rbx)
180107bfe:	89 6b 08             	mov    %ebp,0x8(%rbx)
180107c01:	83 63 10 00          	andl   $0x0,0x10(%rbx)
180107c05:	8b 41 0c             	mov    0xc(%rcx),%eax
180107c08:	89 43 0c             	mov    %eax,0xc(%rbx)