140056db2:	48 8d 15 3f 48 02 00 	lea    0x2483f(%rip),%rdx        # 0x14007b5f8
140056db9:	48 8b 49 30          	mov    0x30(%rcx),%rcx
140056dbd:	e8 ee 08 00 00       	call   0x1400576b0
140056dc2:	85 c0                	test   %eax,%eax
140056dc4:	0f 88 14 03 00 00    	js     0x1400570de
140056dca:	40 84 f6             	test   %sil,%sil
140056dcd:	74 03                	je     0x140056dd2
140056dcf:	44 89 3b             	mov    %r15d,(%rbx)
140056dd2:	83 3b 00             	cmpl   $0x0,(%rbx)
140056dd5:	75 08                	jne    0x140056ddf
140056dd7:	41 8b c7             	mov    %r15d,%eax
140056dda:	e9 ff 02 00 00       	jmp    0x1400570de
140056ddf:	48 8b cf             	mov    %rdi,%rcx
140056de2:	e8 c9 fa ff ff       	call   0x1400568b0
140056de7:	85 c0                	test   %eax,%eax
140056de9:	0f 88 ef 02 00 00    	js     0x1400570de
140056def:	48 8d 5f 10          	lea    0x10(%rdi),%rbx
140056df3:	48 8d 15 7e 75 02 00 	lea    0x2757e(%rip),%rdx        # 0x14007e378
140056dfa:	48 8b 0b             	mov    (%rbx),%rcx
140056dfd:	ff 15 5d 87 01 00    	call   *0x1875d(%rip)        # 0x14006f560
140056e03:	f7 d8                	neg    %eax
140056e05:	1b f6                	sbb    %esi,%esi
140056e07:	81 e6 00 b7 80 f0    	and    $0xf080b700,%esi
140056e0d:	81 c6 00 a3 e1 11    	add    $0x11e1a300,%esi
140056e13:	48 8d 6f 40          	lea    0x40(%rdi),%rbp
140056e17:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
140056e1c:	45 33 c9             	xor    %r9d,%r9d
140056e1f:	44 8b c6             	mov    %esi,%r8d
140056e22:	48 8d 15 ef 47 02 00 	lea    0x247ef(%rip),%rdx        # 0x14007b618
140056e29:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
140056e2d:	e8 7e 08 00 00       	call   0x1400576b0
140056e32:	85 c0                	test   %eax,%eax
140056e34:	0f 88 a4 02 00 00    	js     0x1400570de
140056e3a:	3b 75 00             	cmp    0x0(%rbp),%esi
140056e3d:	74 39                	je     0x140056e78
140056e3f:	81 7d 00 00 5a 62 02 	cmpl   $0x2625a00,0x0(%rbp)
140056e46:	74 0d                	je     0x140056e55
140056e48:	81 7d 00 80 f0 fa 02 	cmpl   $0x2faf080,0x0(%rbp)
140056e4f:	75 27                	jne    0x140056e78
140056e51:	48 8d 5f 10          	lea    0x10(%rdi),%rbx
140056e55:	48 89 6c 24 20       	mov    %rbp,0x20(%rsp)
140056e5a:	45 8a cf             	mov    %r15b,%r9b
140056e5d:	44 8b c6             	mov    %esi,%r8d
140056e60:	48 8d 15 b1 47 02 00 	lea    0x247b1(%rip),%rdx        # 0x14007b618
140056e67:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
140056e6b:	e8 40 08 00 00       	call   0x1400576b0
140056e70:	85 c0                	test   %eax,%eax
140056e72:	0f 88 66 02 00 00    	js     0x1400570de
140056e78:	48 8d 47 44          	lea    0x44(%rdi),%rax
140056e7c:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140056e81:	45 33 c9             	xor    %r9d,%r9d
140056e84:	45 8b c7             	mov    %r15d,%r8d
140056e87:	48 8d 15 5a 48 02 00 	lea    0x2485a(%rip),%rdx        # 0x14007b6e8
140056e8e:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
140056e92:	e8 19 08 00 00       	call   0x1400576b0
140056e97:	85 c0                	test   %eax,%eax
140056e99:	0f 88 3f 02 00 00    	js     0x1400570de
140056e9f:	48 8d 47 48          	lea    0x48(%rdi),%rax
140056ea3:	48 89 44 24 20       	mov    %rax,0x20(%rsp)
140056ea8:	45 8a cf             	mov    %r15b,%r9b
140056eab:	41 b8 0f 00 00 00    	mov    $0xf,%r8d
140056eb1:	48 8d 15 60 48 02 00 	lea    0x24860(%rip),%rdx        # 0x14007b718
140056eb8:	48 8b 4f 30          	mov    0x30(%rdi),%rcx
140056ebc:	e8 ef 07 00 00       	call   0x1400576b0
140056ec1:	85 c0                	test   %eax,%eax
140056ec3:	0f 88 15 02 00 00    	js     0x1400570de
140056ec9:	48 8b 47 18          	mov    0x18(%rdi),%rax
140056ecd:	8b 48 f0             	mov    -0x10(%rax),%ecx
140056ed0:	8d 34 4d 02 00 00 00 	lea    0x2(,%rcx,2),%esi
140056ed7:	48 8b 03             	mov    (%rbx),%rax
140056eda:	8b 48 f0             	mov    -0x10(%rax),%ecx
140056edd:	8d 2c 4d 02 00 00 00 	lea    0x2(,%rcx,2),%ebp
140056ee4:	8d 46 78             	lea    0x78(%rsi),%eax
140056ee7:	03 c5                	add    %ebp,%eax
140056ee9:	83 f8 7c             	cmp    $0x7c,%eax
140056eec:	73 0a                	jae    0x140056ef8
140056eee:	b8 05 40 00 80       	mov    $0x80004005,%eax
140056ef3:	e9 e6 01 00 00       	jmp    0x1400570de
140056ef8:	89 47 58             	mov    %eax,0x58(%rdi)
140056efb:	48 83 64 24 30 00    	andq   $0x0,0x30(%rsp)
140056f01:	48 63 c8             	movslq %eax,%rcx
140056f04:	e8 d3 e9 ff ff       	call   0x1400558dc
140056f09:	48 8b d8             	mov    %rax,%rbx
140056f0c:	48 89 44 24 30       	mov    %rax,0x30(%rsp)
140056f11:	48 85 c0             	test   %rax,%rax
140056f14:	75 0d                	jne    0x140056f23
140056f16:	21 47 58             	and    %eax,0x58(%rdi)
140056f19:	bf 0e 00 07 80       	mov    $0x8007000e,%edi
140056f1e:	e9 b1 01 00 00       	jmp    0x1400570d4
140056f23:	4c 63 47 58          	movslq 0x58(%rdi),%r8
140056f27:	33 d2                	xor    %edx,%edx
140056f29:	48 8b cb             	mov    %rbx,%rcx
140056f2c:	e8 e5 33 01 00       	call   0x14006a316
140056f31:	8b 47 58             	mov    0x58(%rdi),%eax
140056f34:	89 03                	mov    %eax,(%rbx)
140056f36:	c7 43 2c 00 00 02 00 	movl   $0x20000,0x2c(%rbx)
140056f3d:	c7 43 40 00 00 00 01 	movl   $0x1000000,0x40(%rbx)
140056f44:	8b 47 74             	mov    0x74(%rdi),%eax
140056f47:	f7 d8                	neg    %eax
140056f49:	1b d2                	sbb    %edx,%edx
140056f4b:	83 e2 06             	and    $0x6,%edx
140056f4e:	81 c2 02 80 00 01    	add    $0x1008002,%edx
140056f54:	c7 43 28 02 00 00 00 	movl   $0x2,0x28(%rbx)
140056f5b:	89 53 40             	mov    %edx,0x40(%rbx)
140056f5e:	80 7f 6c 00          	cmpb   $0x0,0x6c(%rdi)
140056f62:	74 11                	je     0x140056f75
140056f64:	83 7f 70 00          	cmpl   $0x0,0x70(%rdi)
140056f68:	75 0b                	jne    0x140056f75
140056f6a:	81 ca 00 08 02 00    	or     $0x20800,%edx
140056f70:	89 53 40             	mov    %edx,0x40(%rbx)
140056f73:	eb 09                	jmp    0x140056f7e
140056f75:	0f 10 47 5c          	movups 0x5c(%rdi),%xmm0
140056f79:	f3 0f 7f 43 18       	movdqu %xmm0,0x18(%rbx)
140056f7e:	c7 43 30 40 00 00 00 	movl   $0x40,0x30(%rbx)
140056f85:	44 89 7b 3c          	mov    %r15d,0x3c(%rbx)
140056f89:	81 7f 40 40 42 0f 00 	cmpl   $0xf4240,0x40(%rdi)
140056f90:	7e 15                	jle    0x140056fa7
140056f92:	b8 83 de 1b 43       	mov    $0x431bde83,%eax
140056f97:	f7 6f 40             	imull  0x40(%rdi)
140056f9a:	c1 fa 12             	sar    $0x12,%edx
140056f9d:	8b c2                	mov    %edx,%eax
140056f9f:	c1 e8 1f             	shr    $0x1f,%eax
140056fa2:	03 d0                	add    %eax,%edx
140056fa4:	89 53 3c             	mov    %edx,0x3c(%rbx)
140056fa7:	83 63 44 00          	andl   $0x0,0x44(%rbx)
140056fab:	c7 43 74 78 00 00 00 	movl   $0x78,0x74(%rbx)
140056fb2:	8d 45 78             	lea    0x78(%rbp),%eax
140056fb5:	89 43 70             	mov    %eax,0x70(%rbx)
140056fb8:	8b c8                	mov    %eax,%ecx
140056fba:	48 03 cb             	add    %rbx,%rcx
140056fbd:	8b d6                	mov    %esi,%edx
140056fbf:	48 d1 ea             	shr    $1,%rdx
140056fc2:	4c 8b 47 18          	mov    0x18(%rdi),%r8
140056fc6:	e8 31 64 ff ff       	call   0x14004d3fc
140056fcb:	c6 44 24 70 00       	movb   $0x0,0x70(%rsp)
140056fd0:	48 8d 54 24 70       	lea    0x70(%rsp),%rdx
140056fd5:	48 8b 4f 10          	mov    0x10(%rdi),%rcx
140056fd9:	e8 32 fb ff ff       	call   0x140056b10
140056fde:	80 7c 24 70 00       	cmpb   $0x0,0x70(%rsp)
140056fe3:	75 11                	jne    0x140056ff6
140056fe5:	45 8b c7             	mov    %r15d,%r8d
140056fe8:	48 8b 57 20          	mov    0x20(%rdi),%rdx
140056fec:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
140056ff0:	ff 15 b2 82 01 00    	call   *0x182b2(%rip)        # 0x14006f2a8
140056ff6:	48 8d 6f 38          	lea    0x38(%rdi),%rbp
140056ffa:	4c 8b c3             	mov    %rbx,%r8
140056ffd:	48 8b 57 10          	mov    0x10(%rdi),%rdx
140057001:	48 8b cd             	mov    %rbp,%rcx
140057004:	ff 15 d6 80 08 00    	call   *0x880d6(%rip)        # 0x1400df0e0
14005700a:	85 c0                	test   %eax,%eax
14005700c:	74 59                	je     0x140057067
14005700e:	3d b7 00 00 00       	cmp    $0xb7,%eax
140057013:	74 13                	je     0x140057028
140057015:	3d 92 13 00 00       	cmp    $0x1392,%eax
14005701a:	74 0c                	je     0x140057028
14005701c:	83 f8 20             	cmp    $0x20,%eax
14005701f:	74 07                	je     0x140057028
140057021:	3d a1 00 00 00       	cmp    $0xa1,%eax
140057026:	75 37                	jne    0x14005705f
140057028:	45 8b cf             	mov    %r15d,%r9d
14005702b:	4c 8b c3             	mov    %rbx,%r8
14005702e:	48 8b 57 10          	mov    0x10(%rdi),%rdx
140057032:	33 c9                	xor    %ecx,%ecx
140057034:	ff 15 76 80 08 00    	call   *0x88076(%rip)        # 0x1400df0b0
14005703a:	85 c0                	test   %eax,%eax
14005703c:	75 6d                	jne    0x1400570ab
14005703e:	45 8b c7             	mov    %r15d,%r8d
140057041:	48 8b 57 20          	mov    0x20(%rdi),%rdx
140057045:	48 8b 4f 18          	mov    0x18(%rdi),%rcx
140057049:	ff 15 59 82 01 00    	call   *0x18259(%rip)        # 0x14006f2a8
14005704f:	4c 8b c3             	mov    %rbx,%r8
140057052:	48 8b 57 10          	mov    0x10(%rdi),%rdx
140057056:	48 8b cd             	mov    %rbp,%rcx
140057059:	ff 15 81 80 08 00    	call   *0x88081(%rip)        # 0x1400df0e0
14005705f:	85 c0                	test   %eax,%eax
140057061:	75 48                	jne    0x1400570ab
140057063:	48 8d 6f 38          	lea    0x38(%rdi),%rbp
140057067:	33 f6                	xor    %esi,%esi
140057069:	39 77 08             	cmp    %esi,0x8(%rdi)
14005706c:	7e 20                	jle    0x14005708e
14005706e:	48 63 c6             	movslq %esi,%rax
140057071:	48 69 c8 28 02 00 00 	imul   $0x228,%rax,%rcx
140057078:	48 03 0f             	add    (%rdi),%rcx
14005707b:	4c 8b c5             	mov    %rbp,%r8
14005707e:	48 8b d7             	mov    %rdi,%rdx
140057081:	e8 2e 02 00 00       	call   0x1400572b4
140057086:	41 03 f7             	add    %r15d,%esi
140057089:	3b 77 08             	cmp    0x8(%rdi),%esi
14005708c:	7c e0                	jl     0x14005706e
14005708e:	48 83 c7 50          	add    $0x50,%rdi
140057092:	48 8b 0f             	mov    (%rdi),%rcx
140057095:	48 3b cb             	cmp    %rbx,%rcx
140057098:	75 2b                	jne    0x1400570c5
14005709a:	48 85 c9             	test   %rcx,%rcx
14005709d:	74 33                	je     0x1400570d2
14005709f:	48 8d 44 24 30       	lea    0x30(%rsp),%rax
1400570a4:	48 3b f8             	cmp    %rax,%rdi
1400570a7:	74 29                	je     0x1400570d2
1400570a9:	eb 25                	jmp    0x1400570d0
1400570ab:	0f b7 f8             	movzwl %ax,%edi
1400570ae:	81 cf 00 00 07 80    	or     $0x80070000,%edi
1400570b4:	85 c0                	test   %eax,%eax
1400570b6:	0f 4e f8             	cmovle %eax,%edi
1400570b9:	b8 05 40 00 80       	mov    $0x80004005,%eax
1400570be:	85 ff                	test   %edi,%edi
1400570c0:	0f 49 f8             	cmovns %eax,%edi
1400570c3:	eb 0f                	jmp    0x1400570d4
1400570c5:	e8 16 e8 ff ff       	call   0x1400558e0
1400570ca:	48 8b c3             	mov    %rbx,%rax
1400570cd:	48 89 1f             	mov    %rbx,(%rdi)
1400570d0:	33 db                	xor    %ebx,%ebx
1400570d2:	33 ff                	xor    %edi,%edi
1400570d4:	48 8b cb             	mov    %rbx,%rcx
1400570d7:	e8 04 e8 ff ff       	call   0x1400558e0
1400570dc:	8b c7                	mov    %edi,%eax
1400570de:	48 8b 5c 24 60       	mov    0x60(%rsp),%rbx
1400570e3:	48 8b 6c 24 68       	mov    0x68(%rsp),%rbp
1400570e8:	48 83 c4 40          	add    $0x40,%rsp
1400570ec:	41 5f                	pop    %r15
1400570ee:	5f                   	pop    %rdi
1400570ef:	5e                   	pop    %rsi
1400570f0:	c3                   	ret
1400570f1:	90                   	nop
1400570f2:	90                   	nop
1400570f3:	90                   	nop
1400570f4:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1400570f9:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1400570fe:	57                   	push   %rdi
1400570ff:	48 83 ec 20          	sub    $0x20,%rsp
140057103:	40 8a f2             	mov    %dl,%sil
140057106:	48 8b d9             	mov    %rcx,%rbx
140057109:	e8 d6 0e 00 00       	call   0x140057fe4
14005710e:	33 ff                	xor    %edi,%edi
140057110:	48 39 bb b8 16 00 00 	cmp    %rdi,0x16b8(%rbx)
140057117:	76 2b                	jbe    0x140057144
140057119:	8b c7                	mov    %edi,%eax
14005711b:	48 3b 83 b8 16 00 00 	cmp    0x16b8(%rbx),%rax
140057122:	73 32                	jae    0x140057156
140057124:	48 8b 8b b0 16 00 00 	mov    0x16b0(%rbx),%rcx
14005712b:	40 8a d6             	mov    %sil,%dl
14005712e:	48 8b 0c c1          	mov    (%rcx,%rax,8),%rcx
140057132:	e8 2d 00 00 00       	call   0x140057164
140057137:	ff c7                	inc    %edi
140057139:	8b c7                	mov    %edi,%eax
14005713b:	48 3b 83 b8 16 00 00 	cmp    0x16b8(%rbx),%rax
140057142:	72 e0                	jb     0x140057124
140057144:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140057149:	33 c0                	xor    %eax,%eax
14005714b:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
140057150:	48 83 c4 20          	add    $0x20,%rsp
140057154:	5f                   	pop    %rdi
140057155:	c3                   	ret
140057156:	b9 57 00 07 80       	mov    $0x80070057,%ecx
14005715b:	e8 70 74 fc ff       	call   0x14001e5d0
140057160:	cc                   	int3
140057161:	90                   	nop
140057162:	90                   	nop
140057163:	90                   	nop
140057164:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140057169:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
14005716e:	57                   	push   %rdi
14005716f:	48 83 ec 30          	sub    $0x30,%rsp
140057173:	33 ff                	xor    %edi,%edi
140057175:	40 8a f2             	mov    %dl,%sil
140057178:	48 8b d9             	mov    %rcx,%rbx
14005717b:	48 39 79 38          	cmp    %rdi,0x38(%rcx)
14005717f:	75 05                	jne    0x140057186
140057181:	8d 47 01             	lea    0x1(%rdi),%eax
140057184:	eb 56                	jmp    0x1400571dc
140057186:	4c 8b 41 50          	mov    0x50(%rcx),%r8
14005718a:	41 b9 01 00 00 00    	mov    $0x1,%r9d
140057190:	48 8b 51 10          	mov    0x10(%rcx),%rdx
140057194:	33 c9                	xor    %ecx,%ecx
140057196:	ff 15 14 7f 08 00    	call   *0x87f14(%rip)        # 0x1400df0b0
14005719c:	48 8b 4b 50          	mov    0x50(%rbx),%rcx
1400571a0:	e8 3b e7 ff ff       	call   0x1400558e0
1400571a5:	48 89 7b 50          	mov    %rdi,0x50(%rbx)
1400571a9:	48 89 7b 38          	mov    %rdi,0x38(%rbx)
1400571ad:	40 84 f6             	test   %sil,%sil
1400571b0:	74 28                	je     0x1400571da
1400571b2:	48 8d 4b 28          	lea    0x28(%rbx),%rcx
1400571b6:	44 8a ce             	mov    %sil,%r9b
1400571b9:	48 89 4c 24 20       	mov    %rcx,0x20(%rsp)
1400571be:	48 8d 15 33 44 02 00 	lea    0x24433(%rip),%rdx        # 0x14007b5f8
1400571c5:	48 8b 4b 30          	mov    0x30(%rbx),%rcx
1400571c9:	45 33 c0             	xor    %r8d,%r8d
1400571cc:	e8 df 04 00 00       	call   0x1400576b0
1400571d1:	85 c0                	test   %eax,%eax
1400571d3:	0f 48 f8             	cmovs  %eax,%edi
1400571d6:	8b c7                	mov    %edi,%eax
1400571d8:	eb 02                	jmp    0x1400571dc
1400571da:	33 c0                	xor    %eax,%eax
1400571dc:	48 8b 5c 24 40       	mov    0x40(%rsp),%rbx
1400571e1:	48 8b 74 24 48       	mov    0x48(%rsp),%rsi
1400571e6:	48 83 c4 30          	add    $0x30,%rsp
1400571ea:	5f                   	pop    %rdi
1400571eb:	c3                   	ret
1400571ec:	48 8b c4             	mov    %rsp,%rax
1400571ef:	48 89 58 08          	mov    %rbx,0x8(%rax)
1400571f3:	48 89 68 10          	mov    %rbp,0x10(%rax)
1400571f7:	48 89 70 18          	mov    %rsi,0x18(%rax)
1400571fb:	48 89 78 20          	mov    %rdi,0x20(%rax)
1400571ff:	41 56                	push   %r14
140057201:	48 83 ec 20          	sub    $0x20,%rsp
140057205:	48 8b 01             	mov    (%rcx),%rax
140057208:	45 33 f6             	xor    %r14d,%r14d
14005720b:	0f b7 ea             	movzwl %dx,%ebp
14005720e:	48 8b f9             	mov    %rcx,%rdi
140057211:	8b 70 f0             	mov    -0x10(%rax),%esi
140057214:	8d 5e 01             	lea    0x1(%rsi),%ebx
140057217:	85 db                	test   %ebx,%ebx
140057219:	78 51                	js     0x14005726c
14005721b:	45 8d 46 01          	lea    0x1(%r14),%r8d
14005721f:	44 2b 40 f8          	sub    -0x8(%rax),%r8d
140057223:	8b 40 f4             	mov    -0xc(%rax),%eax
140057226:	2b c3                	sub    %ebx,%eax
140057228:	44 0b c0             	or     %eax,%r8d
14005722b:	7d 07                	jge    0x140057234
14005722d:	8b d3                	mov    %ebx,%edx
14005722f:	e8 9c a7 fc ff       	call   0x1400219d0
140057234:	48 8b 07             	mov    (%rdi),%rax
140057237:	66 89 2c 70          	mov    %bp,(%rax,%rsi,2)
14005723b:	48 8b 07             	mov    (%rdi),%rax
14005723e:	3b 58 f4             	cmp    -0xc(%rax),%ebx
140057241:	7f 29                	jg     0x14005726c
140057243:	48 8b 6c 24 38       	mov    0x38(%rsp),%rbp
140057248:	48 8b 74 24 40       	mov    0x40(%rsp),%rsi
14005724d:	89 58 f0             	mov    %ebx,-0x10(%rax)
140057250:	48 8b 07             	mov    (%rdi),%rax
140057253:	48 8b 7c 24 48       	mov    0x48(%rsp),%rdi
140057258:	48 63 cb             	movslq %ebx,%rcx
14005725b:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140057260:	66 44 89 34 48       	mov    %r14w,(%rax,%rcx,2)
140057265:	48 83 c4 20          	add    $0x20,%rsp
140057269:	41 5e                	pop    %r14
14005726b:	c3                   	ret
14005726c:	b9 57 00 07 80       	mov    $0x80070057,%ecx
140057271:	e8 5a 73 fc ff       	call   0x14001e5d0
140057276:	cc                   	int3
140057277:	90                   	nop
140057278:	40 53                	rex push %rbx
14005727a:	48 83 ec 20          	sub    $0x20,%rsp
14005727e:	48 8b 12             	mov    (%rdx),%rdx
140057281:	45 33 c0             	xor    %r8d,%r8d
140057284:	33 c9                	xor    %ecx,%ecx
140057286:	33 db                	xor    %ebx,%ebx
140057288:	ff 15 ca 80 08 00    	call   *0x880ca(%rip)        # 0x1400df358
14005728e:	85 c0                	test   %eax,%eax
140057290:	74 1a                	je     0x1400572ac
140057292:	3d b7 00 00 00       	cmp    $0xb7,%eax