140038e40:	40 53                	rex push %rbx
140038e42:	48 83 ec 20          	sub    $0x20,%rsp
140038e46:	48 8b d9             	mov    %rcx,%rbx
140038e49:	48 85 c9             	test   %rcx,%rcx
140038e4c:	74 22                	je     0x140038e70
140038e4e:	48 8b 01             	mov    (%rcx),%rax
140038e51:	48 8b 00             	mov    (%rax),%rax
140038e54:	ff 15 d6 9f 1d 00    	call   *0x1d9fd6(%rip)        # 0x140212e30
140038e5a:	83 f8 02             	cmp    $0x2,%eax
140038e5d:	75 11                	jne    0x140038e70
140038e5f:	48 8b 03             	mov    (%rbx),%rax
140038e62:	48 8b cb             	mov    %rbx,%rcx
140038e65:	48 8b 00             	mov    (%rax),%rax
140038e68:	ff 15 c2 9f 1d 00    	call   *0x1d9fc2(%rip)        # 0x140212e30
140038e6e:	eb 02                	jmp    0x140038e72
140038e70:	33 c0                	xor    %eax,%eax
140038e72:	48 83 c4 20          	add    $0x20,%rsp
140038e76:	5b                   	pop    %rbx
140038e77:	c3                   	ret
140038e78:	40 53                	rex push %rbx
140038e7a:	48 83 ec 20          	sub    $0x20,%rsp
140038e7e:	48 8b d9             	mov    %rcx,%rbx
140038e81:	48 85 c9             	test   %rcx,%rcx
140038e84:	75 07                	jne    0x140038e8d
140038e86:	33 c0                	xor    %eax,%eax
140038e88:	e9 b8 00 00 00       	jmp    0x140038f45
140038e8d:	b9 40 00 00 00       	mov    $0x40,%ecx
140038e92:	ff 15 b8 9c 1d 00    	call   *0x1d9cb8(%rip)        # 0x140212b50
140038e98:	4c 8b c8             	mov    %rax,%r9
140038e9b:	48 85 c0             	test   %rax,%rax
140038e9e:	0f 84 a7 00 00 00    	je     0x140038f4b
140038ea4:	49 83 61 38 00       	andq   $0x0,0x38(%r9)
140038ea9:	48 8d 05 48 e5 1f 00 	lea    0x1fe548(%rip),%rax        # 0x1402373f8
140038eb0:	49 89 01             	mov    %rax,(%r9)
140038eb3:	49 8d 49 1c          	lea    0x1c(%r9),%rcx
140038eb7:	4c 8b 43 18          	mov    0x18(%rbx),%r8
140038ebb:	41 ba 04 00 00 00    	mov    $0x4,%r10d
140038ec1:	4d 89 41 08          	mov    %r8,0x8(%r9)
140038ec5:	41 8b d2             	mov    %r10d,%edx
140038ec8:	41 8b 00             	mov    (%r8),%eax
140038ecb:	4d 03 c2             	add    %r10,%r8
140038ece:	41 89 41 10          	mov    %eax,0x10(%r9)
140038ed2:	41 0f b7 00          	movzwl (%r8),%eax
140038ed6:	49 83 c0 02          	add    $0x2,%r8
140038eda:	66 41 89 41 14       	mov    %ax,0x14(%r9)
140038edf:	41 8b 00             	mov    (%r8),%eax
140038ee2:	4d 03 c2             	add    %r10,%r8
140038ee5:	41 89 41 18          	mov    %eax,0x18(%r9)
140038ee9:	41 8b 00             	mov    (%r8),%eax
140038eec:	4d 03 c2             	add    %r10,%r8
140038eef:	89 01                	mov    %eax,(%rcx)
140038ef1:	49 03 ca             	add    %r10,%rcx
140038ef4:	48 83 ea 01          	sub    $0x1,%rdx
140038ef8:	75 ef                	jne    0x140038ee9
140038efa:	41 8a 10             	mov    (%r8),%dl
140038efd:	8a c2                	mov    %dl,%al
140038eff:	24 01                	and    $0x1,%al
140038f01:	41 88 41 2c          	mov    %al,0x2c(%r9)
140038f05:	8a c2                	mov    %dl,%al
140038f07:	24 02                	and    $0x2,%al
140038f09:	f6 d8                	neg    %al
140038f0b:	1a c9                	sbb    %cl,%cl
140038f0d:	41 22 d2             	and    %r10b,%dl
140038f10:	80 e1 02             	and    $0x2,%cl
140038f13:	80 c1 02             	add    $0x2,%cl
140038f16:	41 88 49 2d          	mov    %cl,0x2d(%r9)
140038f1a:	f6 da                	neg    %dl
140038f1c:	1a c0                	sbb    %al,%al
140038f1e:	24 02                	and    $0x2,%al
140038f20:	04 02                	add    $0x2,%al
140038f22:	41 88 41 2e          	mov    %al,0x2e(%r9)
140038f26:	41 8a 40 01          	mov    0x1(%r8),%al
140038f2a:	41 88 41 2f          	mov    %al,0x2f(%r9)
140038f2e:	41 8a 40 02          	mov    0x2(%r8),%al
140038f32:	41 88 41 30          	mov    %al,0x30(%r9)
140038f36:	41 8a 40 03          	mov    0x3(%r8),%al
140038f3a:	41 88 41 31          	mov    %al,0x31(%r9)
140038f3e:	49 8b c1             	mov    %r9,%rax
140038f41:	49 89 59 38          	mov    %rbx,0x38(%r9)
140038f45:	48 83 c4 20          	add    $0x20,%rsp
140038f49:	5b                   	pop    %rbx
140038f4a:	c3                   	ret
140038f4b:	e8 04 0b fd ff       	call   0x140009a54
140038f50:	cc                   	int3
140038f51:	90                   	nop
140038f52:	90                   	nop
140038f53:	90                   	nop
140038f54:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
140038f59:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
140038f5e:	57                   	push   %rdi
140038f5f:	48 83 ec 20          	sub    $0x20,%rsp
140038f63:	48 8b f9             	mov    %rcx,%rdi
140038f66:	48 85 c9             	test   %rcx,%rcx
140038f69:	75 07                	jne    0x140038f72
140038f6b:	33 c0                	xor    %eax,%eax
140038f6d:	e9 b2 00 00 00       	jmp    0x140039024
140038f72:	b9 28 00 00 00       	mov    $0x28,%ecx
140038f77:	ff 15 d3 9b 1d 00    	call   *0x1d9bd3(%rip)        # 0x140212b50
140038f7d:	48 8b d8             	mov    %rax,%rbx
140038f80:	48 85 c0             	test   %rax,%rax
140038f83:	0f 84 ab 00 00 00    	je     0x140039034
140038f89:	48 83 c8 ff          	or     $0xffffffffffffffff,%rax
140038f8d:	48 89 03             	mov    %rax,(%rbx)
140038f90:	48 83 63 08 00       	andq   $0x0,0x8(%rbx)
140038f95:	83 63 10 00          	andl   $0x0,0x10(%rbx)
140038f99:	48 89 43 20          	mov    %rax,0x20(%rbx)
140038f9d:	48 89 7b 18          	mov    %rdi,0x18(%rbx)
140038fa1:	33 f6                	xor    %esi,%esi
140038fa3:	81 3f e0 01 ce fa    	cmpl   $0xface01e0,(%rdi)
140038fa9:	75 05                	jne    0x140038fb0
140038fab:	8d 46 0b             	lea    0xb(%rsi),%eax
140038fae:	eb 0d                	jmp    0x140038fbd
140038fb0:	33 c0                	xor    %eax,%eax
140038fb2:	81 3f 03 02 ce fa    	cmpl   $0xface0203,(%rdi)
140038fb8:	0f 94 c0             	sete   %al
140038fbb:	ff c0                	inc    %eax
140038fbd:	83 f8 0b             	cmp    $0xb,%eax
140038fc0:	75 10                	jne    0x140038fd2
140038fc2:	48 8b cb             	mov    %rbx,%rcx
140038fc5:	e8 ae fe ff ff       	call   0x140038e78
140038fca:	48 8b f0             	mov    %rax,%rsi
140038fcd:	48 85 c0             	test   %rax,%rax
140038fd0:	75 4f                	jne    0x140039021
140038fd2:	48 8b 0b             	mov    (%rbx),%rcx
140038fd5:	48 8d 51 ff          	lea    -0x1(%rcx),%rdx
140038fd9:	48 83 fa fd          	cmp    $0xfffffffffffffffd,%rdx
140038fdd:	77 39                	ja     0x140039018
140038fdf:	ff 15 eb 90 1d 00    	call   *0x1d90eb(%rip)        # 0x1402120d0
140038fe5:	48 83 23 00          	andq   $0x0,(%rbx)
140038fe9:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
140038fed:	48 ff c9             	dec    %rcx
140038ff0:	48 83 f9 fd          	cmp    $0xfffffffffffffffd,%rcx
140038ff4:	77 22                	ja     0x140039018
140038ff6:	48 8b 4b 18          	mov    0x18(%rbx),%rcx
140038ffa:	48 85 c9             	test   %rcx,%rcx
140038ffd:	74 19                	je     0x140039018
140038fff:	ff 15 4b 92 1d 00    	call   *0x1d924b(%rip)        # 0x140212250
140039005:	85 c0                	test   %eax,%eax
140039007:	74 0f                	je     0x140039018
140039009:	48 8b 4b 08          	mov    0x8(%rbx),%rcx
14003900d:	ff 15 bd 90 1d 00    	call   *0x1d90bd(%rip)        # 0x1402120d0
140039013:	48 83 63 08 00       	andq   $0x0,0x8(%rbx)
140039018:	48 8b cb             	mov    %rbx,%rcx
14003901b:	ff 15 1f 9b 1d 00    	call   *0x1d9b1f(%rip)        # 0x140212b40
140039021:	48 8b c6             	mov    %rsi,%rax
140039024:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
140039029:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
14003902e:	48 83 c4 20          	add    $0x20,%rsp
140039032:	5f                   	pop    %rdi
140039033:	c3                   	ret
140039034:	e8 1b 0a fd ff       	call   0x140009a54
140039039:	cc                   	int3
14003903a:	90                   	nop
14003903b:	90                   	nop
14003903c:	40 53                	rex push %rbx
14003903e:	55                   	push   %rbp
14003903f:	56                   	push   %rsi
140039040:	57                   	push   %rdi
140039041:	41 54                	push   %r12
140039043:	41 55                	push   %r13
140039045:	41 56                	push   %r14
140039047:	41 57                	push   %r15
140039049:	48 81 ec b8 00 00 00 	sub    $0xb8,%rsp
140039050:	48 8b 05 29 81 2c 00 	mov    0x2c8129(%rip),%rax        # 0x140301180
140039057:	48 33 c4             	xor    %rsp,%rax
14003905a:	48 89 84 24 a0 00 00 	mov    %rax,0xa0(%rsp)
140039061:	00
140039062:	4c 8b 94 24 48 01 00 	mov    0x148(%rsp),%r10
140039069:	00
14003906a:	45 33 db             	xor    %r11d,%r11d
14003906d:	48 8b c2             	mov    %rdx,%rax
140039070:	4c 89 4c 24 70       	mov    %r9,0x70(%rsp)
140039075:	48 f7 d8             	neg    %rax
140039078:	4c 89 54 24 68       	mov    %r10,0x68(%rsp)
14003907d:	4c 8b ea             	mov    %rdx,%r13
140039080:	44 89 5c 24 58       	mov    %r11d,0x58(%rsp)
140039085:	45 1b ff             	sbb    %r15d,%r15d
140039088:	44 89 5c 24 60       	mov    %r11d,0x60(%rsp)
14003908d:	45 23 f8             	and    %r8d,%r15d
140039090:	45 8b f3             	mov    %r11d,%r14d
140039093:	44 89 7c 24 54       	mov    %r15d,0x54(%rsp)
140039098:	48 85 c9             	test   %rcx,%rcx
14003909b:	0f 84 64 04 00 00    	je     0x140039505
1400390a1:	48 85 d2             	test   %rdx,%rdx
1400390a4:	75 09                	jne    0x1400390af
1400390a6:	4d 85 c9             	test   %r9,%r9
1400390a9:	0f 84 56 04 00 00    	je     0x140039505
1400390af:	44 0f b6 21          	movzbl (%rcx),%r12d
1400390b3:	48 8d 79 01          	lea    0x1(%rcx),%rdi
1400390b7:	8a 94 24 20 01 00 00 	mov    0x120(%rsp),%dl
1400390be:	45 84 e4             	test   %r12b,%r12b
1400390c1:	79 0c                	jns    0x1400390cf
1400390c3:	41 8b f4             	mov    %r12d,%esi
1400390c6:	44 8a e2             	mov    %dl,%r12b
1400390c9:	0f ba f6 07          	btr    $0x7,%esi
1400390cd:	eb 15                	jmp    0x1400390e4
1400390cf:	41 f6 c4 40          	test   $0x40,%r12b
1400390d3:	74 09                	je     0x1400390de
1400390d5:	0f b7 37             	movzwl (%rdi),%esi
1400390d8:	48 83 c7 02          	add    $0x2,%rdi
1400390dc:	eb 06                	jmp    0x1400390e4
1400390de:	0f b6 37             	movzbl (%rdi),%esi
1400390e1:	48 ff c7             	inc    %rdi
1400390e4:	48 8b ef             	mov    %rdi,%rbp
1400390e7:	41 f6 c4 30          	test   $0x30,%r12b
1400390eb:	0f 84 9e 00 00 00    	je     0x14003918f
1400390f1:	41 f6 c4 10          	test   $0x10,%r12b
1400390f5:	74 0a                	je     0x140039101
1400390f7:	44 0f b7 1f          	movzwl (%rdi),%r11d
1400390fb:	48 83 c7 02          	add    $0x2,%rdi
1400390ff:	eb 07                	jmp    0x140039108
140039101:	44 0f b6 1f          	movzbl (%rdi),%r11d
140039105:	48 ff c7             	inc    %rdi
140039108:	44 89 5c 24 58       	mov    %r11d,0x58(%rsp)
14003910d:	45 85 ff             	test   %r15d,%r15d
140039110:	7e 7a                	jle    0x14003918c
140039112:	0f ae e8             	lfence
140039115:	8a 84 24 40 01 00 00 	mov    0x140(%rsp),%al
14003911c:	41 8d 5b 01          	lea    0x1(%r11),%ebx
140039120:	4c 89 54 24 48       	mov    %r10,0x48(%rsp)
140039125:	44 3b fb             	cmp    %ebx,%r15d
140039128:	88 44 24 40          	mov    %al,0x40(%rsp)
14003912c:	8a 84 24 38 01 00 00 	mov    0x138(%rsp),%al
140039133:	41 0f 4c df          	cmovl  %r15d,%ebx
140039137:	88 44 24 38          	mov    %al,0x38(%rsp)
14003913b:	45 33 c9             	xor    %r9d,%r9d
14003913e:	8a 84 24 30 01 00 00 	mov    0x130(%rsp),%al
140039145:	44 8b c3             	mov    %ebx,%r8d
140039148:	88 44 24 30          	mov    %al,0x30(%rsp)
14003914c:	8a 84 24 28 01 00 00 	mov    0x128(%rsp),%al
140039153:	88 44 24 28          	mov    %al,0x28(%rsp)
140039157:	88 54 24 20          	mov    %dl,0x20(%rsp)
14003915b:	49 8b d5             	mov    %r13,%rdx
14003915e:	8b ce                	mov    %esi,%ecx
140039160:	48 03 cd             	add    %rbp,%rcx
140039163:	e8 d4 fe ff ff       	call   0x14003903c
140039168:	4c 8b 54 24 68       	mov    0x68(%rsp),%r10
14003916d:	8d 43 ff             	lea    -0x1(%rbx),%eax
140039170:	4c 8b 4c 24 70       	mov    0x70(%rsp),%r9
140039175:	48 63 c8             	movslq %eax,%rcx
140039178:	b8 01 00 00 00       	mov    $0x1,%eax
14003917d:	2b c3                	sub    %ebx,%eax
14003917f:	44 03 f8             	add    %eax,%r15d
140039182:	44 89 7c 24 54       	mov    %r15d,0x54(%rsp)
140039187:	4d 8d 6c 4d 00       	lea    0x0(%r13,%rcx,2),%r13
14003918c:	45 33 db             	xor    %r11d,%r11d
14003918f:	41 83 ff 01          	cmp    $0x1,%r15d
140039193:	7f 09                	jg     0x14003919e
140039195:	4d 85 c9             	test   %r9,%r9
140039198:	0f 84 67 03 00 00    	je     0x140039505
14003919e:	41 0f b6 d4          	movzbl %r12b,%edx
1400391a2:	41 b0 01             	mov    $0x1,%r8b
1400391a5:	8b ca                	mov    %edx,%ecx
1400391a7:	41 8a db             	mov    %r11b,%bl
1400391aa:	c1 e9 02             	shr    $0x2,%ecx
1400391ad:	83 e1 03             	and    $0x3,%ecx
1400391b0:	83 e9 01             	sub    $0x1,%ecx
1400391b3:	74 1d                	je     0x1400391d2
1400391b5:	83 e9 01             	sub    $0x1,%ecx
1400391b8:	74 11                	je     0x1400391cb
1400391ba:	83 f9 01             	cmp    $0x1,%ecx
1400391bd:	74 05                	je     0x1400391c4
1400391bf:	45 8a c3             	mov    %r11b,%r8b
1400391c2:	eb 0e                	jmp    0x1400391d2
1400391c4:	8a 1f                	mov    (%rdi),%bl
1400391c6:	48 ff c7             	inc    %rdi
1400391c9:	eb 07                	jmp    0x1400391d2
1400391cb:	8a 9c 24 28 01 00 00 	mov    0x128(%rsp),%bl
1400391d2:	83 e2 03             	and    $0x3,%edx
1400391d5:	83 ea 01             	sub    $0x1,%edx
1400391d8:	0f 84 2c 01 00 00    	je     0x14003930a
1400391de:	83 ea 01             	sub    $0x1,%edx
1400391e1:	0f 84 19 01 00 00    	je     0x140039300
1400391e7:	83 fa 01             	cmp    $0x1,%edx
1400391ea:	0f 84 08 01 00 00    	je     0x1400392f8
1400391f0:	45 84 c0             	test   %r8b,%r8b
1400391f3:	0f 84 b9 00 00 00    	je     0x1400392b2
1400391f9:	8a 84 24 38 01 00 00 	mov    0x138(%rsp),%al
140039200:	3a d8                	cmp    %al,%bl
140039202:	75 42                	jne    0x140039246
140039204:	84 c0                	test   %al,%al
140039206:	74 3e                	je     0x140039246
140039208:	2b ef                	sub    %edi,%ebp
14003920a:	03 ee                	add    %esi,%ebp
14003920c:	4c 63 c5             	movslq %ebp,%r8
14003920f:	85 ed                	test   %ebp,%ebp
140039211:	0f 8e c9 02 00 00    	jle    0x1400394e0
140039217:	49 8b d3             	mov    %r11,%rdx
14003921a:	45 8d 4f ff          	lea    -0x1(%r15),%r9d
14003921e:	45 3b f1             	cmp    %r9d,%r14d
140039221:	0f 8d b9 02 00 00    	jge    0x1400394e0
140039227:	0f b6 04 3a          	movzbl (%rdx,%rdi,1),%eax
14003922b:	41 ff c6             	inc    %r14d
14003922e:	41 0f b7 0c 42       	movzwl (%r10,%rax,2),%ecx
140039233:	66 41 89 4c 55 00    	mov    %cx,0x0(%r13,%rdx,2)
140039239:	48 ff c2             	inc    %rdx
14003923c:	49 3b d0             	cmp    %r8,%rdx
14003923f:	7c dd                	jl     0x14003921e
140039241:	e9 9a 02 00 00       	jmp    0x1400394e0
140039246:	45 84 c0             	test   %r8b,%r8b
140039249:	74 67                	je     0x1400392b2
14003924b:	2b f7                	sub    %edi,%esi
14003924d:	03 f5                	add    %ebp,%esi
14003924f:	48 63 ee             	movslq %esi,%rbp
140039252:	85 f6                	test   %esi,%esi
140039254:	0f 8e 86 02 00 00    	jle    0x1400394e0
14003925a:	4d 8b c3             	mov    %r11,%r8
14003925d:	41 b1 80             	mov    $0x80,%r9b
140039260:	45 8d 5f ff          	lea    -0x1(%r15),%r11d
140039264:	45 3b f3             	cmp    %r11d,%r14d
140039267:	0f 8d 70 02 00 00    	jge    0x1400394dd
14003926d:	41 0f b6 0c 38       	movzbl (%r8,%rdi,1),%ecx
140039272:	41 84 d9             	test   %bl,%r9b
140039275:	76 0d                	jbe    0x140039284
140039277:	41 3a c9             	cmp    %r9b,%cl
14003927a:	72 12                	jb     0x14003928e
14003927c:	80 e1 7f             	and    $0x7f,%cl
14003927f:	0f b6 d1             	movzbl %cl,%edx
140039282:	eb 18                	jmp    0x14003929c
140039284:	41 3a c9             	cmp    %r9b,%cl
140039287:	73 05                	jae    0x14003928e
140039289:	0f b7 d1             	movzwl %cx,%edx
14003928c:	eb 0e                	jmp    0x14003929c
14003928e:	8a c3                	mov    %bl,%al
140039290:	24 7f                	and    $0x7f,%al
140039292:	0f b6 d0             	movzbl %al,%edx
140039295:	66 c1 e2 08          	shl    $0x8,%dx
140039299:	66 0b d1             	or     %cx,%dx
14003929c:	66 43 89 54 45 00    	mov    %dx,0x0(%r13,%r8,2)
1400392a2:	41 ff c6             	inc    %r14d
1400392a5:	49 ff c0             	inc    %r8
1400392a8:	4c 3b c5             	cmp    %rbp,%r8
1400392ab:	7c b7                	jl     0x140039264
1400392ad:	e9 2b 02 00 00       	jmp    0x1400394dd
1400392b2:	2b f7                	sub    %edi,%esi
1400392b4:	8d 04 2e             	lea    (%rsi,%rbp,1),%eax
1400392b7:	99                   	cltd
1400392b8:	2b c2                	sub    %edx,%eax
1400392ba:	d1 f8                	sar    $1,%eax
1400392bc:	48 63 e8             	movslq %eax,%rbp
1400392bf:	85 c0                	test   %eax,%eax
1400392c1:	0f 8e 19 02 00 00    	jle    0x1400394e0
1400392c7:	49 8b d3             	mov    %r11,%rdx
1400392ca:	45 8d 4f ff          	lea    -0x1(%r15),%r9d
1400392ce:	49 8b cd             	mov    %r13,%rcx
1400392d1:	49 2b fd             	sub    %r13,%rdi
1400392d4:	45 3b f1             	cmp    %r9d,%r14d
1400392d7:	0f 8d 03 02 00 00    	jge    0x1400394e0
1400392dd:	0f b7 04 39          	movzwl (%rcx,%rdi,1),%eax
1400392e1:	41 ff c6             	inc    %r14d