140968827:	48 83 ec 40          	sub    $0x40,%rsp
14096882b:	48 8b da             	mov    %rdx,%rbx
14096882e:	4c 8b f9             	mov    %rcx,%r15
140968831:	8b 42 08             	mov    0x8(%rdx),%eax
140968834:	2b 02                	sub    (%rdx),%eax
140968836:	33 d2                	xor    %edx,%edx
140968838:	f7 b1 98 00 00 00    	divl   0x98(%rcx)
14096883e:	8b f0                	mov    %eax,%esi
140968840:	0f 57 c0             	xorps  %xmm0,%xmm0
140968843:	f3 0f 7f 45 e0       	movdqu %xmm0,-0x20(%rbp)
140968848:	48 83 65 f0 00       	andq   $0x0,-0x10(%rbp)
14096884d:	48 89 75 30          	mov    %rsi,0x30(%rbp)
140968851:	85 c0                	test   %eax,%eax
140968853:	74 0d                	je     0x140968862
140968855:	48 8d 55 30          	lea    0x30(%rbp),%rdx
140968859:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
14096885d:	e8 2a 0c 00 00       	call   0x14096948c
140968862:	33 ff                	xor    %edi,%edi
140968864:	85 f6                	test   %esi,%esi
140968866:	0f 84 b5 00 00 00    	je     0x140968921
14096886c:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
140968870:	45 32 c0             	xor    %r8b,%r8b
140968873:	44 88 45 30          	mov    %r8b,0x30(%rbp)
140968877:	45 33 d2             	xor    %r10d,%r10d
14096887a:	45 8b 8f 98 00 00 00 	mov    0x98(%r15),%r9d
140968881:	45 85 c9             	test   %r9d,%r9d
140968884:	74 6e                	je     0x1409688f4
140968886:	4c 8b 23             	mov    (%rbx),%r12
140968889:	4c 8b 5b 08          	mov    0x8(%rbx),%r11
14096888d:	4d 2b dc             	sub    %r12,%r11
140968890:	45 8b f1             	mov    %r9d,%r14d
140968893:	44 0f af f7          	imul   %edi,%r14d
140968897:	45 8a e8             	mov    %r8b,%r13b
14096889a:	43 8d 04 16          	lea    (%r14,%r10,1),%eax
14096889e:	8b c8                	mov    %eax,%ecx
1409688a0:	49 3b cb             	cmp    %r11,%rcx
1409688a3:	0f 83 c2 00 00 00    	jae    0x14096896b
1409688a9:	45 0f b6 04 04       	movzbl (%r12,%rax,1),%r8d
1409688ae:	41 0f b6 87 9c 00 00 	movzbl 0x9c(%r15),%eax
1409688b5:	00
1409688b6:	44 23 c0             	and    %eax,%r8d
1409688b9:	41 8b ca             	mov    %r10d,%ecx
1409688bc:	49 8b 87 88 00 00 00 	mov    0x88(%r15),%rax
1409688c3:	49 2b 87 80 00 00 00 	sub    0x80(%r15),%rax
1409688ca:	48 c1 f8 02          	sar    $0x2,%rax
1409688ce:	48 3b c8             	cmp    %rax,%rcx
1409688d1:	0f 83 94 00 00 00    	jae    0x14096896b
1409688d7:	49 8b 87 80 00 00 00 	mov    0x80(%r15),%rax
1409688de:	42 8b 0c 90          	mov    (%rax,%r10,4),%ecx
1409688e2:	41 d3 e0             	shl    %cl,%r8d
1409688e5:	45 02 c5             	add    %r13b,%r8b
1409688e8:	44 88 45 30          	mov    %r8b,0x30(%rbp)
1409688ec:	41 ff c2             	inc    %r10d
1409688ef:	45 3b d1             	cmp    %r9d,%r10d
1409688f2:	72 a3                	jb     0x140968897
1409688f4:	48 3b 55 f0          	cmp    -0x10(%rbp),%rdx
1409688f8:	74 0c                	je     0x140968906
1409688fa:	44 88 02             	mov    %r8b,(%rdx)
1409688fd:	48 ff c2             	inc    %rdx
140968900:	48 89 55 e8          	mov    %rdx,-0x18(%rbp)
140968904:	eb 11                	jmp    0x140968917
140968906:	4c 8d 45 30          	lea    0x30(%rbp),%r8
14096890a:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
14096890e:	e8 25 0d 00 00       	call   0x140969638
140968913:	48 8b 55 e8          	mov    -0x18(%rbp),%rdx
140968917:	ff c7                	inc    %edi
140968919:	3b fe                	cmp    %esi,%edi
14096891b:	0f 82 4f ff ff ff    	jb     0x140968870
140968921:	33 d2                	xor    %edx,%edx
140968923:	48 8b cb             	mov    %rbx,%rcx
140968926:	e8 35 8c 84 ff       	call   0x1401b1560
14096892b:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
14096892f:	48 8b cb             	mov    %rbx,%rcx
140968932:	e8 85 0a 89 ff       	call   0x1401f93bc
140968937:	90                   	nop
140968938:	48 8b 55 e0          	mov    -0x20(%rbp),%rdx
14096893c:	48 85 d2             	test   %rdx,%rdx
14096893f:	74 3a                	je     0x14096897b
140968941:	48 8b ca             	mov    %rdx,%rcx
140968944:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
140968948:	48 2b c2             	sub    %rdx,%rax
14096894b:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
140968951:	72 1f                	jb     0x140968972
140968953:	48 8b 52 f8          	mov    -0x8(%rdx),%rdx
140968957:	48 2b ca             	sub    %rdx,%rcx
14096895a:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
14096895e:	48 83 f8 1f          	cmp    $0x1f,%rax
140968962:	76 0e                	jbe    0x140968972
140968964:	ff 15 2e 40 1a 00    	call   *0x1a402e(%rip)        # 0x140b0c998
14096896a:	90                   	nop
14096896b:	ff 15 27 40 1a 00    	call   *0x1a4027(%rip)        # 0x140b0c998
140968971:	90                   	nop
140968972:	48 8b ca             	mov    %rdx,%rcx
140968975:	ff 15 45 3f 1a 00    	call   *0x1a3f45(%rip)        # 0x140b0c8c0
14096897b:	4c 8d 5c 24 40       	lea    0x40(%rsp),%r11
140968980:	49 8b 5b 38          	mov    0x38(%r11),%rbx
140968984:	49 8b 73 40          	mov    0x40(%r11),%rsi
140968988:	49 8b 7b 48          	mov    0x48(%r11),%rdi
14096898c:	49 8b e3             	mov    %r11,%rsp
14096898f:	41 5f                	pop    %r15
140968991:	41 5e                	pop    %r14
140968993:	41 5d                	pop    %r13
140968995:	41 5c                	pop    %r12
140968997:	5d                   	pop    %rbp
140968998:	c3                   	ret
140968999:	90                   	nop
14096899a:	90                   	nop
14096899b:	90                   	nop
14096899c:	48 89 5c 24 10       	mov    %rbx,0x10(%rsp)
1409689a1:	48 89 74 24 18       	mov    %rsi,0x18(%rsp)
1409689a6:	48 89 7c 24 20       	mov    %rdi,0x20(%rsp)
1409689ab:	55                   	push   %rbp
1409689ac:	41 56                	push   %r14
1409689ae:	41 57                	push   %r15
1409689b0:	48 8b ec             	mov    %rsp,%rbp
1409689b3:	48 83 ec 50          	sub    $0x50,%rsp
1409689b7:	48 8b f9             	mov    %rcx,%rdi
1409689ba:	32 db                	xor    %bl,%bl
1409689bc:	4c 8d 79 58          	lea    0x58(%rcx),%r15
1409689c0:	0f 57 c0             	xorps  %xmm0,%xmm0
1409689c3:	f3 0f 7f 45 d0       	movdqu %xmm0,-0x30(%rbp)
1409689c8:	49 8b 47 08          	mov    0x8(%r15),%rax
1409689cc:	48 85 c0             	test   %rax,%rax
1409689cf:	74 04                	je     0x1409689d5
1409689d1:	f0 ff 40 08          	lock incl 0x8(%rax)
1409689d5:	49 8b 07             	mov    (%r15),%rax
1409689d8:	48 89 45 d0          	mov    %rax,-0x30(%rbp)
1409689dc:	49 8b 47 08          	mov    0x8(%r15),%rax
1409689e0:	48 89 45 d8          	mov    %rax,-0x28(%rbp)
1409689e4:	48 8d 4d d0          	lea    -0x30(%rbp),%rcx
1409689e8:	e8 03 25 fd ff       	call   0x14093aef0
1409689ed:	4c 8b f0             	mov    %rax,%r14
1409689f0:	49 8b 0f             	mov    (%r15),%rcx
1409689f3:	48 8b 01             	mov    (%rcx),%rax
1409689f6:	48 8b 40 28          	mov    0x28(%rax),%rax
1409689fa:	ff 15 38 42 1a 00    	call   *0x1a4238(%rip)        # 0x140b0cc38
140968a00:	44 8b d0             	mov    %eax,%r10d
140968a03:	8b f0                	mov    %eax,%esi
140968a05:	b8 08 00 00 00       	mov    $0x8,%eax
140968a0a:	49 f7 ea             	imul   %r10
140968a0d:	48 89 55 20          	mov    %rdx,0x20(%rbp)
140968a11:	4c 8b c8             	mov    %rax,%r9
140968a14:	48 85 d2             	test   %rdx,%rdx
140968a17:	0f 85 17 02 00 00    	jne    0x140968c34
140968a1d:	48 b8 ff ff ff ff ff 	movabs $0x7fffffffffffffff,%rax
140968a24:	ff ff 7f
140968a27:	4c 3b c8             	cmp    %rax,%r9
140968a2a:	0f 87 04 02 00 00    	ja     0x140968c34
140968a30:	44 8b 47 70          	mov    0x70(%rdi),%r8d
140968a34:	8b 47 74             	mov    0x74(%rdi),%eax
140968a37:	49 0f af c0          	imul   %r8,%rax
140968a3b:	b9 ff ff ff ff       	mov    $0xffffffff,%ecx
140968a40:	48 3b c1             	cmp    %rcx,%rax
140968a43:	0f 87 eb 01 00 00    	ja     0x140968c34
140968a49:	8b c8                	mov    %eax,%ecx
140968a4b:	49 8b c1             	mov    %r9,%rax
140968a4e:	48 99                	cqto
140968a50:	48 f7 f9             	idiv   %rcx
140968a53:	48 85 d2             	test   %rdx,%rdx
140968a56:	0f 85 b5 01 00 00    	jne    0x140968c11
140968a5c:	0f 57 c0             	xorps  %xmm0,%xmm0
140968a5f:	f3 0f 7f 45 e0       	movdqu %xmm0,-0x20(%rbp)
140968a64:	48 21 55 f0          	and    %rdx,-0x10(%rbp)
140968a68:	41 83 e8 01          	sub    $0x1,%r8d
140968a6c:	74 6c                	je     0x140968ada
140968a6e:	41 83 e8 01          	sub    $0x1,%r8d
140968a72:	74 66                	je     0x140968ada
140968a74:	41 83 e8 02          	sub    $0x2,%r8d
140968a78:	74 60                	je     0x140968ada
140968a7a:	41 83 e8 04          	sub    $0x4,%r8d
140968a7e:	74 06                	je     0x140968a86
140968a80:	41 83 f8 08          	cmp    $0x8,%r8d
140968a84:	75 63                	jne    0x140968ae9
140968a86:	48 8b d6             	mov    %rsi,%rdx
140968a89:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
140968a8d:	e8 ce 8a 84 ff       	call   0x1401b1560
140968a92:	48 8b 5d e0          	mov    -0x20(%rbp),%rbx
140968a96:	48 39 5d e8          	cmp    %rbx,-0x18(%rbp)
140968a9a:	0f 84 8d 01 00 00    	je     0x140968c2d
140968aa0:	48 85 f6             	test   %rsi,%rsi
140968aa3:	74 48                	je     0x140968aed
140968aa5:	48 85 db             	test   %rbx,%rbx
140968aa8:	74 1c                	je     0x140968ac6
140968aaa:	4c 8b c6             	mov    %rsi,%r8
140968aad:	48 8b cb             	mov    %rbx,%rcx
140968ab0:	4d 85 f6             	test   %r14,%r14
140968ab3:	74 0a                	je     0x140968abf
140968ab5:	49 8b d6             	mov    %r14,%rdx
140968ab8:	e8 e3 93 18 00       	call   0x140af1ea0
140968abd:	eb 2e                	jmp    0x140968aed
140968abf:	33 d2                	xor    %edx,%edx
140968ac1:	e8 a6 79 18 00       	call   0x140af046c
140968ac6:	ff 15 34 3e 1a 00    	call   *0x1a3e34(%rip)        # 0x140b0c900
140968acc:	c7 00 16 00 00 00    	movl   $0x16,(%rax)
140968ad2:	ff 15 78 3e 1a 00    	call   *0x1a3e78(%rip)        # 0x140b0c950
140968ad8:	eb 13                	jmp    0x140968aed
140968ada:	45 8b c2             	mov    %r10d,%r8d
140968add:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
140968ae1:	48 8b cf             	mov    %rdi,%rcx
140968ae4:	e8 7f fb ff ff       	call   0x140968668
140968ae9:	48 8b 5d e0          	mov    -0x20(%rbp),%rbx
140968aed:	83 7f 70 08          	cmpl   $0x8,0x70(%rdi)
140968af1:	77 0e                	ja     0x140968b01
140968af3:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
140968af7:	48 8b cf             	mov    %rdi,%rcx
140968afa:	e8 5d 07 00 00       	call   0x14096925c
140968aff:	eb 5c                	jmp    0x140968b5d
140968b01:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
140968b05:	48 2b cb             	sub    %rbx,%rcx
140968b08:	0f 84 1f 01 00 00    	je     0x140968c2d
140968b0e:	48 d1 e9             	shr    $1,%rcx
140968b11:	74 14                	je     0x140968b27
140968b13:	0f b7 03             	movzwl (%rbx),%eax
140968b16:	66 c1 c8 08          	ror    $0x8,%ax
140968b1a:	66 89 03             	mov    %ax,(%rbx)
140968b1d:	48 8d 5b 02          	lea    0x2(%rbx),%rbx
140968b21:	48 83 e9 01          	sub    $0x1,%rcx
140968b25:	75 ec                	jne    0x140968b13
140968b27:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
140968b2b:	48 8b cf             	mov    %rdi,%rcx
140968b2e:	e8 3d 08 00 00       	call   0x140969370
140968b33:	48 8b 4d e8          	mov    -0x18(%rbp),%rcx
140968b37:	48 8b 55 e0          	mov    -0x20(%rbp),%rdx
140968b3b:	48 2b ca             	sub    %rdx,%rcx
140968b3e:	0f 84 e9 00 00 00    	je     0x140968c2d
140968b44:	48 d1 e9             	shr    $1,%rcx
140968b47:	74 14                	je     0x140968b5d
140968b49:	0f b7 02             	movzwl (%rdx),%eax
140968b4c:	66 c1 c8 08          	ror    $0x8,%ax
140968b50:	66 89 02             	mov    %ax,(%rdx)
140968b53:	48 8d 52 02          	lea    0x2(%rdx),%rdx
140968b57:	48 83 e9 01          	sub    $0x1,%rcx
140968b5b:	75 ec                	jne    0x140968b49
140968b5d:	83 7f 70 08          	cmpl   $0x8,0x70(%rdi)
140968b61:	73 0c                	jae    0x140968b6f
140968b63:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
140968b67:	48 8b cf             	mov    %rdi,%rcx
140968b6a:	e8 9d fc ff ff       	call   0x14096880c
140968b6f:	48 8d 4f 30          	lea    0x30(%rdi),%rcx
140968b73:	48 8d 55 e0          	lea    -0x20(%rbp),%rdx
140968b77:	e8 40 08 89 ff       	call   0x1401f93bc
140968b7c:	0f 57 c0             	xorps  %xmm0,%xmm0
140968b7f:	f3 0f 7f 45 d0       	movdqu %xmm0,-0x30(%rbp)
140968b84:	48 8d 55 d0          	lea    -0x30(%rbp),%rdx
140968b88:	49 8b cf             	mov    %r15,%rcx
140968b8b:	e8 54 d7 69 ff       	call   0x1400062e4
140968b90:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
140968b94:	48 85 c9             	test   %rcx,%rcx
140968b97:	74 3d                	je     0x140968bd6
140968b99:	83 cf ff             	or     $0xffffffff,%edi
140968b9c:	8b c7                	mov    %edi,%eax
140968b9e:	f0 0f c1 41 08       	lock xadd %eax,0x8(%rcx)
140968ba3:	03 c7                	add    %edi,%eax
140968ba5:	75 2f                	jne    0x140968bd6
140968ba7:	48 8b 5d d8          	mov    -0x28(%rbp),%rbx
140968bab:	48 8b 03             	mov    (%rbx),%rax
140968bae:	48 8b cb             	mov    %rbx,%rcx
140968bb1:	48 8b 00             	mov    (%rax),%rax
140968bb4:	ff 15 7e 40 1a 00    	call   *0x1a407e(%rip)        # 0x140b0cc38
140968bba:	8b c7                	mov    %edi,%eax
140968bbc:	f0 0f c1 43 0c       	lock xadd %eax,0xc(%rbx)
140968bc1:	03 c7                	add    %edi,%eax
140968bc3:	75 11                	jne    0x140968bd6
140968bc5:	48 8b 4d d8          	mov    -0x28(%rbp),%rcx
140968bc9:	48 8b 01             	mov    (%rcx),%rax
140968bcc:	48 8b 40 08          	mov    0x8(%rax),%rax
140968bd0:	ff 15 62 40 1a 00    	call   *0x1a4062(%rip)        # 0x140b0cc38
140968bd6:	b3 01                	mov    $0x1,%bl
140968bd8:	48 8b 4d e0          	mov    -0x20(%rbp),%rcx
140968bdc:	48 85 c9             	test   %rcx,%rcx
140968bdf:	74 30                	je     0x140968c11
140968be1:	48 8b d1             	mov    %rcx,%rdx
140968be4:	48 8b 45 f0          	mov    -0x10(%rbp),%rax
140968be8:	48 2b c1             	sub    %rcx,%rax
140968beb:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
140968bf1:	72 18                	jb     0x140968c0b
140968bf3:	48 8b 49 f8          	mov    -0x8(%rcx),%rcx
140968bf7:	48 2b d1             	sub    %rcx,%rdx
140968bfa:	48 8d 42 f8          	lea    -0x8(%rdx),%rax
140968bfe:	48 83 f8 1f          	cmp    $0x1f,%rax
140968c02:	76 07                	jbe    0x140968c0b
140968c04:	ff 15 8e 3d 1a 00    	call   *0x1a3d8e(%rip)        # 0x140b0c998
140968c0a:	cc                   	int3
140968c0b:	ff 15 af 3c 1a 00    	call   *0x1a3caf(%rip)        # 0x140b0c8c0
140968c11:	8a c3                	mov    %bl,%al
140968c13:	4c 8d 5c 24 50       	lea    0x50(%rsp),%r11
140968c18:	49 8b 5b 28          	mov    0x28(%r11),%rbx
140968c1c:	49 8b 73 30          	mov    0x30(%r11),%rsi
140968c20:	49 8b 7b 38          	mov    0x38(%r11),%rdi
140968c24:	49 8b e3             	mov    %r11,%rsp
140968c27:	41 5f                	pop    %r15
140968c29:	41 5e                	pop    %r14
140968c2b:	5d                   	pop    %rbp
140968c2c:	c3                   	ret
140968c2d:	ff 15 65 3d 1a 00    	call   *0x1a3d65(%rip)        # 0x140b0c998
140968c33:	90                   	nop
140968c34:	e8 eb 70 97 ff       	call   0x1402dfd24
140968c39:	cc                   	int3
140968c3a:	90                   	nop
140968c3b:	90                   	nop
140968c3c:	48 8b c4             	mov    %rsp,%rax
140968c3f:	48 89 58 10          	mov    %rbx,0x10(%rax)
140968c43:	48 89 70 18          	mov    %rsi,0x18(%rax)
140968c47:	48 89 78 20          	mov    %rdi,0x20(%rax)
140968c4b:	55                   	push   %rbp
140968c4c:	41 54                	push   %r12
140968c4e:	41 55                	push   %r13
140968c50:	41 56                	push   %r14
140968c52:	41 57                	push   %r15
140968c54:	48 8d 68 a1          	lea    -0x5f(%rax),%rbp
140968c58:	48 81 ec e0 00 00 00 	sub    $0xe0,%rsp
140968c5f:	48 8b 05 da 63 35 00 	mov    0x3563da(%rip),%rax        # 0x140cbf040
140968c66:	48 33 c4             	xor    %rsp,%rax
140968c69:	48 89 45 27          	mov    %rax,0x27(%rbp)
140968c6d:	48 8b f9             	mov    %rcx,%rdi
140968c70:	48 89 4d 8f          	mov    %rcx,-0x71(%rbp)
140968c74:	45 33 f6             	xor    %r14d,%r14d
140968c77:	44 88 74 24 21       	mov    %r14b,0x21(%rsp)
140968c7c:	48 8d 59 58          	lea    0x58(%rcx),%rbx
140968c80:	48 89 5d d7          	mov    %rbx,-0x29(%rbp)
140968c84:	0f 57 c0             	xorps  %xmm0,%xmm0
140968c87:	f3 0f 7f 45 af       	movdqu %xmm0,-0x51(%rbp)
140968c8c:	48 8b 43 08          	mov    0x8(%rbx),%rax
140968c90:	48 85 c0             	test   %rax,%rax
140968c93:	74 04                	je     0x140968c99
140968c95:	f0 ff 40 08          	lock incl 0x8(%rax)
140968c99:	48 8b 03             	mov    (%rbx),%rax
140968c9c:	48 89 45 af          	mov    %rax,-0x51(%rbp)
140968ca0:	48 8b 43 08          	mov    0x8(%rbx),%rax
140968ca4:	48 89 45 b7          	mov    %rax,-0x49(%rbp)
140968ca8:	48 8d 4d af          	lea    -0x51(%rbp),%rcx
140968cac:	e8 3f 22 fd ff       	call   0x14093aef0
140968cb1:	4c 8b f8             	mov    %rax,%r15
140968cb4:	48 8b 0b             	mov    (%rbx),%rcx
140968cb7:	48 8b 01             	mov    (%rcx),%rax
140968cba:	48 8b 40 28          	mov    0x28(%rax),%rax
140968cbe:	ff 15 74 3f 1a 00    	call   *0x1a3f74(%rip)        # 0x140b0cc38
140968cc4:	8b d8                	mov    %eax,%ebx
140968cc6:	8b 4f 74             	mov    0x74(%rdi),%ecx
140968cc9:	8b 47 70             	mov    0x70(%rdi),%eax
140968ccc:	48 0f af c8          	imul   %rax,%rcx
140968cd0:	ba ff ff ff ff       	mov    $0xffffffff,%edx
140968cd5:	48 3b ca             	cmp    %rdx,%rcx
140968cd8:	0f 87 3e 05 00 00    	ja     0x14096921c
140968cde:	8d 41 07             	lea    0x7(%rcx),%eax
140968ce1:	83 e0 f8             	and    $0xfffffff8,%eax
140968ce4:	89 44 24 24          	mov    %eax,0x24(%rsp)
140968ce8:	8b 77 78             	mov    0x78(%rdi),%esi
140968ceb:	8b c1                	mov    %ecx,%eax
140968ced:	48 0f af f0          	imul   %rax,%rsi