140305eed:	48 85 f6             	test   %rsi,%rsi
140305ef0:	0f 84 d8 00 00 00    	je     0x140305fce
140305ef6:	4c 8d 4d 87          	lea    -0x79(%rbp),%r9
140305efa:	44 8b c7             	mov    %edi,%r8d
140305efd:	48 8b d3             	mov    %rbx,%rdx
140305f00:	48 8b 40 38          	mov    0x38(%rax),%rax
140305f04:	ff 15 2e 6d 80 00    	call   *0x806d2e(%rip)        # 0x140b0cc38
140305f0a:	39 7d 87             	cmp    %edi,-0x79(%rbp)
140305f0d:	0f 85 ae 01 00 00    	jne    0x1403060c1
140305f13:	01 7d 8b             	add    %edi,-0x75(%rbp)
140305f16:	8b c7                	mov    %edi,%eax
140305f18:	c1 e8 02             	shr    $0x2,%eax
140305f1b:	33 c9                	xor    %ecx,%ecx
140305f1d:	8b d0                	mov    %eax,%edx
140305f1f:	85 c0                	test   %eax,%eax
140305f21:	74 1e                	je     0x140305f41
140305f23:	48 3b ce             	cmp    %rsi,%rcx
140305f26:	0f 83 a2 00 00 00    	jae    0x140305fce
140305f2c:	8b 04 8b             	mov    (%rbx,%rcx,4),%eax
140305f2f:	f7 d0                	not    %eax
140305f31:	41 89 04 24          	mov    %eax,(%r12)
140305f35:	49 83 c4 04          	add    $0x4,%r12
140305f39:	48 ff c1             	inc    %rcx
140305f3c:	48 3b ca             	cmp    %rdx,%rcx
140305f3f:	72 e2                	jb     0x140305f23
140305f41:	45 85 ff             	test   %r15d,%r15d
140305f44:	74 35                	je     0x140305f7b
140305f46:	49 8d 46 ff          	lea    -0x1(%r14),%rax
140305f4a:	48 3b c6             	cmp    %rsi,%rax
140305f4d:	73 7f                	jae    0x140305fce
140305f4f:	48 c1 e0 02          	shl    $0x2,%rax
140305f53:	48 8d 14 18          	lea    (%rax,%rbx,1),%rdx
140305f57:	45 8b c7             	mov    %r15d,%r8d
140305f5a:	45 85 ff             	test   %r15d,%r15d
140305f5d:	74 1c                	je     0x140305f7b
140305f5f:	48 8b ca             	mov    %rdx,%rcx
140305f62:	48 2b c8             	sub    %rax,%rcx
140305f65:	48 2b cb             	sub    %rbx,%rcx
140305f68:	8a 02                	mov    (%rdx),%al
140305f6a:	f6 d0                	not    %al
140305f6c:	41 88 04 0c          	mov    %al,(%r12,%rcx,1)
140305f70:	48 ff c2             	inc    %rdx
140305f73:	48 ff c1             	inc    %rcx
140305f76:	49 3b c8             	cmp    %r8,%rcx
140305f79:	72 ed                	jb     0x140305f68
140305f7b:	48 8b 45 97          	mov    -0x69(%rbp),%rax
140305f7f:	48 ff c0             	inc    %rax
140305f82:	48 89 45 97          	mov    %rax,-0x69(%rbp)
140305f86:	48 8b 55 9f          	mov    -0x61(%rbp),%rdx
140305f8a:	48 03 55 a7          	add    -0x59(%rbp),%rdx
140305f8e:	48 89 55 9f          	mov    %rdx,-0x61(%rbp)
140305f92:	49 3b c5             	cmp    %r13,%rax
140305f95:	0f 82 19 ff ff ff    	jb     0x140305eb4
140305f9b:	48 85 db             	test   %rbx,%rbx
140305f9e:	74 3e                	je     0x140305fde
140305fa0:	48 8b cb             	mov    %rbx,%rcx
140305fa3:	48 8b 45 c7          	mov    -0x39(%rbp),%rax
140305fa7:	48 2b c3             	sub    %rbx,%rax
140305faa:	48 83 e0 fc          	and    $0xfffffffffffffffc,%rax
140305fae:	48 3d 00 10 00 00    	cmp    $0x1000,%rax
140305fb4:	72 1f                	jb     0x140305fd5
140305fb6:	48 8b 5b f8          	mov    -0x8(%rbx),%rbx
140305fba:	48 2b cb             	sub    %rbx,%rcx
140305fbd:	48 8d 41 f8          	lea    -0x8(%rcx),%rax
140305fc1:	48 83 f8 1f          	cmp    $0x1f,%rax
140305fc5:	76 0e                	jbe    0x140305fd5
140305fc7:	ff 15 cb 69 80 00    	call   *0x8069cb(%rip)        # 0x140b0c998
140305fcd:	90                   	nop
140305fce:	ff 15 c4 69 80 00    	call   *0x8069c4(%rip)        # 0x140b0c998
140305fd4:	90                   	nop
140305fd5:	48 8b cb             	mov    %rbx,%rcx
140305fd8:	ff 15 e2 68 80 00    	call   *0x8068e2(%rip)        # 0x140b0c8c0
140305fde:	48 8b 4d 17          	mov    0x17(%rbp),%rcx
140305fe2:	48 33 cc             	xor    %rsp,%rcx
140305fe5:	e8 f6 95 7e 00       	call   0x140aef5e0
140305fea:	48 8b 9c 24 20 01 00 	mov    0x120(%rsp),%rbx
140305ff1:	00
140305ff2:	48 81 c4 d0 00 00 00 	add    $0xd0,%rsp
140305ff9:	41 5f                	pop    %r15
140305ffb:	41 5e                	pop    %r14
140305ffd:	41 5d                	pop    %r13
140305fff:	41 5c                	pop    %r12
140306001:	5f                   	pop    %rdi
140306002:	5e                   	pop    %rsi
140306003:	5d                   	pop    %rbp
140306004:	c3                   	ret
140306005:	45 33 ff             	xor    %r15d,%r15d
140306008:	33 f6                	xor    %esi,%esi
14030600a:	4d 85 ed             	test   %r13,%r13
14030600d:	74 cf                	je     0x140305fde
14030600f:	45 33 f6             	xor    %r14d,%r14d
140306012:	48 8b 02             	mov    (%rdx),%rax
140306015:	48 8b 58 18          	mov    0x18(%rax),%rbx
140306019:	49 03 de             	add    %r14,%rbx
14030601c:	83 65 87 00          	andl   $0x0,-0x79(%rbp)
140306020:	49 8b 0b             	mov    (%r11),%rcx
140306023:	48 8b 01             	mov    (%rcx),%rax
140306026:	45 33 c9             	xor    %r9d,%r9d
140306029:	45 33 c0             	xor    %r8d,%r8d
14030602c:	41 8b d7             	mov    %r15d,%edx
14030602f:	48 8b 40 10          	mov    0x10(%rax),%rax
140306033:	ff 15 ff 6b 80 00    	call   *0x806bff(%rip)        # 0x140b0cc38
140306039:	48 8b 45 8f          	mov    -0x71(%rbp),%rax
14030603d:	48 8b 08             	mov    (%rax),%rcx
140306040:	48 8b 01             	mov    (%rcx),%rax
140306043:	4c 8d 4d 87          	lea    -0x79(%rbp),%r9
140306047:	44 8b c7             	mov    %edi,%r8d
14030604a:	48 8b d3             	mov    %rbx,%rdx
14030604d:	48 8b 40 38          	mov    0x38(%rax),%rax
140306051:	ff 15 e1 6b 80 00    	call   *0x806be1(%rip)        # 0x140b0cc38
140306057:	39 7d 87             	cmp    %edi,-0x79(%rbp)
14030605a:	75 3b                	jne    0x140306097
14030605c:	44 03 ff             	add    %edi,%r15d
14030605f:	49 8b cc             	mov    %r12,%rcx
140306062:	45 85 e4             	test   %r12d,%r12d
140306065:	74 17                	je     0x14030607e
140306067:	0f b7 03             	movzwl (%rbx),%eax
14030606a:	66 f7 d0             	not    %ax
14030606d:	66 c1 c8 08          	ror    $0x8,%ax
140306071:	66 89 03             	mov    %ax,(%rbx)
140306074:	48 8d 5b 02          	lea    0x2(%rbx),%rbx
140306078:	48 83 e9 01          	sub    $0x1,%rcx
14030607c:	75 e9                	jne    0x140306067
14030607e:	48 ff c6             	inc    %rsi
140306081:	4c 03 75 a7          	add    -0x59(%rbp),%r14
140306085:	49 3b f5             	cmp    %r13,%rsi
140306088:	48 8b 55 af          	mov    -0x51(%rbp),%rdx
14030608c:	4c 8b 5d 8f          	mov    -0x71(%rbp),%r11
140306090:	72 80                	jb     0x140306012
140306092:	e9 47 ff ff ff       	jmp    0x140305fde
140306097:	ba 04 84 04 80       	mov    $0x80048404,%edx
14030609c:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
1403060a0:	e8 f3 ff fe ff       	call   0x1402f6098
1403060a5:	48 8d 15 5c 04 93 00 	lea    0x93045c(%rip),%rdx        # 0x140c36508
1403060ac:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
1403060b0:	e8 c9 a3 7e 00       	call   0x140af047e
1403060b5:	cc                   	int3
1403060b6:	e8 b5 52 00 00       	call   0x14030b370
1403060bb:	90                   	nop
1403060bc:	eb 02                	jmp    0x1403060c0
1403060be:	90                   	nop
1403060bf:	90                   	nop
1403060c0:	90                   	nop
1403060c1:	ba 04 84 04 80       	mov    $0x80048404,%edx
1403060c6:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
1403060ca:	e8 c9 ff fe ff       	call   0x1402f6098
1403060cf:	48 8d 15 32 04 93 00 	lea    0x930432(%rip),%rdx        # 0x140c36508
1403060d6:	48 8d 4d d7          	lea    -0x29(%rbp),%rcx
1403060da:	e8 9f a3 7e 00       	call   0x140af047e
1403060df:	cc                   	int3
1403060e0:	40 53                	rex push %rbx
1403060e2:	55                   	push   %rbp
1403060e3:	56                   	push   %rsi
1403060e4:	57                   	push   %rdi
1403060e5:	41 54                	push   %r12
1403060e7:	41 55                	push   %r13
1403060e9:	41 56                	push   %r14
1403060eb:	41 57                	push   %r15
1403060ed:	48 81 ec a8 00 00 00 	sub    $0xa8,%rsp
1403060f4:	48 8b 05 45 8f 9b 00 	mov    0x9b8f45(%rip),%rax        # 0x140cbf040
1403060fb:	48 33 c4             	xor    %rsp,%rax
1403060fe:	48 89 84 24 90 00 00 	mov    %rax,0x90(%rsp)
140306105:	00
140306106:	33 db                	xor    %ebx,%ebx
140306108:	4c 89 4c 24 40       	mov    %r9,0x40(%rsp)
14030610d:	4d 8b d1             	mov    %r9,%r10
140306110:	48 89 4c 24 38       	mov    %rcx,0x38(%rsp)
140306115:	48 83 fa 10          	cmp    $0x10,%rdx
140306119:	4c 8b c9             	mov    %rcx,%r9
14030611c:	0f 94 c3             	sete   %bl
14030611f:	33 ff                	xor    %edi,%edi
140306121:	49 8b 02             	mov    (%r10),%rax
140306124:	ff c3                	inc    %ebx
140306126:	44 8b 78 08          	mov    0x8(%rax),%r15d
14030612a:	4c 8b 70 18          	mov    0x18(%rax),%r14
14030612e:	8b 68 0c             	mov    0xc(%rax),%ebp
140306131:	44 8b 68 10          	mov    0x10(%rax),%r13d
140306135:	41 0f af df          	imul   %r15d,%ebx
140306139:	41 0f af d8          	imul   %r8d,%ebx
14030613d:	48 83 fa 08          	cmp    $0x8,%rdx
140306141:	0f 87 84 00 00 00    	ja     0x1403061cb
140306147:	33 f6                	xor    %esi,%esi
140306149:	48 85 ed             	test   %rbp,%rbp
14030614c:	74 59                	je     0x1403061a7
14030614e:	49 8b 09             	mov    (%r9),%rcx
140306151:	45 33 c0             	xor    %r8d,%r8d
140306154:	83 64 24 30 00       	andl   $0x0,0x30(%rsp)
140306159:	45 33 c9             	xor    %r9d,%r9d
14030615c:	8b d7                	mov    %edi,%edx
14030615e:	48 8b 01             	mov    (%rcx),%rax
140306161:	48 8b 40 10          	mov    0x10(%rax),%rax
140306165:	ff 15 cd 6a 80 00    	call   *0x806acd(%rip)        # 0x140b0cc38
14030616b:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
140306170:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
140306175:	44 8b c3             	mov    %ebx,%r8d
140306178:	49 8b d6             	mov    %r14,%rdx
14030617b:	48 8b 08             	mov    (%rax),%rcx
14030617e:	48 8b 01             	mov    (%rcx),%rax
140306181:	48 8b 40 38          	mov    0x38(%rax),%rax
140306185:	ff 15 ad 6a 80 00    	call   *0x806aad(%rip)        # 0x140b0cc38
14030618b:	39 5c 24 30          	cmp    %ebx,0x30(%rsp)
14030618f:	0f 85 ca 00 00 00    	jne    0x14030625f
140306195:	4c 8b 4c 24 38       	mov    0x38(%rsp),%r9
14030619a:	03 fb                	add    %ebx,%edi
14030619c:	48 ff c6             	inc    %rsi
14030619f:	4d 03 f5             	add    %r13,%r14
1403061a2:	48 3b f5             	cmp    %rbp,%rsi
1403061a5:	72 a7                	jb     0x14030614e
1403061a7:	48 8b 8c 24 90 00 00 	mov    0x90(%rsp),%rcx
1403061ae:	00
1403061af:	48 33 cc             	xor    %rsp,%rcx
1403061b2:	e8 29 94 7e 00       	call   0x140aef5e0
1403061b7:	48 81 c4 a8 00 00 00 	add    $0xa8,%rsp
1403061be:	41 5f                	pop    %r15
1403061c0:	41 5e                	pop    %r14
1403061c2:	41 5d                	pop    %r13
1403061c4:	41 5c                	pop    %r12
1403061c6:	5f                   	pop    %rdi
1403061c7:	5e                   	pop    %rsi
1403061c8:	5d                   	pop    %rbp
1403061c9:	5b                   	pop    %rbx
1403061ca:	c3                   	ret
1403061cb:	45 0f af f8          	imul   %r8d,%r15d
1403061cf:	45 33 f6             	xor    %r14d,%r14d
1403061d2:	48 85 ed             	test   %rbp,%rbp
1403061d5:	74 d0                	je     0x1403061a7
1403061d7:	45 33 e4             	xor    %r12d,%r12d
1403061da:	49 8b 02             	mov    (%r10),%rax
1403061dd:	45 33 c0             	xor    %r8d,%r8d
1403061e0:	49 8b 09             	mov    (%r9),%rcx
1403061e3:	8b d7                	mov    %edi,%edx
1403061e5:	45 33 c9             	xor    %r9d,%r9d
1403061e8:	48 8b 70 18          	mov    0x18(%rax),%rsi
1403061ec:	83 64 24 30 00       	andl   $0x0,0x30(%rsp)
1403061f1:	49 03 f4             	add    %r12,%rsi
1403061f4:	48 8b 01             	mov    (%rcx),%rax
1403061f7:	48 8b 40 10          	mov    0x10(%rax),%rax
1403061fb:	ff 15 37 6a 80 00    	call   *0x806a37(%rip)        # 0x140b0cc38
140306201:	48 8b 44 24 38       	mov    0x38(%rsp),%rax
140306206:	4c 8d 4c 24 30       	lea    0x30(%rsp),%r9
14030620b:	44 8b c3             	mov    %ebx,%r8d
14030620e:	48 8b d6             	mov    %rsi,%rdx
140306211:	48 8b 08             	mov    (%rax),%rcx
140306214:	48 8b 01             	mov    (%rcx),%rax
140306217:	48 8b 40 38          	mov    0x38(%rax),%rax
14030621b:	ff 15 17 6a 80 00    	call   *0x806a17(%rip)        # 0x140b0cc38
140306221:	39 5c 24 30          	cmp    %ebx,0x30(%rsp)
140306225:	75 59                	jne    0x140306280
140306227:	41 8b cf             	mov    %r15d,%ecx
14030622a:	45 85 ff             	test   %r15d,%r15d
14030622d:	74 14                	je     0x140306243
14030622f:	0f b7 06             	movzwl (%rsi),%eax
140306232:	66 c1 c8 08          	ror    $0x8,%ax
140306236:	66 89 06             	mov    %ax,(%rsi)
140306239:	48 8d 76 02          	lea    0x2(%rsi),%rsi
14030623d:	48 83 e9 01          	sub    $0x1,%rcx
140306241:	75 ec                	jne    0x14030622f
140306243:	4c 8b 4c 24 38       	mov    0x38(%rsp),%r9
140306248:	03 fb                	add    %ebx,%edi
14030624a:	4c 8b 54 24 40       	mov    0x40(%rsp),%r10
14030624f:	49 ff c6             	inc    %r14
140306252:	4d 03 e5             	add    %r13,%r12
140306255:	4c 3b f5             	cmp    %rbp,%r14
140306258:	72 80                	jb     0x1403061da
14030625a:	e9 48 ff ff ff       	jmp    0x1403061a7
14030625f:	ba 00 84 04 80       	mov    $0x80048400,%edx
140306264:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
140306269:	e8 2a fe fe ff       	call   0x1402f6098
14030626e:	48 8d 15 93 02 93 00 	lea    0x930293(%rip),%rdx        # 0x140c36508
140306275:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
14030627a:	e8 ff a1 7e 00       	call   0x140af047e
14030627f:	cc                   	int3
140306280:	ba 00 84 04 80       	mov    $0x80048400,%edx
140306285:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
14030628a:	e8 09 fe fe ff       	call   0x1402f6098
14030628f:	48 8d 15 72 02 93 00 	lea    0x930272(%rip),%rdx        # 0x140c36508
140306296:	48 8d 4c 24 50       	lea    0x50(%rsp),%rcx
14030629b:	e8 de a1 7e 00       	call   0x140af047e
1403062a0:	cc                   	int3
1403062a1:	90                   	nop
1403062a2:	90                   	nop
1403062a3:	90                   	nop
1403062a4:	90                   	nop
1403062a5:	90                   	nop
1403062a6:	90                   	nop
1403062a7:	90                   	nop
1403062a8:	90                   	nop
1403062a9:	90                   	nop
1403062aa:	90                   	nop
1403062ab:	90                   	nop
1403062ac:	90                   	nop
1403062ad:	90                   	nop
1403062ae:	90                   	nop
1403062af:	90                   	nop
1403062b0:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1403062b5:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1403062ba:	48 89 7c 24 18       	mov    %rdi,0x18(%rsp)
1403062bf:	55                   	push   %rbp
1403062c0:	41 54                	push   %r12
1403062c2:	41 55                	push   %r13
1403062c4:	41 56                	push   %r14
1403062c6:	41 57                	push   %r15
1403062c8:	48 8b ec             	mov    %rsp,%rbp
1403062cb:	48 83 ec 50          	sub    $0x50,%rsp
1403062cf:	49 8b f9             	mov    %r9,%rdi
1403062d2:	45 8b f8             	mov    %r8d,%r15d
1403062d5:	4c 8b e2             	mov    %rdx,%r12
1403062d8:	4c 8b e9             	mov    %rcx,%r13
1403062db:	48 8d 4d e0          	lea    -0x20(%rbp),%rcx
1403062df:	49 83 f9 04          	cmp    $0x4,%r9
1403062e3:	0f 85 1a 01 00 00    	jne    0x140306403
1403062e9:	0f 57 c0             	xorps  %xmm0,%xmm0
1403062ec:	f3 0f 7f 45 e0       	movdqu %xmm0,-0x20(%rbp)
1403062f1:	33 db                	xor    %ebx,%ebx
1403062f3:	48 89 5d f0          	mov    %rbx,-0x10(%rbp)
1403062f7:	be 00 01 00 00       	mov    $0x100,%esi
1403062fc:	8b d6                	mov    %esi,%edx
1403062fe:	e8 b9 91 e1 ff       	call   0x14011f4bc
140306303:	33 d2                	xor    %edx,%edx
140306305:	41 b8 00 02 00 00    	mov    $0x200,%r8d
14030630b:	48 8b 7d e0          	mov    -0x20(%rbp),%rdi
14030630f:	48 8b cf             	mov    %rdi,%rcx
140306312:	e8 55 a1 7e 00       	call   0x140af046c
140306317:	4c 8d 9f 00 02 00 00 	lea    0x200(%rdi),%r11
14030631e:	4c 89 5d e8          	mov    %r11,-0x18(%rbp)
140306322:	0f b7 d3             	movzwl %bx,%edx
140306325:	4c 2b df             	sub    %rdi,%r11
140306328:	49 d1 fb             	sar    $1,%r11
14030632b:	44 8d 73 01          	lea    0x1(%rbx),%r14d
14030632f:	0f b7 ca             	movzwl %dx,%ecx
140306332:	66 83 e1 0f          	and    $0xf,%cx
140306336:	44 0f b7 d2          	movzwl %dx,%r10d
14030633a:	66 41 c1 ea 04       	shr    $0x4,%r10w
14030633f:	44 0f b7 ca          	movzwl %dx,%r9d
140306343:	4d 3b cb             	cmp    %r11,%r9
140306346:	0f 83 b0 00 00 00    	jae    0x1403063fc
14030634c:	b8 00 11 00 00       	mov    $0x1100,%eax
140306351:	44 0f b7 c1          	movzwl %cx,%r8d
140306355:	44 0f af c0          	imul   %eax,%r8d
140306359:	41 0f b7 c2          	movzwl %r10w,%eax
14030635d:	6b c8 11             	imul   $0x11,%eax,%ecx
140306360:	66 44 0b c1          	or     %cx,%r8w
140306364:	66 46 89 04 4f       	mov    %r8w,(%rdi,%r9,2)
140306369:	8b 45 50             	mov    0x50(%rbp),%eax
14030636c:	83 f8 02             	cmp    $0x2,%eax
14030636f:	75 09                	jne    0x14030637a
140306371:	66 41 f7 d0          	not    %r8w
140306375:	66 46 89 04 4f       	mov    %r8w,(%rdi,%r9,2)
14030637a:	66 41 03 d6          	add    %r14w,%dx
14030637e:	66 3b d6             	cmp    %si,%dx