40be1d:	2b f3                	sub    %ebx,%esi
40be1f:	b8 00 02 00 00       	mov    $0x200,%eax
40be24:	c1 fe 02             	sar    $0x2,%esi
40be27:	3b f0                	cmp    %eax,%esi
40be29:	77 02                	ja     0x40be2d
40be2b:	8b c6                	mov    %esi,%eax
40be2d:	8d 3c 30             	lea    (%eax,%esi,1),%edi
40be30:	85 ff                	test   %edi,%edi
40be32:	75 03                	jne    0x40be37
40be34:	6a 20                	push   $0x20
40be36:	5f                   	pop    %edi
40be37:	3b fe                	cmp    %esi,%edi
40be39:	72 1d                	jb     0x40be58
40be3b:	6a 04                	push   $0x4
40be3d:	57                   	push   %edi
40be3e:	53                   	push   %ebx
40be3f:	e8 cd 57 00 00       	call   0x411611
40be44:	6a 00                	push   $0x0
40be46:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be49:	e8 f5 2e 00 00       	call   0x40ed43
40be4e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be51:	83 c4 10             	add    $0x10,%esp
40be54:	85 c9                	test   %ecx,%ecx
40be56:	75 24                	jne    0x40be7c
40be58:	6a 04                	push   $0x4
40be5a:	8d 7e 04             	lea    0x4(%esi),%edi
40be5d:	57                   	push   %edi
40be5e:	53                   	push   %ebx
40be5f:	e8 ad 57 00 00       	call   0x411611
40be64:	6a 00                	push   $0x0
40be66:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be69:	e8 d5 2e 00 00       	call   0x40ed43
40be6e:	8b 4d fc             	mov    -0x4(%ebp),%ecx
40be71:	83 c4 10             	add    $0x10,%esp
40be74:	85 c9                	test   %ecx,%ecx
40be76:	0f 84 80 00 00 00    	je     0x40befc
40be7c:	8d 04 b1             	lea    (%ecx,%esi,4),%eax
40be7f:	8b d9                	mov    %ecx,%ebx
40be81:	89 45 fc             	mov    %eax,-0x4(%ebp)
40be84:	8d 34 b9             	lea    (%ecx,%edi,4),%esi
40be87:	a1 18 60 42 00       	mov    0x426018,%eax
40be8c:	8b 7d fc             	mov    -0x4(%ebp),%edi
40be8f:	8b cf                	mov    %edi,%ecx
40be91:	89 45 f4             	mov    %eax,-0xc(%ebp)
40be94:	8b c6                	mov    %esi,%eax
40be96:	2b c7                	sub    %edi,%eax
40be98:	83 c0 03             	add    $0x3,%eax
40be9b:	c1 e8 02             	shr    $0x2,%eax
40be9e:	3b f7                	cmp    %edi,%esi
40bea0:	1b d2                	sbb    %edx,%edx
40bea2:	f7 d2                	not    %edx
40bea4:	23 d0                	and    %eax,%edx
40bea6:	74 12                	je     0x40beba
40bea8:	8b 7d f4             	mov    -0xc(%ebp),%edi
40beab:	33 c0                	xor    %eax,%eax
40bead:	40                   	inc    %eax
40beae:	89 39                	mov    %edi,(%ecx)
40beb0:	8d 49 04             	lea    0x4(%ecx),%ecx
40beb3:	3b c2                	cmp    %edx,%eax
40beb5:	75 f6                	jne    0x40bead
40beb7:	8b 7d fc             	mov    -0x4(%ebp),%edi
40beba:	8b 45 f8             	mov    -0x8(%ebp),%eax
40bebd:	8b 40 04             	mov    0x4(%eax),%eax
40bec0:	ff 30                	push   (%eax)
40bec2:	e8 66 f3 ff ff       	call   0x40b22d
40bec7:	53                   	push   %ebx
40bec8:	89 07                	mov    %eax,(%edi)
40beca:	e8 5e f3 ff ff       	call   0x40b22d
40becf:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40bed2:	8b 0b                	mov    (%ebx),%ecx
40bed4:	8b 09                	mov    (%ecx),%ecx
40bed6:	89 01                	mov    %eax,(%ecx)
40bed8:	8d 47 04             	lea    0x4(%edi),%eax
40bedb:	50                   	push   %eax
40bedc:	e8 4c f3 ff ff       	call   0x40b22d
40bee1:	8b 0b                	mov    (%ebx),%ecx
40bee3:	56                   	push   %esi
40bee4:	8b 09                	mov    (%ecx),%ecx
40bee6:	89 41 04             	mov    %eax,0x4(%ecx)
40bee9:	e8 3f f3 ff ff       	call   0x40b22d
40beee:	8b 0b                	mov    (%ebx),%ecx
40bef0:	83 c4 10             	add    $0x10,%esp
40bef3:	8b 09                	mov    (%ecx),%ecx
40bef5:	89 41 08             	mov    %eax,0x8(%ecx)
40bef8:	33 c0                	xor    %eax,%eax
40befa:	eb 03                	jmp    0x40beff
40befc:	83 c8 ff             	or     $0xffffffff,%eax
40beff:	5f                   	pop    %edi
40bf00:	5e                   	pop    %esi
40bf01:	5b                   	pop    %ebx
40bf02:	c9                   	leave
40bf03:	c3                   	ret
40bf04:	8b ff                	mov    %edi,%edi
40bf06:	55                   	push   %ebp
40bf07:	8b ec                	mov    %esp,%ebp
40bf09:	83 ec 14             	sub    $0x14,%esp
40bf0c:	53                   	push   %ebx
40bf0d:	8b d9                	mov    %ecx,%ebx
40bf0f:	57                   	push   %edi
40bf10:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40bf13:	8b 03                	mov    (%ebx),%eax
40bf15:	8b 38                	mov    (%eax),%edi
40bf17:	85 ff                	test   %edi,%edi
40bf19:	75 08                	jne    0x40bf23
40bf1b:	83 c8 ff             	or     $0xffffffff,%eax
40bf1e:	e9 b7 00 00 00       	jmp    0x40bfda
40bf23:	8b 15 18 60 42 00    	mov    0x426018,%edx
40bf29:	8b ca                	mov    %edx,%ecx
40bf2b:	56                   	push   %esi
40bf2c:	8b 37                	mov    (%edi),%esi
40bf2e:	83 e1 1f             	and    $0x1f,%ecx
40bf31:	8b 7f 04             	mov    0x4(%edi),%edi
40bf34:	33 f2                	xor    %edx,%esi
40bf36:	33 fa                	xor    %edx,%edi
40bf38:	d3 ce                	ror    %cl,%esi
40bf3a:	d3 cf                	ror    %cl,%edi
40bf3c:	85 f6                	test   %esi,%esi
40bf3e:	0f 84 93 00 00 00    	je     0x40bfd7
40bf44:	83 fe ff             	cmp    $0xffffffff,%esi
40bf47:	0f 84 8a 00 00 00    	je     0x40bfd7
40bf4d:	89 55 fc             	mov    %edx,-0x4(%ebp)
40bf50:	89 7d f4             	mov    %edi,-0xc(%ebp)
40bf53:	89 75 f8             	mov    %esi,-0x8(%ebp)
40bf56:	83 ef 04             	sub    $0x4,%edi
40bf59:	3b fe                	cmp    %esi,%edi
40bf5b:	72 54                	jb     0x40bfb1
40bf5d:	8b 07                	mov    (%edi),%eax
40bf5f:	3b 45 fc             	cmp    -0x4(%ebp),%eax
40bf62:	74 f2                	je     0x40bf56
40bf64:	33 c2                	xor    %edx,%eax
40bf66:	8b 55 fc             	mov    -0x4(%ebp),%edx
40bf69:	d3 c8                	ror    %cl,%eax
40bf6b:	8b c8                	mov    %eax,%ecx
40bf6d:	89 17                	mov    %edx,(%edi)
40bf6f:	89 45 f0             	mov    %eax,-0x10(%ebp)
40bf72:	ff 15 50 c2 41 00    	call   *0x41c250
40bf78:	ff 55 f0             	call   *-0x10(%ebp)
40bf7b:	8b 03                	mov    (%ebx),%eax
40bf7d:	8b 15 18 60 42 00    	mov    0x426018,%edx
40bf83:	8b ca                	mov    %edx,%ecx
40bf85:	83 e1 1f             	and    $0x1f,%ecx
40bf88:	8b 00                	mov    (%eax),%eax
40bf8a:	8b 18                	mov    (%eax),%ebx
40bf8c:	8b 40 04             	mov    0x4(%eax),%eax
40bf8f:	33 da                	xor    %edx,%ebx
40bf91:	d3 cb                	ror    %cl,%ebx
40bf93:	33 c2                	xor    %edx,%eax
40bf95:	d3 c8                	ror    %cl,%eax
40bf97:	3b 5d f8             	cmp    -0x8(%ebp),%ebx
40bf9a:	89 5d f0             	mov    %ebx,-0x10(%ebp)
40bf9d:	8b 5d ec             	mov    -0x14(%ebp),%ebx
40bfa0:	75 05                	jne    0x40bfa7
40bfa2:	3b 45 f4             	cmp    -0xc(%ebp),%eax
40bfa5:	74 af                	je     0x40bf56
40bfa7:	8b 75 f0             	mov    -0x10(%ebp),%esi
40bfaa:	8b f8                	mov    %eax,%edi
40bfac:	89 45 f4             	mov    %eax,-0xc(%ebp)
40bfaf:	eb a2                	jmp    0x40bf53
40bfb1:	83 fe ff             	cmp    $0xffffffff,%esi
40bfb4:	74 0d                	je     0x40bfc3
40bfb6:	56                   	push   %esi
40bfb7:	e8 87 2d 00 00       	call   0x40ed43
40bfbc:	8b 15 18 60 42 00    	mov    0x426018,%edx
40bfc2:	59                   	pop    %ecx
40bfc3:	8b 03                	mov    (%ebx),%eax
40bfc5:	8b 00                	mov    (%eax),%eax
40bfc7:	89 10                	mov    %edx,(%eax)
40bfc9:	8b 03                	mov    (%ebx),%eax
40bfcb:	8b 00                	mov    (%eax),%eax
40bfcd:	89 50 04             	mov    %edx,0x4(%eax)
40bfd0:	8b 03                	mov    (%ebx),%eax
40bfd2:	8b 00                	mov    (%eax),%eax
40bfd4:	89 50 08             	mov    %edx,0x8(%eax)
40bfd7:	33 c0                	xor    %eax,%eax
40bfd9:	5e                   	pop    %esi
40bfda:	5f                   	pop    %edi
40bfdb:	5b                   	pop    %ebx
40bfdc:	c9                   	leave
40bfdd:	c3                   	ret
40bfde:	8b ff                	mov    %edi,%edi
40bfe0:	55                   	push   %ebp
40bfe1:	8b ec                	mov    %esp,%ebp
40bfe3:	ff 75 08             	push   0x8(%ebp)
40bfe6:	68 74 6e 42 00       	push   $0x426e74
40bfeb:	e8 5a 00 00 00       	call   0x40c04a
40bff0:	59                   	pop    %ecx
40bff1:	59                   	pop    %ecx
40bff2:	5d                   	pop    %ebp
40bff3:	c3                   	ret
40bff4:	8b ff                	mov    %edi,%edi
40bff6:	55                   	push   %ebp
40bff7:	8b ec                	mov    %esp,%ebp
40bff9:	83 ec 10             	sub    $0x10,%esp
40bffc:	6a 02                	push   $0x2
40bffe:	8d 45 08             	lea    0x8(%ebp),%eax
40c001:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c004:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c007:	58                   	pop    %eax
40c008:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c00b:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c00e:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c011:	50                   	push   %eax
40c012:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c015:	50                   	push   %eax
40c016:	8d 45 f0             	lea    -0x10(%ebp),%eax
40c019:	50                   	push   %eax
40c01a:	e8 06 fd ff ff       	call   0x40bd25
40c01f:	c9                   	leave
40c020:	c3                   	ret
40c021:	8b ff                	mov    %edi,%edi
40c023:	55                   	push   %ebp
40c024:	8b ec                	mov    %esp,%ebp
40c026:	8b 4d 08             	mov    0x8(%ebp),%ecx
40c029:	85 c9                	test   %ecx,%ecx
40c02b:	75 05                	jne    0x40c032
40c02d:	83 c8 ff             	or     $0xffffffff,%eax
40c030:	5d                   	pop    %ebp
40c031:	c3                   	ret
40c032:	8b 01                	mov    (%ecx),%eax
40c034:	3b 41 08             	cmp    0x8(%ecx),%eax
40c037:	75 0d                	jne    0x40c046
40c039:	a1 18 60 42 00       	mov    0x426018,%eax
40c03e:	89 01                	mov    %eax,(%ecx)
40c040:	89 41 04             	mov    %eax,0x4(%ecx)
40c043:	89 41 08             	mov    %eax,0x8(%ecx)
40c046:	33 c0                	xor    %eax,%eax
40c048:	5d                   	pop    %ebp
40c049:	c3                   	ret
40c04a:	8b ff                	mov    %edi,%edi
40c04c:	55                   	push   %ebp
40c04d:	8b ec                	mov    %esp,%ebp
40c04f:	83 ec 14             	sub    $0x14,%esp
40c052:	8d 45 08             	lea    0x8(%ebp),%eax
40c055:	89 45 ec             	mov    %eax,-0x14(%ebp)
40c058:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c05b:	6a 02                	push   $0x2
40c05d:	8d 45 0c             	lea    0xc(%ebp),%eax
40c060:	89 45 f0             	mov    %eax,-0x10(%ebp)
40c063:	58                   	pop    %eax
40c064:	89 45 f8             	mov    %eax,-0x8(%ebp)
40c067:	89 45 f4             	mov    %eax,-0xc(%ebp)
40c06a:	8d 45 f8             	lea    -0x8(%ebp),%eax
40c06d:	50                   	push   %eax
40c06e:	8d 45 ec             	lea    -0x14(%ebp),%eax
40c071:	50                   	push   %eax
40c072:	8d 45 f4             	lea    -0xc(%ebp),%eax
40c075:	50                   	push   %eax
40c076:	e8 05 fd ff ff       	call   0x40bd80
40c07b:	c9                   	leave
40c07c:	c3                   	ret
40c07d:	cc                   	int3
40c07e:	cc                   	int3
40c07f:	cc                   	int3
40c080:	c7 05 1c 72 42 00 80 	movl   $0x426580,0x42721c
40c087:	65 42 00
40c08a:	b0 01                	mov    $0x1,%al
40c08c:	c3                   	ret
40c08d:	cc                   	int3
40c08e:	cc                   	int3
40c08f:	cc                   	int3
40c090:	68 74 6e 42 00       	push   $0x426e74
40c095:	e8 87 ff ff ff       	call   0x40c021
40c09a:	c7 04 24 80 6e 42 00 	movl   $0x426e80,(%esp)
40c0a1:	e8 7b ff ff ff       	call   0x40c021
40c0a6:	59                   	pop    %ecx
40c0a7:	b0 01                	mov    $0x1,%al
40c0a9:	c3                   	ret
40c0aa:	cc                   	int3
40c0ab:	cc                   	int3
40c0ac:	cc                   	int3
40c0ad:	cc                   	int3
40c0ae:	cc                   	int3
40c0af:	cc                   	int3
40c0b0:	e8 d6 f6 ff ff       	call   0x40b78b
40c0b5:	b0 01                	mov    $0x1,%al
40c0b7:	c3                   	ret
40c0b8:	cc                   	int3
40c0b9:	cc                   	int3
40c0ba:	cc                   	int3
40c0bb:	cc                   	int3
40c0bc:	cc                   	int3
40c0bd:	cc                   	int3
40c0be:	cc                   	int3
40c0bf:	cc                   	int3
40c0c0:	8b ff                	mov    %edi,%edi
40c0c2:	56                   	push   %esi
40c0c3:	8b 35 18 60 42 00    	mov    0x426018,%esi
40c0c9:	56                   	push   %esi
40c0ca:	e8 d4 2a 00 00       	call   0x40eba3
40c0cf:	56                   	push   %esi
40c0d0:	e8 6e 56 00 00       	call   0x411743
40c0d5:	56                   	push   %esi
40c0d6:	e8 f5 57 00 00       	call   0x4118d0
40c0db:	56                   	push   %esi
40c0dc:	e8 83 f1 ff ff       	call   0x40b264
40c0e1:	56                   	push   %esi
40c0e2:	e8 1c fa ff ff       	call   0x40bb03
40c0e7:	83 c4 14             	add    $0x14,%esp
40c0ea:	b0 01                	mov    $0x1,%al
40c0ec:	5e                   	pop    %esi
40c0ed:	c3                   	ret
40c0ee:	cc                   	int3
40c0ef:	cc                   	int3
40c0f0:	6a 00                	push   $0x0
40c0f2:	e8 f9 cd ff ff       	call   0x408ef0
40c0f7:	59                   	pop    %ecx
40c0f8:	c3                   	ret
40c0f9:	cc                   	int3
40c0fa:	cc                   	int3
40c0fb:	cc                   	int3
40c0fc:	cc                   	int3
40c0fd:	cc                   	int3
40c0fe:	cc                   	int3
40c0ff:	cc                   	int3
40c100:	8b ff                	mov    %edi,%edi
40c102:	55                   	push   %ebp
40c103:	8b ec                	mov    %esp,%ebp
40c105:	51                   	push   %ecx
40c106:	68 98 6e 42 00       	push   $0x426e98
40c10b:	8d 4d ff             	lea    -0x1(%ebp),%ecx
40c10e:	e8 5d 00 00 00       	call   0x40c170
40c113:	b0 01                	mov    $0x1,%al
40c115:	c9                   	leave
40c116:	c3                   	ret
40c117:	cc                   	int3
40c118:	cc                   	int3
40c119:	cc                   	int3
40c11a:	cc                   	int3
40c11b:	cc                   	int3
40c11c:	cc                   	int3
40c11d:	cc                   	int3
40c11e:	cc                   	int3
40c11f:	cc                   	int3
40c120:	8b ff                	mov    %edi,%edi
40c122:	56                   	push   %esi
40c123:	ff 35 20 73 42 00    	push   0x427320
40c129:	e8 15 2c 00 00       	call   0x40ed43
40c12e:	ff 35 24 73 42 00    	push   0x427324
40c134:	33 f6                	xor    %esi,%esi
40c136:	89 35 20 73 42 00    	mov    %esi,0x427320
40c13c:	e8 02 2c 00 00       	call   0x40ed43
40c141:	ff 35 ac 6e 42 00    	push   0x426eac
40c147:	89 35 24 73 42 00    	mov    %esi,0x427324
40c14d:	e8 f1 2b 00 00       	call   0x40ed43
40c152:	ff 35 b0 6e 42 00    	push   0x426eb0
40c158:	89 35 ac 6e 42 00    	mov    %esi,0x426eac
40c15e:	e8 e0 2b 00 00       	call   0x40ed43
40c163:	83 c4 10             	add    $0x10,%esp
40c166:	89 35 b0 6e 42 00    	mov    %esi,0x426eb0
40c16c:	b0 01                	mov    $0x1,%al