140043ec6:	5e                   	pop    %rsi
140043ec7:	c3                   	ret
140043ec8:	41 89 d2             	mov    %edx,%r10d
140043ecb:	44 39 c6             	cmp    %r8d,%esi
140043ece:	44 0f 42 c6          	cmovb  %esi,%r8d
140043ed2:	41 0f 92 c1          	setb   %r9b
140043ed6:	b8 00 70 00 00       	mov    $0x7000,%eax
140043edb:	31 d2                	xor    %edx,%edx
140043edd:	f7 f1                	div    %ecx
140043edf:	41 c0 e1 02          	shl    $0x2,%r9b
140043ee3:	41 80 c1 04          	add    $0x4,%r9b
140043ee7:	44 39 c2             	cmp    %r8d,%edx
140043eea:	44 0f 42 c2          	cmovb  %edx,%r8d
140043eee:	41 0f b6 c1          	movzbl %r9b,%eax
140043ef2:	be 07 00 00 00       	mov    $0x7,%esi
140043ef7:	0f 43 f0             	cmovae %eax,%esi
140043efa:	b8 00 b0 00 00       	mov    $0xb000,%eax
140043eff:	31 d2                	xor    %edx,%edx
140043f01:	f7 f1                	div    %ecx
140043f03:	41 89 d1             	mov    %edx,%r9d
140043f06:	45 39 c3             	cmp    %r8d,%r11d
140043f09:	45 0f 42 c3          	cmovb  %r11d,%r8d
140043f0d:	41 bb 0c 00 00 00    	mov    $0xc,%r11d
140043f13:	44 0f 43 de          	cmovae %esi,%r11d
140043f17:	b8 00 a0 00 00       	mov    $0xa000,%eax
140043f1c:	31 d2                	xor    %edx,%edx
140043f1e:	f7 f1                	div    %ecx
140043f20:	45 39 c1             	cmp    %r8d,%r9d
140043f23:	45 0f 42 c1          	cmovb  %r9d,%r8d
140043f27:	b8 0b 00 00 00       	mov    $0xb,%eax
140043f2c:	41 0f 43 c3          	cmovae %r11d,%eax
140043f30:	44 39 c2             	cmp    %r8d,%edx
140043f33:	44 0f 42 c2          	cmovb  %edx,%r8d
140043f37:	41 bb 0a 00 00 00    	mov    $0xa,%r11d
140043f3d:	44 0f 43 d8          	cmovae %eax,%r11d
140043f41:	b8 00 f0 00 00       	mov    $0xf000,%eax
140043f46:	31 d2                	xor    %edx,%edx
140043f48:	f7 f1                	div    %ecx
140043f4a:	41 89 d1             	mov    %edx,%r9d
140043f4d:	45 39 c2             	cmp    %r8d,%r10d
140043f50:	45 0f 42 c2          	cmovb  %r10d,%r8d
140043f54:	be 10 00 00 00       	mov    $0x10,%esi
140043f59:	41 0f 43 f3          	cmovae %r11d,%esi
140043f5d:	b8 00 e0 00 00       	mov    $0xe000,%eax
140043f62:	31 d2                	xor    %edx,%edx
140043f64:	f7 f1                	div    %ecx
140043f66:	41 89 d2             	mov    %edx,%r10d
140043f69:	45 39 c1             	cmp    %r8d,%r9d
140043f6c:	45 0f 42 c1          	cmovb  %r9d,%r8d
140043f70:	41 b9 0f 00 00 00    	mov    $0xf,%r9d
140043f76:	44 0f 43 ce          	cmovae %esi,%r9d
140043f7a:	b8 00 d0 00 00       	mov    $0xd000,%eax
140043f7f:	31 d2                	xor    %edx,%edx
140043f81:	f7 f1                	div    %ecx
140043f83:	45 39 c2             	cmp    %r8d,%r10d
140043f86:	45 0f 42 c2          	cmovb  %r10d,%r8d
140043f8a:	b8 0e 00 00 00       	mov    $0xe,%eax
140043f8f:	41 0f 43 c1          	cmovae %r9d,%eax
140043f93:	44 39 c2             	cmp    %r8d,%edx
140043f96:	41 b9 0d 00 00 00    	mov    $0xd,%r9d
140043f9c:	44 0f 43 c8          	cmovae %eax,%r9d
140043fa0:	e9 5f fc ff ff       	jmp    0x140043c04
140043fa5:	cc                   	int3
140043fa6:	0f 0b                	ud2
140043fa8:	cc                   	int3
140043fa9:	cc                   	int3
140043faa:	cc                   	int3
140043fab:	cc                   	int3
140043fac:	cc                   	int3
140043fad:	cc                   	int3
140043fae:	cc                   	int3
140043faf:	cc                   	int3
140043fb0:	56                   	push   %rsi
140043fb1:	53                   	push   %rbx
140043fb2:	48 83 ec 28          	sub    $0x28,%rsp
140043fb6:	44 89 c3             	mov    %r8d,%ebx
140043fb9:	48 89 ce             	mov    %rcx,%rsi
140043fbc:	89 51 18             	mov    %edx,0x18(%rcx)
140043fbf:	89 d1                	mov    %edx,%ecx
140043fc1:	48 b8 ff ff ff ff ff 	movabs $0x3ffffffffff,%rax
140043fc8:	03 00 00
140043fcb:	31 d2                	xor    %edx,%edx
140043fcd:	48 f7 f1             	div    %rcx
140043fd0:	48 ff c0             	inc    %rax
140043fd3:	48 89 46 20          	mov    %rax,0x20(%rsi)
140043fd7:	e8 14 da ff ff       	call   0x1400419f0
140043fdc:	48 89 06             	mov    %rax,(%rsi)
140043fdf:	0f 57 c0             	xorps  %xmm0,%xmm0
140043fe2:	0f 11 46 08          	movups %xmm0,0x8(%rsi)
140043fe6:	0f b6 46 1c          	movzbl 0x1c(%rsi),%eax
140043fea:	89 46 1c             	mov    %eax,0x1c(%rsi)
140043fed:	8b 4e 18             	mov    0x18(%rsi),%ecx
140043ff0:	31 d2                	xor    %edx,%edx
140043ff2:	e8 59 fb ff ff       	call   0x140043b50
140043ff7:	0f b6 c8             	movzbl %al,%ecx
140043ffa:	88 4e 1c             	mov    %cl,0x1c(%rsi)
140043ffd:	c6 46 28 00          	movb   $0x0,0x28(%rsi)
140044001:	8b 56 18             	mov    0x18(%rsi),%edx
140044004:	81 fa 00 00 01 00    	cmp    $0x10000,%edx
14004400a:	77 34                	ja     0x140044040
14004400c:	81 fa 01 80 00 00    	cmp    $0x8001,%edx
140044012:	0f 92 c2             	setb   %dl
140044015:	80 f3 01             	xor    $0x1,%bl
140044018:	08 d3                	or     %dl,%bl
14004401a:	75 18                	jne    0x140044034
14004401c:	c1 e1 0c             	shl    $0xc,%ecx
14004401f:	48 0f af 4e 20       	imul   0x20(%rsi),%rcx
140044024:	48 c1 e9 2a          	shr    $0x2a,%rcx
140044028:	83 f9 01             	cmp    $0x1,%ecx
14004402b:	75 07                	jne    0x140044034
14004402d:	3c 05                	cmp    $0x5,%al
14004402f:	0f 93 c0             	setae  %al
140044032:	eb 02                	jmp    0x140044036
140044034:	31 c0                	xor    %eax,%eax
140044036:	88 46 28             	mov    %al,0x28(%rsi)
140044039:	48 83 c4 28          	add    $0x28,%rsp
14004403d:	5b                   	pop    %rbx
14004403e:	5e                   	pop    %rsi
14004403f:	c3                   	ret
140044040:	f7 c2 ff 0f 00 00    	test   $0xfff,%edx
140044046:	75 16                	jne    0x14004405e
140044048:	c1 e1 0c             	shl    $0xc,%ecx
14004404b:	48 0f af 4e 20       	imul   0x20(%rsi),%rcx
140044050:	48 c1 e9 2a          	shr    $0x2a,%rcx
140044054:	b0 01                	mov    $0x1,%al
140044056:	83 f9 01             	cmp    $0x1,%ecx
140044059:	74 db                	je     0x140044036
14004405b:	cc                   	int3
14004405c:	0f 0b                	ud2
14004405e:	cc                   	int3
14004405f:	0f 0b                	ud2
140044061:	cc                   	int3
140044062:	cc                   	int3
140044063:	cc                   	int3
140044064:	cc                   	int3
140044065:	cc                   	int3
140044066:	cc                   	int3
140044067:	cc                   	int3
140044068:	cc                   	int3
140044069:	cc                   	int3
14004406a:	cc                   	int3
14004406b:	cc                   	int3
14004406c:	cc                   	int3
14004406d:	cc                   	int3
14004406e:	cc                   	int3
14004406f:	cc                   	int3
140044070:	56                   	push   %rsi
140044071:	57                   	push   %rdi
140044072:	53                   	push   %rbx
140044073:	48 83 ec 20          	sub    $0x20,%rsp
140044077:	48 89 ce             	mov    %rcx,%rsi
14004407a:	48 8b 19             	mov    (%rcx),%rbx
14004407d:	e8 6e d9 ff ff       	call   0x1400419f0
140044082:	48 39 c3             	cmp    %rax,%rbx
140044085:	74 74                	je     0x1400440fb
140044087:	48 85 db             	test   %rbx,%rbx
14004408a:	74 7b                	je     0x140044107
14004408c:	31 c9                	xor    %ecx,%ecx
14004408e:	31 c0                	xor    %eax,%eax
140044090:	eb 2a                	jmp    0x1400440bc
140044092:	4c 8b 46 10          	mov    0x10(%rsi),%r8
140044096:	4c 89 42 08          	mov    %r8,0x8(%rdx)
14004409a:	48 89 56 10          	mov    %rdx,0x10(%rsi)
14004409e:	eb 11                	jmp    0x1400440b1
1400440a0:	4d 85 c9             	test   %r9,%r9
1400440a3:	74 ed                	je     0x140044092
1400440a5:	4c 8b 46 08          	mov    0x8(%rsi),%r8
1400440a9:	4c 89 42 08          	mov    %r8,0x8(%rdx)
1400440ad:	48 89 56 08          	mov    %rdx,0x8(%rsi)
1400440b1:	48 89 ca             	mov    %rcx,%rdx
1400440b4:	48 89 d1             	mov    %rdx,%rcx
1400440b7:	48 85 db             	test   %rbx,%rbx
1400440ba:	74 43                	je     0x1400440ff
1400440bc:	48 89 da             	mov    %rbx,%rdx
1400440bf:	4c 8b 0b             	mov    (%rbx),%r9
1400440c2:	48 8b 5b 08          	mov    0x8(%rbx),%rbx
1400440c6:	44 8b 42 18          	mov    0x18(%rdx),%r8d
1400440ca:	41 f7 c0 ff 7f 00 00 	test   $0x7fff,%r8d
1400440d1:	74 cd                	je     0x1400440a0
1400440d3:	4d 85 c9             	test   %r9,%r9
1400440d6:	75 43                	jne    0x14004411b
1400440d8:	41 f7 c0 00 80 ff 3f 	test   $0x3fff8000,%r8d
1400440df:	74 4f                	je     0x140044130
1400440e1:	48 85 c0             	test   %rax,%rax
1400440e4:	48 0f 44 c2          	cmove  %rdx,%rax
1400440e8:	48 85 c9             	test   %rcx,%rcx
1400440eb:	74 04                	je     0x1400440f1
1400440ed:	48 89 51 08          	mov    %rdx,0x8(%rcx)
1400440f1:	48 c7 42 08 00 00 00 	movq   $0x0,0x8(%rdx)
1400440f8:	00
1400440f9:	eb b9                	jmp    0x1400440b4
1400440fb:	31 ff                	xor    %edi,%edi
1400440fd:	eb 12                	jmp    0x140044111
1400440ff:	40 b7 01             	mov    $0x1,%dil
140044102:	48 85 c0             	test   %rax,%rax
140044105:	75 07                	jne    0x14004410e
140044107:	31 ff                	xor    %edi,%edi
140044109:	e8 e2 d8 ff ff       	call   0x1400419f0
14004410e:	48 89 06             	mov    %rax,(%rsi)
140044111:	89 f8                	mov    %edi,%eax
140044113:	48 83 c4 20          	add    $0x20,%rsp
140044117:	5b                   	pop    %rbx
140044118:	5f                   	pop    %rdi
140044119:	5e                   	pop    %rsi
14004411a:	c3                   	ret
14004411b:	40 b7 01             	mov    $0x1,%dil
14004411e:	48 85 c0             	test   %rax,%rax
140044121:	74 08                	je     0x14004412b
140044123:	48 89 42 08          	mov    %rax,0x8(%rdx)
140044127:	48 89 59 08          	mov    %rbx,0x8(%rcx)
14004412b:	48 89 d0             	mov    %rdx,%rax
14004412e:	eb de                	jmp    0x14004410e
140044130:	41 81 c8 00 00 00 40 	or     $0x40000000,%r8d
140044137:	44 89 42 18          	mov    %r8d,0x18(%rdx)
14004413b:	44 8b 46 1c          	mov    0x1c(%rsi),%r8d
14004413f:	45 0f b6 c8          	movzbl %r8b,%r9d
140044143:	41 81 e0 00 ff ff ff 	and    $0xffffff00,%r8d
14004414a:	45 01 c1             	add    %r8d,%r9d
14004414d:	41 81 c1 00 01 00 00 	add    $0x100,%r9d
140044154:	44 89 4e 1c          	mov    %r9d,0x1c(%rsi)
140044158:	41 81 c0 00 01 00 00 	add    $0x100,%r8d
14004415f:	74 0d                	je     0x14004416e
140044161:	48 c7 42 08 00 00 00 	movq   $0x0,0x8(%rdx)
140044168:	00
140044169:	e9 43 ff ff ff       	jmp    0x1400440b1
14004416e:	cc                   	int3
14004416f:	0f 0b                	ud2
140044171:	cc                   	int3
140044172:	cc                   	int3
140044173:	cc                   	int3
140044174:	cc                   	int3
140044175:	cc                   	int3
140044176:	cc                   	int3
140044177:	cc                   	int3
140044178:	cc                   	int3
140044179:	cc                   	int3
14004417a:	cc                   	int3
14004417b:	cc                   	int3
14004417c:	cc                   	int3
14004417d:	cc                   	int3
14004417e:	cc                   	int3
14004417f:	cc                   	int3
140044180:	41 57                	push   %r15
140044182:	41 56                	push   %r14
140044184:	41 55                	push   %r13
140044186:	41 54                	push   %r12
140044188:	56                   	push   %rsi
140044189:	57                   	push   %rdi
14004418a:	55                   	push   %rbp
14004418b:	53                   	push   %rbx
14004418c:	48 81 ec 98 00 00 00 	sub    $0x98,%rsp
140044193:	0f 29 b4 24 80 00 00 	movaps %xmm6,0x80(%rsp)
14004419a:	00
14004419b:	4d 89 ce             	mov    %r9,%r14
14004419e:	44 89 c3             	mov    %r8d,%ebx
1400441a1:	48 89 d7             	mov    %rdx,%rdi
1400441a4:	48 89 ce             	mov    %rcx,%rsi
1400441a7:	4c 8b ac 24 10 01 00 	mov    0x110(%rsp),%r13
1400441ae:	00
1400441af:	4c 8b bc 24 00 01 00 	mov    0x100(%rsp),%r15
1400441b6:	00
1400441b7:	48 8b 05 82 ce 0b 00 	mov    0xbce82(%rip),%rax        # 0x140101040
1400441be:	48 31 e0             	xor    %rsp,%rax
1400441c1:	48 89 44 24 78       	mov    %rax,0x78(%rsp)
1400441c6:	41 c6 45 00 00       	movb   $0x0,0x0(%r13)
1400441cb:	80 79 1c 00          	cmpb   $0x0,0x1c(%rcx)
1400441cf:	0f 84 9e 03 00 00    	je     0x140044573
1400441d5:	49 81 ff 00 40 00 00 	cmp    $0x4000,%r15
1400441dc:	0f 87 d3 03 00 00    	ja     0x1400445b5
1400441e2:	48 89 f1             	mov    %rsi,%rcx
1400441e5:	e8 86 fe ff ff       	call   0x140044070
1400441ea:	84 c0                	test   %al,%al
1400441ec:	0f 84 c6 00 00 00    	je     0x1400442b8
1400441f2:	4c 8b 3e             	mov    (%rsi),%r15
1400441f5:	48 89 f0             	mov    %rsi,%rax
1400441f8:	4d 85 ff             	test   %r15,%r15
1400441fb:	0f 84 a4 03 00 00    	je     0x1400445a5
140044201:	48 8b 8c 24 08 01 00 	mov    0x108(%rsp),%rcx
140044208:	00
140044209:	4c 89 39             	mov    %r15,(%rcx)
14004420c:	4c 89 38             	mov    %r15,(%rax)
14004420f:	41 8b 6f 18          	mov    0x18(%r15),%ebp
140044213:	85 ed                	test   %ebp,%ebp
140044215:	79 04                	jns    0x14004421b
140044217:	4d 89 77 20          	mov    %r14,0x20(%r15)
14004421b:	4d 8b 37             	mov    (%r15),%r14
14004421e:	4d 85 f6             	test   %r14,%r14
140044221:	0f 84 cd 00 00 00    	je     0x1400442f4
140044227:	48 8d 0d 3a fe 0a 00 	lea    0xafe3a(%rip),%rcx        # 0x1400f4068
14004422e:	48 8d 35 2b fe 0a 00 	lea    0xafe2b(%rip),%rsi        # 0x1400f4060
140044235:	80 7f 14 00          	cmpb   $0x0,0x14(%rdi)
140044239:	48 0f 45 f1          	cmovne %rcx,%rsi
14004423d:	44 8b 40 18          	mov    0x18(%rax),%r8d
140044241:	48 8b 3e             	mov    (%rsi),%rdi
140044244:	48 8b 47 40          	mov    0x40(%rdi),%rax
140044248:	48 89 f1             	mov    %rsi,%rcx
14004424b:	4c 89 f2             	mov    %r14,%rdx
14004424e:	ff 15 b4 2a 0b 00    	call   *0xb2ab4(%rip)        # 0x1400f6d08
140044254:	49 89 07             	mov    %rax,(%r15)
140044257:	41 8b 47 18          	mov    0x18(%r15),%eax
14004425b:	8d 48 01             	lea    0x1(%rax),%ecx
14004425e:	81 e1 ff 7f 00 00    	and    $0x7fff,%ecx
140044264:	25 00 80 ff ff       	and    $0xffff8000,%eax
140044269:	09 c8                	or     %ecx,%eax
14004426b:	41 89 47 18          	mov    %eax,0x18(%r15)
14004426f:	48 8b 47 60          	mov    0x60(%rdi),%rax
140044273:	48 89 f1             	mov    %rsi,%rcx
140044276:	4c 89 f2             	mov    %r14,%rdx
140044279:	ff 15 89 2a 0b 00    	call   *0xb2a89(%rip)        # 0x1400f6d08
14004427f:	48 89 c3             	mov    %rax,%rbx
140044282:	48 8b 4c 24 78       	mov    0x78(%rsp),%rcx
140044287:	48 31 e1             	xor    %rsp,%rcx
14004428a:	48 3b 0d af cd 0b 00 	cmp    0xbcdaf(%rip),%rcx        # 0x140101040
140044291:	74 06                	je     0x140044299
140044293:	e8 38 b0 02 00       	call   0x14006f2d0
140044298:	cc                   	int3
140044299:	48 89 d8             	mov    %rbx,%rax
14004429c:	0f 28 b4 24 80 00 00 	movaps 0x80(%rsp),%xmm6
1400442a3:	00
1400442a4:	48 81 c4 98 00 00 00 	add    $0x98,%rsp
1400442ab:	5b                   	pop    %rbx
1400442ac:	5d                   	pop    %rbp
1400442ad:	5f                   	pop    %rdi
1400442ae:	5e                   	pop    %rsi
1400442af:	41 5c                	pop    %r12
1400442b1:	41 5d                	pop    %r13
1400442b3:	41 5e                	pop    %r14
1400442b5:	41 5f                	pop    %r15
1400442b7:	c3                   	ret
1400442b8:	48 8b 46 08          	mov    0x8(%rsi),%rax
1400442bc:	48 85 c0             	test   %rax,%rax
1400442bf:	0f 84 43 02 00 00    	je     0x140044508
1400442c5:	49 89 c7             	mov    %rax,%r15
1400442c8:	48 8b 40 08          	mov    0x8(%rax),%rax
1400442cc:	48 89 46 08          	mov    %rax,0x8(%rsi)
1400442d0:	49 83 3f 00          	cmpq   $0x0,(%r15)
1400442d4:	0f 85 cd 01 00 00    	jne    0x1400444a7
1400442da:	48 8b 46 10          	mov    0x10(%rsi),%rax
1400442de:	49 89 47 08          	mov    %rax,0x8(%r15)
1400442e2:	4c 89 7e 10          	mov    %r15,0x10(%rsi)
1400442e6:	48 8b 46 08          	mov    0x8(%rsi),%rax
1400442ea:	48 85 c0             	test   %rax,%rax
1400442ed:	75 d6                	jne    0x1400442c5
1400442ef:	e9 2c 02 00 00       	jmp    0x140044520
1400442f4:	4c 89 f8             	mov    %r15,%rax
1400442f7:	48 25 00 00 e0 ff    	and    $0xffffffffffe00000,%rax
1400442fd:	45 89 fc             	mov    %r15d,%r12d
140044300:	41 c1 e4 09          	shl    $0x9,%r12d
140044304:	41 81 e4 00 c0 ff 3f 	and    $0x3fffc000,%r12d
14004430b:	44 8b 6e 18          	mov    0x18(%rsi),%r13d