45ee4a:	21 46 0c             	and    %eax,0xc(%esi)
45ee4d:	03 7e 0c             	add    0xc(%esi),%edi
45ee50:	8b c7                	mov    %edi,%eax
45ee52:	d1 e8                	shr    $1,%eax
45ee54:	23 c8                	and    %eax,%ecx
45ee56:	8b 45 00             	mov    0x0(%ebp),%eax
45ee59:	8d 1c 8d 00 00 00 00 	lea    0x0(,%ecx,4),%ebx
45ee60:	83 3c 03 00          	cmpl   $0x0,(%ebx,%eax,1)
45ee64:	75 10                	jne    0x45ee76
45ee66:	6a 10                	push   $0x10
45ee68:	e8 6b ab 00 00       	call   0x4699d8
45ee6d:	8b 4d 00             	mov    0x0(%ebp),%ecx
45ee70:	83 c4 04             	add    $0x4,%esp
45ee73:	89 04 0b             	mov    %eax,(%ebx,%ecx,1)
45ee76:	8b 45 00             	mov    0x0(%ebp),%eax
45ee79:	83 e7 01             	and    $0x1,%edi
45ee7c:	8b 54 24 34          	mov    0x34(%esp),%edx
45ee80:	8b 04 03             	mov    (%ebx,%eax,1),%eax
45ee83:	8b 0a                	mov    (%edx),%ecx
45ee85:	8b 52 04             	mov    0x4(%edx),%edx
45ee88:	8b 5c 24 18          	mov    0x18(%esp),%ebx
45ee8c:	89 0c f8             	mov    %ecx,(%eax,%edi,8)
45ee8f:	89 54 f8 04          	mov    %edx,0x4(%eax,%edi,8)
45ee93:	ff 46 10             	incl   0x10(%esi)
45ee96:	83 6c 24 20 01       	subl   $0x1,0x20(%esp)
45ee9b:	75 83                	jne    0x45ee20
45ee9d:	5f                   	pop    %edi
45ee9e:	5e                   	pop    %esi
45ee9f:	5d                   	pop    %ebp
45eea0:	5b                   	pop    %ebx
45eea1:	83 c4 1c             	add    $0x1c,%esp
45eea4:	c2 08 00             	ret    $0x8
45eea7:	cc                   	int3
45eea8:	cc                   	int3
45eea9:	cc                   	int3
45eeaa:	cc                   	int3
45eeab:	cc                   	int3
45eeac:	cc                   	int3
45eead:	cc                   	int3
45eeae:	cc                   	int3
45eeaf:	cc                   	int3
45eeb0:	56                   	push   %esi
45eeb1:	8b f1                	mov    %ecx,%esi
45eeb3:	e8 48 00 00 00       	call   0x45ef00
45eeb8:	8b 06                	mov    (%esi),%eax
45eeba:	6a 08                	push   $0x8
45eebc:	50                   	push   %eax
45eebd:	c7 06 00 00 00 00    	movl   $0x0,(%esi)
45eec3:	e8 40 ab 00 00       	call   0x469a08
45eec8:	83 c4 08             	add    $0x8,%esp
45eecb:	5e                   	pop    %esi
45eecc:	c3                   	ret
45eecd:	cc                   	int3
45eece:	cc                   	int3
45eecf:	cc                   	int3
45eed0:	8b 44 24 04          	mov    0x4(%esp),%eax
45eed4:	89 41 0c             	mov    %eax,0xc(%ecx)
45eed7:	c2 04 00             	ret    $0x4
45eeda:	cc                   	int3
45eedb:	cc                   	int3
45eedc:	cc                   	int3
45eedd:	cc                   	int3
45eede:	cc                   	int3
45eedf:	cc                   	int3
45eee0:	8b 01                	mov    (%ecx),%eax
45eee2:	85 c0                	test   %eax,%eax
45eee4:	74 0b                	je     0x45eef1
45eee6:	6a 08                	push   $0x8
45eee8:	50                   	push   %eax
45eee9:	e8 1a ab 00 00       	call   0x469a08
45eeee:	83 c4 08             	add    $0x8,%esp
45eef1:	c3                   	ret
45eef2:	cc                   	int3
45eef3:	cc                   	int3
45eef4:	cc                   	int3
45eef5:	cc                   	int3
45eef6:	cc                   	int3
45eef7:	cc                   	int3
45eef8:	cc                   	int3
45eef9:	cc                   	int3
45eefa:	cc                   	int3
45eefb:	cc                   	int3
45eefc:	cc                   	int3
45eefd:	cc                   	int3
45eefe:	cc                   	int3
45eeff:	cc                   	int3
45ef00:	57                   	push   %edi
45ef01:	8b f9                	mov    %ecx,%edi
45ef03:	8b 47 10             	mov    0x10(%edi),%eax
45ef06:	85 c0                	test   %eax,%eax
45ef08:	74 15                	je     0x45ef1f
45ef0a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
45ef10:	83 c0 ff             	add    $0xffffffff,%eax
45ef13:	89 47 10             	mov    %eax,0x10(%edi)
45ef16:	75 f8                	jne    0x45ef10
45ef18:	c7 47 0c 00 00 00 00 	movl   $0x0,0xc(%edi)
45ef1f:	56                   	push   %esi
45ef20:	8b 77 08             	mov    0x8(%edi),%esi
45ef23:	85 f6                	test   %esi,%esi
45ef25:	74 1a                	je     0x45ef41
45ef27:	8b 47 04             	mov    0x4(%edi),%eax
45ef2a:	4e                   	dec    %esi
45ef2b:	8b 04 b0             	mov    (%eax,%esi,4),%eax
45ef2e:	85 c0                	test   %eax,%eax
45ef30:	74 0b                	je     0x45ef3d
45ef32:	6a 10                	push   $0x10
45ef34:	50                   	push   %eax
45ef35:	e8 ce aa 00 00       	call   0x469a08
45ef3a:	83 c4 08             	add    $0x8,%esp
45ef3d:	85 f6                	test   %esi,%esi
45ef3f:	75 e6                	jne    0x45ef27
45ef41:	8b 47 04             	mov    0x4(%edi),%eax
45ef44:	5e                   	pop    %esi
45ef45:	85 c0                	test   %eax,%eax
45ef47:	74 2a                	je     0x45ef73
45ef49:	8b 4f 08             	mov    0x8(%edi),%ecx
45ef4c:	c1 e1 02             	shl    $0x2,%ecx
45ef4f:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
45ef55:	72 12                	jb     0x45ef69
45ef57:	8b 50 fc             	mov    -0x4(%eax),%edx
45ef5a:	83 c1 23             	add    $0x23,%ecx
45ef5d:	2b c2                	sub    %edx,%eax
45ef5f:	83 c0 fc             	add    $0xfffffffc,%eax
45ef62:	83 f8 1f             	cmp    $0x1f,%eax
45ef65:	77 1c                	ja     0x45ef83
45ef67:	8b c2                	mov    %edx,%eax
45ef69:	51                   	push   %ecx
45ef6a:	50                   	push   %eax
45ef6b:	e8 98 aa 00 00       	call   0x469a08
45ef70:	83 c4 08             	add    $0x8,%esp
45ef73:	c7 47 08 00 00 00 00 	movl   $0x0,0x8(%edi)
45ef7a:	c7 47 04 00 00 00 00 	movl   $0x0,0x4(%edi)
45ef81:	5f                   	pop    %edi
45ef82:	c3                   	ret
45ef83:	e8 a9 a6 01 00       	call   0x479631
45ef88:	cc                   	int3
45ef89:	cc                   	int3
45ef8a:	cc                   	int3
45ef8b:	cc                   	int3
45ef8c:	cc                   	int3
45ef8d:	cc                   	int3
45ef8e:	cc                   	int3
45ef8f:	cc                   	int3
45ef90:	8b 09                	mov    (%ecx),%ecx
45ef92:	85 c9                	test   %ecx,%ecx
45ef94:	0f 85 66 ff ff ff    	jne    0x45ef00
45ef9a:	c3                   	ret
45ef9b:	cc                   	int3
45ef9c:	cc                   	int3
45ef9d:	cc                   	int3
45ef9e:	cc                   	int3
45ef9f:	cc                   	int3
45efa0:	83 ec 10             	sub    $0x10,%esp
45efa3:	53                   	push   %ebx
45efa4:	55                   	push   %ebp
45efa5:	56                   	push   %esi
45efa6:	8b f1                	mov    %ecx,%esi
45efa8:	b8 01 00 00 00       	mov    $0x1,%eax
45efad:	57                   	push   %edi
45efae:	89 74 24 14          	mov    %esi,0x14(%esp)
45efb2:	8b 56 08             	mov    0x8(%esi),%edx
45efb5:	85 d2                	test   %edx,%edx
45efb7:	0f 45 c2             	cmovne %edx,%eax
45efba:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
45efc0:	8b d8                	mov    %eax,%ebx
45efc2:	2b da                	sub    %edx,%ebx
45efc4:	83 fb 01             	cmp    $0x1,%ebx
45efc7:	72 05                	jb     0x45efce
45efc9:	83 f8 08             	cmp    $0x8,%eax
45efcc:	73 13                	jae    0x45efe1
45efce:	b9 ff ff ff 0f       	mov    $0xfffffff,%ecx
45efd3:	2b c8                	sub    %eax,%ecx
45efd5:	3b c8                	cmp    %eax,%ecx
45efd7:	0f 82 53 01 00 00    	jb     0x45f130
45efdd:	03 c0                	add    %eax,%eax
45efdf:	eb df                	jmp    0x45efc0
45efe1:	8b 7e 0c             	mov    0xc(%esi),%edi
45efe4:	c1 ef 02             	shr    $0x2,%edi
45efe7:	89 7c 24 18          	mov    %edi,0x18(%esp)
45efeb:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
45eff0:	0f 87 44 01 00 00    	ja     0x45f13a
45eff6:	c1 e0 02             	shl    $0x2,%eax
45eff9:	3d 00 10 00 00       	cmp    $0x1000,%eax
45effe:	72 27                	jb     0x45f027
45f000:	8d 48 23             	lea    0x23(%eax),%ecx
45f003:	3b c8                	cmp    %eax,%ecx
45f005:	0f 86 2f 01 00 00    	jbe    0x45f13a
45f00b:	51                   	push   %ecx
45f00c:	e8 c7 a9 00 00       	call   0x4699d8
45f011:	83 c4 04             	add    $0x4,%esp
45f014:	85 c0                	test   %eax,%eax
45f016:	0f 84 19 01 00 00    	je     0x45f135
45f01c:	8d 68 23             	lea    0x23(%eax),%ebp
45f01f:	83 e5 e0             	and    $0xffffffe0,%ebp
45f022:	89 45 fc             	mov    %eax,-0x4(%ebp)
45f025:	eb 13                	jmp    0x45f03a
45f027:	85 c0                	test   %eax,%eax
45f029:	74 0d                	je     0x45f038
45f02b:	50                   	push   %eax
45f02c:	e8 a7 a9 00 00       	call   0x4699d8
45f031:	83 c4 04             	add    $0x4,%esp
45f034:	8b e8                	mov    %eax,%ebp
45f036:	eb 02                	jmp    0x45f03a
45f038:	33 ed                	xor    %ebp,%ebp
45f03a:	8b 46 04             	mov    0x4(%esi),%eax
45f03d:	8d 14 bd 00 00 00 00 	lea    0x0(,%edi,4),%edx
45f044:	8b 76 08             	mov    0x8(%esi),%esi
45f047:	8d 3c 2a             	lea    (%edx,%ebp,1),%edi
45f04a:	c1 e6 02             	shl    $0x2,%esi
45f04d:	89 54 24 10          	mov    %edx,0x10(%esp)
45f051:	8d 0c 10             	lea    (%eax,%edx,1),%ecx
45f054:	2b f1                	sub    %ecx,%esi
45f056:	03 f0                	add    %eax,%esi
45f058:	56                   	push   %esi
45f059:	51                   	push   %ecx
45f05a:	57                   	push   %edi
45f05b:	e8 c0 c5 00 00       	call   0x46b620
45f060:	8d 04 3e             	lea    (%esi,%edi,1),%eax
45f063:	83 c4 0c             	add    $0xc,%esp
45f066:	8b 74 24 14          	mov    0x14(%esp),%esi
45f06a:	8b 7c 24 18          	mov    0x18(%esp),%edi
45f06e:	89 44 24 1c          	mov    %eax,0x1c(%esp)
45f072:	8b 56 04             	mov    0x4(%esi),%edx
45f075:	3b fb                	cmp    %ebx,%edi
45f077:	77 3a                	ja     0x45f0b3
45f079:	8d 0c bd 00 00 00 00 	lea    0x0(,%edi,4),%ecx
45f080:	51                   	push   %ecx
45f081:	52                   	push   %edx
45f082:	50                   	push   %eax
45f083:	e8 98 c5 00 00       	call   0x46b620
45f088:	83 c4 0c             	add    $0xc,%esp
45f08b:	8b c3                	mov    %ebx,%eax
45f08d:	2b c7                	sub    %edi,%eax
45f08f:	8b 7c 24 10          	mov    0x10(%esp),%edi
45f093:	c1 e0 02             	shl    $0x2,%eax
45f096:	50                   	push   %eax
45f097:	8b 44 24 20          	mov    0x20(%esp),%eax
45f09b:	03 c7                	add    %edi,%eax
45f09d:	6a 00                	push   $0x0
45f09f:	50                   	push   %eax
45f0a0:	e8 0b cb 00 00       	call   0x46bbb0
45f0a5:	83 c4 0c             	add    $0xc,%esp
45f0a8:	57                   	push   %edi
45f0a9:	6a 00                	push   $0x0
45f0ab:	55                   	push   %ebp
45f0ac:	e8 ff ca 00 00       	call   0x46bbb0
45f0b1:	eb 39                	jmp    0x45f0ec
45f0b3:	8d 3c 9d 00 00 00 00 	lea    0x0(,%ebx,4),%edi
45f0ba:	57                   	push   %edi
45f0bb:	52                   	push   %edx
45f0bc:	50                   	push   %eax
45f0bd:	e8 5e c5 00 00       	call   0x46b620
45f0c2:	8b 76 04             	mov    0x4(%esi),%esi
45f0c5:	83 c4 0c             	add    $0xc,%esp
45f0c8:	8d 04 37             	lea    (%edi,%esi,1),%eax
45f0cb:	2b f0                	sub    %eax,%esi
45f0cd:	03 74 24 10          	add    0x10(%esp),%esi
45f0d1:	56                   	push   %esi
45f0d2:	50                   	push   %eax
45f0d3:	55                   	push   %ebp
45f0d4:	e8 47 c5 00 00       	call   0x46b620
45f0d9:	83 c4 0c             	add    $0xc,%esp
45f0dc:	8d 04 2e             	lea    (%esi,%ebp,1),%eax
45f0df:	57                   	push   %edi
45f0e0:	6a 00                	push   $0x0
45f0e2:	50                   	push   %eax
45f0e3:	e8 c8 ca 00 00       	call   0x46bbb0
45f0e8:	8b 74 24 20          	mov    0x20(%esp),%esi
45f0ec:	8b 46 04             	mov    0x4(%esi),%eax
45f0ef:	83 c4 0c             	add    $0xc,%esp
45f0f2:	85 c0                	test   %eax,%eax
45f0f4:	74 2a                	je     0x45f120
45f0f6:	8b 4e 08             	mov    0x8(%esi),%ecx
45f0f9:	c1 e1 02             	shl    $0x2,%ecx
45f0fc:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
45f102:	72 12                	jb     0x45f116
45f104:	8b 50 fc             	mov    -0x4(%eax),%edx
45f107:	83 c1 23             	add    $0x23,%ecx
45f10a:	2b c2                	sub    %edx,%eax
45f10c:	83 c0 fc             	add    $0xfffffffc,%eax
45f10f:	83 f8 1f             	cmp    $0x1f,%eax
45f112:	77 21                	ja     0x45f135
45f114:	8b c2                	mov    %edx,%eax
45f116:	51                   	push   %ecx
45f117:	50                   	push   %eax
45f118:	e8 eb a8 00 00       	call   0x469a08
45f11d:	83 c4 08             	add    $0x8,%esp
45f120:	01 5e 08             	add    %ebx,0x8(%esi)
45f123:	5f                   	pop    %edi
45f124:	89 6e 04             	mov    %ebp,0x4(%esi)
45f127:	5e                   	pop    %esi
45f128:	5d                   	pop    %ebp
45f129:	5b                   	pop    %ebx
45f12a:	83 c4 10             	add    $0x10,%esp
45f12d:	c2 04 00             	ret    $0x4
45f130:	e8 bb 66 fd ff       	call   0x4357f0
45f135:	e8 f7 a4 01 00       	call   0x479631
45f13a:	e8 01 22 fa ff       	call   0x401340
45f13f:	cc                   	int3
45f140:	83 ec 10             	sub    $0x10,%esp
45f143:	53                   	push   %ebx
45f144:	55                   	push   %ebp
45f145:	56                   	push   %esi
45f146:	8b f1                	mov    %ecx,%esi
45f148:	b8 01 00 00 00       	mov    $0x1,%eax
45f14d:	57                   	push   %edi
45f14e:	89 74 24 14          	mov    %esi,0x14(%esp)
45f152:	8b 56 08             	mov    0x8(%esi),%edx
45f155:	85 d2                	test   %edx,%edx
45f157:	0f 45 c2             	cmovne %edx,%eax
45f15a:	66 0f 1f 44 00 00    	nopw   0x0(%eax,%eax,1)
45f160:	8b d8                	mov    %eax,%ebx
45f162:	2b da                	sub    %edx,%ebx
45f164:	83 fb 01             	cmp    $0x1,%ebx
45f167:	72 05                	jb     0x45f16e
45f169:	83 f8 08             	cmp    $0x8,%eax
45f16c:	73 13                	jae    0x45f181
45f16e:	b9 ff ff ff 0f       	mov    $0xfffffff,%ecx
45f173:	2b c8                	sub    %eax,%ecx
45f175:	3b c8                	cmp    %eax,%ecx
45f177:	0f 82 52 01 00 00    	jb     0x45f2cf
45f17d:	03 c0                	add    %eax,%eax
45f17f:	eb df                	jmp    0x45f160
45f181:	8b 7e 0c             	mov    0xc(%esi),%edi
45f184:	d1 ef                	shr    $1,%edi
45f186:	89 7c 24 18          	mov    %edi,0x18(%esp)
45f18a:	3d ff ff ff 3f       	cmp    $0x3fffffff,%eax
45f18f:	0f 87 44 01 00 00    	ja     0x45f2d9
45f195:	c1 e0 02             	shl    $0x2,%eax
45f198:	3d 00 10 00 00       	cmp    $0x1000,%eax
45f19d:	72 27                	jb     0x45f1c6
45f19f:	8d 48 23             	lea    0x23(%eax),%ecx
45f1a2:	3b c8                	cmp    %eax,%ecx
45f1a4:	0f 86 2f 01 00 00    	jbe    0x45f2d9
45f1aa:	51                   	push   %ecx
45f1ab:	e8 28 a8 00 00       	call   0x4699d8
45f1b0:	83 c4 04             	add    $0x4,%esp
45f1b3:	85 c0                	test   %eax,%eax
45f1b5:	0f 84 19 01 00 00    	je     0x45f2d4
45f1bb:	8d 68 23             	lea    0x23(%eax),%ebp
45f1be:	83 e5 e0             	and    $0xffffffe0,%ebp
45f1c1:	89 45 fc             	mov    %eax,-0x4(%ebp)
45f1c4:	eb 13                	jmp    0x45f1d9
45f1c6:	85 c0                	test   %eax,%eax
45f1c8:	74 0d                	je     0x45f1d7
45f1ca:	50                   	push   %eax
45f1cb:	e8 08 a8 00 00       	call   0x4699d8
45f1d0:	83 c4 04             	add    $0x4,%esp
45f1d3:	8b e8                	mov    %eax,%ebp
45f1d5:	eb 02                	jmp    0x45f1d9