1401d3d51:	33 c0                	xor    %eax,%eax
1401d3d53:	eb 39                	jmp    0x1401d3d8e
1401d3d55:	33 c0                	xor    %eax,%eax
1401d3d57:	f6 c3 01             	test   $0x1,%bl
1401d3d5a:	74 32                	je     0x1401d3d8e
1401d3d5c:	8b c3                	mov    %ebx,%eax
1401d3d5e:	85 df                	test   %ebx,%edi
1401d3d60:	74 10                	je     0x1401d3d72
1401d3d62:	2b c5                	sub    %ebp,%eax
1401d3d64:	48 ff c1             	inc    %rcx
1401d3d67:	49 3b cf             	cmp    %r15,%rcx
1401d3d6a:	72 06                	jb     0x1401d3d72
1401d3d6c:	8b c2                	mov    %edx,%eax
1401d3d6e:	d1 f8                	sar    $1,%eax
1401d3d70:	23 c3                	and    %ebx,%eax
1401d3d72:	8b cf                	mov    %edi,%ecx
1401d3d74:	f7 d9                	neg    %ecx
1401d3d76:	3b c1                	cmp    %ecx,%eax
1401d3d78:	7e 6a                	jle    0x1401d3de4
1401d3d7a:	3b c7                	cmp    %edi,%eax
1401d3d7c:	7d 66                	jge    0x1401d3de4
1401d3d7e:	a8 01                	test   $0x1,%al
1401d3d80:	74 62                	je     0x1401d3de4
1401d3d82:	2b d8                	sub    %eax,%ebx
1401d3d84:	74 08                	je     0x1401d3d8e
1401d3d86:	3b dd                	cmp    %ebp,%ebx
1401d3d88:	74 04                	je     0x1401d3d8e
1401d3d8a:	3b df                	cmp    %edi,%ebx
1401d3d8c:	75 4f                	jne    0x1401d3ddd
1401d3d8e:	0f be c8             	movsbl %al,%ecx
1401d3d91:	0f be 84 24 88 00 00 	movsbl 0x88(%rsp),%eax
1401d3d98:	00
1401d3d99:	0f af c1             	imul   %ecx,%eax
1401d3d9c:	49 8b cc             	mov    %r12,%rcx
1401d3d9f:	42 88 04 36          	mov    %al,(%rsi,%r14,1)
1401d3da3:	48 ff c6             	inc    %rsi
1401d3da6:	42 8d 14 2e          	lea    (%rsi,%r13,1),%edx
1401d3daa:	e8 31 d0 f1 ff       	call   0x1400f0de0
1401d3daf:	0f af c7             	imul   %edi,%eax
1401d3db2:	d1 fb                	sar    $1,%ebx
1401d3db4:	03 d8                	add    %eax,%ebx
1401d3db6:	3b dd                	cmp    %ebp,%ebx
1401d3db8:	7f 31                	jg     0x1401d3deb
1401d3dba:	8d 55 ff             	lea    -0x1(%rbp),%edx
1401d3dbd:	eb 81                	jmp    0x1401d3d40
1401d3dbf:	48 3b 74 24 20       	cmp    0x20(%rsp),%rsi
1401d3dc4:	76 07                	jbe    0x1401d3dcd
1401d3dc6:	bf 82 00 00 00       	mov    $0x82,%edi
1401d3dcb:	eb 31                	jmp    0x1401d3dfe
1401d3dcd:	48 8b 84 24 80 00 00 	mov    0x80(%rsp),%rax
1401d3dd4:	00
1401d3dd5:	48 89 30             	mov    %rsi,(%rax)
1401d3dd8:	49 8b c6             	mov    %r14,%rax
1401d3ddb:	eb 65                	jmp    0x1401d3e42
1401d3ddd:	bf 71 00 00 00       	mov    $0x71,%edi
1401d3de2:	eb 1a                	jmp    0x1401d3dfe
1401d3de4:	bf 65 00 00 00       	mov    $0x65,%edi
1401d3de9:	eb 13                	jmp    0x1401d3dfe
1401d3deb:	bf 7c 00 00 00       	mov    $0x7c,%edi
1401d3df0:	eb 0c                	jmp    0x1401d3dfe
1401d3df2:	bf 37 00 00 00       	mov    $0x37,%edi
1401d3df7:	eb 05                	jmp    0x1401d3dfe
1401d3df9:	bf 2b 00 00 00       	mov    $0x2b,%edi
1401d3dfe:	bb 03 01 0c 00       	mov    $0xc0103,%ebx
1401d3e03:	e8 68 32 f5 ff       	call   0x140127070
1401d3e08:	4c 8d 05 19 07 16 00 	lea    0x160719(%rip),%r8        # 0x140334528
1401d3e0f:	8b d7                	mov    %edi,%edx
1401d3e11:	48 8d 0d f8 06 16 00 	lea    0x1606f8(%rip),%rcx        # 0x140334510
1401d3e18:	e8 73 33 f5 ff       	call   0x140127190
1401d3e1d:	45 33 c0             	xor    %r8d,%r8d
1401d3e20:	8b d3                	mov    %ebx,%edx
1401d3e22:	41 8d 48 03          	lea    0x3(%r8),%ecx
1401d3e26:	e8 65 34 f5 ff       	call   0x140127290
1401d3e2b:	41 b8 89 00 00 00    	mov    $0x89,%r8d
1401d3e31:	48 8d 15 d8 06 16 00 	lea    0x1606d8(%rip),%rdx        # 0x140334510
1401d3e38:	49 8b ce             	mov    %r14,%rcx
1401d3e3b:	e8 80 7f f1 ff       	call   0x1400ebdc0
1401d3e40:	33 c0                	xor    %eax,%eax
1401d3e42:	48 8b 5c 24 70       	mov    0x70(%rsp),%rbx
1401d3e47:	48 83 c4 30          	add    $0x30,%rsp
1401d3e4b:	41 5f                	pop    %r15
1401d3e4d:	41 5e                	pop    %r14
1401d3e4f:	41 5d                	pop    %r13
1401d3e51:	41 5c                	pop    %r12
1401d3e53:	5f                   	pop    %rdi
1401d3e54:	5e                   	pop    %rsi
1401d3e55:	5d                   	pop    %rbp
1401d3e56:	c3                   	ret
1401d3e57:	cc                   	int3
1401d3e58:	cc                   	int3
1401d3e59:	cc                   	int3
1401d3e5a:	cc                   	int3
1401d3e5b:	cc                   	int3
1401d3e5c:	cc                   	int3
1401d3e5d:	cc                   	int3
1401d3e5e:	cc                   	int3
1401d3e5f:	cc                   	int3
1401d3e60:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1401d3e65:	57                   	push   %rdi
1401d3e66:	b8 20 00 00 00       	mov    $0x20,%eax
1401d3e6b:	e8 c0 cc 0d 00       	call   0x1402b0b30
1401d3e70:	48 2b e0             	sub    %rax,%rsp
1401d3e73:	48 8b da             	mov    %rdx,%rbx
1401d3e76:	48 8b f9             	mov    %rcx,%rdi
1401d3e79:	44 39 42 08          	cmp    %r8d,0x8(%rdx)
1401d3e7d:	7e 0d                	jle    0x1401d3e8c
1401d3e7f:	33 c0                	xor    %eax,%eax
1401d3e81:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1401d3e86:	48 83 c4 20          	add    $0x20,%rsp
1401d3e8a:	5f                   	pop    %rdi
1401d3e8b:	c3                   	ret
1401d3e8c:	4d 63 c0             	movslq %r8d,%r8
1401d3e8f:	33 d2                	xor    %edx,%edx
1401d3e91:	49 c1 e0 03          	shl    $0x3,%r8
1401d3e95:	e8 66 db 10 00       	call   0x1402e1a00
1401d3e9a:	48 8b 13             	mov    (%rbx),%rdx
1401d3e9d:	48 85 d2             	test   %rdx,%rdx
1401d3ea0:	74 10                	je     0x1401d3eb2
1401d3ea2:	4c 63 43 08          	movslq 0x8(%rbx),%r8
1401d3ea6:	48 8b cf             	mov    %rdi,%rcx
1401d3ea9:	49 c1 e0 03          	shl    $0x3,%r8
1401d3ead:	e8 ae d4 10 00       	call   0x1402e1360
1401d3eb2:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1401d3eb7:	b8 01 00 00 00       	mov    $0x1,%eax
1401d3ebc:	48 83 c4 20          	add    $0x20,%rsp
1401d3ec0:	5f                   	pop    %rdi
1401d3ec1:	c3                   	ret
1401d3ec2:	cc                   	int3
1401d3ec3:	cc                   	int3
1401d3ec4:	cc                   	int3
1401d3ec5:	cc                   	int3
1401d3ec6:	cc                   	int3
1401d3ec7:	cc                   	int3
1401d3ec8:	cc                   	int3
1401d3ec9:	cc                   	int3
1401d3eca:	cc                   	int3
1401d3ecb:	cc                   	int3
1401d3ecc:	cc                   	int3
1401d3ecd:	cc                   	int3
1401d3ece:	cc                   	int3
1401d3ecf:	cc                   	int3
1401d3ed0:	48 63 41 08          	movslq 0x8(%rcx),%rax
1401d3ed4:	3b 41 0c             	cmp    0xc(%rcx),%eax
1401d3ed7:	7d 2a                	jge    0x1401d3f03
1401d3ed9:	4c 8d 04 c5 00 00 00 	lea    0x0(,%rax,8),%r8
1401d3ee0:	00
1401d3ee1:	45 33 c9             	xor    %r9d,%r9d
1401d3ee4:	0f 1f 40 00          	nopl   0x0(%rax)
1401d3ee8:	0f 1f 84 00 00 00 00 	nopl   0x0(%rax,%rax,1)
1401d3eef:	00
1401d3ef0:	48 8b 11             	mov    (%rcx),%rdx
1401d3ef3:	4d 8d 40 08          	lea    0x8(%r8),%r8
1401d3ef7:	ff c0                	inc    %eax
1401d3ef9:	4d 89 4c 10 f8       	mov    %r9,-0x8(%r8,%rdx,1)
1401d3efe:	3b 41 0c             	cmp    0xc(%rcx),%eax
1401d3f01:	7c ed                	jl     0x1401d3ef0
1401d3f03:	c3                   	ret
1401d3f04:	cc                   	int3
1401d3f05:	cc                   	int3
1401d3f06:	cc                   	int3
1401d3f07:	cc                   	int3
1401d3f08:	cc                   	int3
1401d3f09:	cc                   	int3
1401d3f0a:	cc                   	int3
1401d3f0b:	cc                   	int3
1401d3f0c:	cc                   	int3
1401d3f0d:	cc                   	int3
1401d3f0e:	cc                   	int3
1401d3f0f:	cc                   	int3
1401d3f10:	48 89 5c 24 08       	mov    %rbx,0x8(%rsp)
1401d3f15:	48 89 74 24 10       	mov    %rsi,0x10(%rsp)
1401d3f1a:	57                   	push   %rdi
1401d3f1b:	b8 20 00 00 00       	mov    $0x20,%eax
1401d3f20:	e8 0b cc 0d 00       	call   0x1402b0b30
1401d3f25:	48 2b e0             	sub    %rax,%rsp
1401d3f28:	49 63 f8             	movslq %r8d,%rdi
1401d3f2b:	48 8b f2             	mov    %rdx,%rsi
1401d3f2e:	8b d7                	mov    %edi,%edx
1401d3f30:	48 8b d9             	mov    %rcx,%rbx
1401d3f33:	e8 98 dc f1 ff       	call   0x1400f1bd0
1401d3f38:	48 85 c0             	test   %rax,%rax
1401d3f3b:	75 40                	jne    0x1401d3f7d
1401d3f3d:	e8 2e 31 f5 ff       	call   0x140127070
1401d3f42:	4c 8d 05 ef 05 16 00 	lea    0x1605ef(%rip),%r8        # 0x140334538
1401d3f49:	ba bf 00 00 00       	mov    $0xbf,%edx
1401d3f4e:	48 8d 0d bb 05 16 00 	lea    0x1605bb(%rip),%rcx        # 0x140334510
1401d3f55:	e8 36 32 f5 ff       	call   0x140127190
1401d3f5a:	45 33 c0             	xor    %r8d,%r8d
1401d3f5d:	ba 00 01 0c 00       	mov    $0xc0100,%edx
1401d3f62:	41 8d 48 03          	lea    0x3(%r8),%ecx
1401d3f66:	e8 25 33 f5 ff       	call   0x140127290
1401d3f6b:	33 c0                	xor    %eax,%eax
1401d3f6d:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1401d3f72:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1401d3f77:	48 83 c4 20          	add    $0x20,%rsp
1401d3f7b:	5f                   	pop    %rdi
1401d3f7c:	c3                   	ret
1401d3f7d:	48 8b 0b             	mov    (%rbx),%rcx
1401d3f80:	4c 8b c7             	mov    %rdi,%r8
1401d3f83:	49 c1 e0 03          	shl    $0x3,%r8
1401d3f87:	48 8b d6             	mov    %rsi,%rdx
1401d3f8a:	e8 d1 d3 10 00       	call   0x1402e1360
1401d3f8f:	48 8b cb             	mov    %rbx,%rcx
1401d3f92:	89 7b 08             	mov    %edi,0x8(%rbx)
1401d3f95:	e8 16 da f1 ff       	call   0x1400f19b0
1401d3f9a:	48 8b 5c 24 30       	mov    0x30(%rsp),%rbx
1401d3f9f:	b8 01 00 00 00       	mov    $0x1,%eax
1401d3fa4:	48 8b 74 24 38       	mov    0x38(%rsp),%rsi
1401d3fa9:	48 83 c4 20          	add    $0x20,%rsp
1401d3fad:	5f                   	pop    %rdi
1401d3fae:	c3                   	ret
1401d3faf:	cc                   	int3
1401d3fb0:	48 89 5c 24 20       	mov    %rbx,0x20(%rsp)
1401d3fb5:	55                   	push   %rbp
1401d3fb6:	56                   	push   %rsi
1401d3fb7:	57                   	push   %rdi
1401d3fb8:	41 55                	push   %r13
1401d3fba:	41 56                	push   %r14
1401d3fbc:	b8 40 00 00 00       	mov    $0x40,%eax
1401d3fc1:	e8 6a cb 0d 00       	call   0x1402b0b30
1401d3fc6:	48 2b e0             	sub    %rax,%rsp
1401d3fc9:	45 33 f6             	xor    %r14d,%r14d
1401d3fcc:	49 8b f1             	mov    %r9,%rsi
1401d3fcf:	4c 89 74 24 70       	mov    %r14,0x70(%rsp)
1401d3fd4:	49 8b f8             	mov    %r8,%rdi
1401d3fd7:	48 8b ea             	mov    %rdx,%rbp
1401d3fda:	4c 8b e9             	mov    %rcx,%r13
1401d3fdd:	41 8b de             	mov    %r14d,%ebx
1401d3fe0:	48 85 c9             	test   %rcx,%rcx
1401d3fe3:	0f 84 c7 03 00 00    	je     0x1401d43b0
1401d3fe9:	48 85 d2             	test   %rdx,%rdx
1401d3fec:	0f 84 be 03 00 00    	je     0x1401d43b0
1401d3ff2:	44 8d 40 c3          	lea    -0x3d(%rax),%r8d
1401d3ff6:	4c 89 64 24 78       	mov    %r12,0x78(%rsp)
1401d3ffb:	48 8d 15 46 05 16 00 	lea    0x160546(%rip),%rdx        # 0x140334548
1401d4002:	48 8b cf             	mov    %rdi,%rcx
1401d4005:	e8 26 ef 0e 00       	call   0x1402c2f30
1401d400a:	85 c0                	test   %eax,%eax
1401d400c:	45 8b e6             	mov    %r14d,%r12d
1401d400f:	41 0f 94 c4          	sete   %r12b
1401d4013:	85 c0                	test   %eax,%eax
1401d4015:	75 04                	jne    0x1401d401b
1401d4017:	48 83 c7 03          	add    $0x3,%rdi
1401d401b:	48 8b d7             	mov    %rdi,%rdx
1401d401e:	48 8b cd             	mov    %rbp,%rcx
1401d4021:	e8 da 48 f6 ff       	call   0x140138900
1401d4026:	48 8b 8c 24 98 00 00 	mov    0x98(%rsp),%rcx
1401d402d:	00
1401d402e:	48 8b f8             	mov    %rax,%rdi
1401d4031:	48 85 c9             	test   %rcx,%rcx
1401d4034:	74 0b                	je     0x1401d4041
1401d4036:	41 8b c6             	mov    %r14d,%eax
1401d4039:	48 85 ff             	test   %rdi,%rdi
1401d403c:	0f 95 c0             	setne  %al
1401d403f:	89 01                	mov    %eax,(%rcx)
1401d4041:	48 85 ff             	test   %rdi,%rdi
1401d4044:	74 76                	je     0x1401d40bc
1401d4046:	8b 4f 08             	mov    0x8(%rdi),%ecx
1401d4049:	83 e9 01             	sub    $0x1,%ecx
1401d404c:	0f 84 ef 00 00 00    	je     0x1401d4141
1401d4052:	83 e9 01             	sub    $0x1,%ecx
1401d4055:	0f 84 e6 00 00 00    	je     0x1401d4141
1401d405b:	83 e9 02             	sub    $0x2,%ecx
1401d405e:	0f 84 92 00 00 00    	je     0x1401d40f6
1401d4064:	83 f9 01             	cmp    $0x1,%ecx
1401d4067:	0f 85 cc 01 00 00    	jne    0x1401d4239
1401d406d:	45 85 e4             	test   %r12d,%r12d
1401d4070:	74 77                	je     0x1401d40e9
1401d4072:	48 c7 c3 ff ff ff ff 	mov    $0xffffffffffffffff,%rbx
1401d4079:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1401d4080:	48 ff c3             	inc    %rbx
1401d4083:	44 38 34 1e          	cmp    %r14b,(%rsi,%rbx,1)
1401d4087:	75 f7                	jne    0x1401d4080
1401d4089:	f6 c3 01             	test   $0x1,%bl
1401d408c:	74 53                	je     0x1401d40e1
1401d408e:	e8 dd 2f f5 ff       	call   0x140127070
1401d4093:	4c 8d 05 b6 04 16 00 	lea    0x1604b6(%rip),%r8        # 0x140334550
1401d409a:	ba 7c 00 00 00       	mov    $0x7c,%edx
1401d409f:	48 8d 0d c2 04 16 00 	lea    0x1604c2(%rip),%rcx        # 0x140334568
1401d40a6:	e8 e5 30 f5 ff       	call   0x140127190
1401d40ab:	45 33 c0             	xor    %r8d,%r8d
1401d40ae:	41 8d 50 67          	lea    0x67(%r8),%edx
1401d40b2:	b9 0f 00 00 00       	mov    $0xf,%ecx
1401d40b7:	e8 d4 31 f5 ff       	call   0x140127290
1401d40bc:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
1401d40c1:	e8 6a cc f1 ff       	call   0x1400f0d30
1401d40c6:	33 c0                	xor    %eax,%eax
1401d40c8:	4c 8b 64 24 78       	mov    0x78(%rsp),%r12
1401d40cd:	48 8b 9c 24 88 00 00 	mov    0x88(%rsp),%rbx
1401d40d4:	00
1401d40d5:	48 83 c4 40          	add    $0x40,%rsp
1401d40d9:	41 5e                	pop    %r14
1401d40db:	41 5d                	pop    %r13
1401d40dd:	5f                   	pop    %rdi
1401d40de:	5e                   	pop    %rsi
1401d40df:	5d                   	pop    %rbp
1401d40e0:	c3                   	ret
1401d40e1:	48 d1 eb             	shr    $1,%rbx
1401d40e4:	e9 50 01 00 00       	jmp    0x1401d4239
1401d40e9:	48 8b 9c 24 90 00 00 	mov    0x90(%rsp),%rbx
1401d40f0:	00
1401d40f1:	e9 43 01 00 00       	jmp    0x1401d4239
1401d40f6:	45 85 e4             	test   %r12d,%r12d
1401d40f9:	74 27                	je     0x1401d4122
1401d40fb:	e8 70 2f f5 ff       	call   0x140127070
1401d4100:	4c 8d 05 49 04 16 00 	lea    0x160449(%rip),%r8        # 0x140334550
1401d4107:	ba 72 00 00 00       	mov    $0x72,%edx
1401d410c:	48 8d 0d 55 04 16 00 	lea    0x160455(%rip),%rcx        # 0x140334568
1401d4113:	e8 78 30 f5 ff       	call   0x140127190
1401d4118:	45 33 c0             	xor    %r8d,%r8d
1401d411b:	ba 06 01 08 00       	mov    $0x80106,%edx
1401d4120:	eb 90                	jmp    0x1401d40b2
1401d4122:	48 c7 c3 ff ff ff ff 	mov    $0xffffffffffffffff,%rbx
1401d4129:	0f 1f 80 00 00 00 00 	nopl   0x0(%rax)
1401d4130:	48 ff c3             	inc    %rbx
1401d4133:	44 38 34 1e          	cmp    %r14b,(%rsi,%rbx,1)
1401d4137:	75 f7                	jne    0x1401d4130
1401d4139:	48 ff c3             	inc    %rbx
1401d413c:	e9 f8 00 00 00       	jmp    0x1401d4239
1401d4141:	48 8d 4c 24 70       	lea    0x70(%rsp),%rcx
1401d4146:	48 8b d6             	mov    %rsi,%rdx
1401d4149:	45 85 e4             	test   %r12d,%r12d
1401d414c:	74 07                	je     0x1401d4155
1401d414e:	e8 cd 25 f6 ff       	call   0x140136720
1401d4153:	eb 05                	jmp    0x1401d415a
1401d4155:	e8 56 1e f6 ff       	call   0x140135fb0
1401d415a:	85 c0                	test   %eax,%eax
1401d415c:	0f 84 5a ff ff ff    	je     0x1401d40bc
1401d4162:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
1401d4167:	48 85 c9             	test   %rcx,%rcx
1401d416a:	0f 84 4c ff ff ff    	je     0x1401d40bc
1401d4170:	83 7f 08 02          	cmpl   $0x2,0x8(%rdi)
1401d4174:	75 32                	jne    0x1401d41a8
1401d4176:	e8 95 cc f1 ff       	call   0x1400f0e10
1401d417b:	85 c0                	test   %eax,%eax
1401d417d:	74 29                	je     0x1401d41a8
1401d417f:	e8 ec 2e f5 ff       	call   0x140127070
1401d4184:	4c 8d 05 c5 03 16 00 	lea    0x1603c5(%rip),%r8        # 0x140334550
1401d418b:	ba 3e 00 00 00       	mov    $0x3e,%edx
1401d4190:	48 8d 0d d1 03 16 00 	lea    0x1603d1(%rip),%rcx        # 0x140334568
1401d4197:	e8 f4 2f f5 ff       	call   0x140127190
1401d419c:	45 33 c0             	xor    %r8d,%r8d
1401d419f:	41 8d 50 7a          	lea    0x7a(%r8),%edx
1401d41a3:	e9 0a ff ff ff       	jmp    0x1401d40b2
1401d41a8:	83 7f 08 01          	cmpl   $0x1,0x8(%rdi)
1401d41ac:	75 25                	jne    0x1401d41d3
1401d41ae:	48 8b 4c 24 70       	mov    0x70(%rsp),%rcx
1401d41b3:	e8 58 cc f1 ff       	call   0x1400f0e10
1401d41b8:	85 c0                	test   %eax,%eax
1401d41ba:	74 17                	je     0x1401d41d3