40cf4c:	51                   	push   %ecx
40cf4d:	ff 75 f0             	push   -0x10(%ebp)
40cf50:	8d 0c 3e             	lea    (%esi,%edi,1),%ecx
40cf53:	51                   	push   %ecx
40cf54:	e8 f7 04 01 00       	call   0x41d450
40cf59:	8b 45 fc             	mov    -0x4(%ebp),%eax
40cf5c:	83 c4 18             	add    $0x18,%esp
40cf5f:	33 c9                	xor    %ecx,%ecx
40cf61:	66 89 0c 47          	mov    %cx,(%edi,%eax,2)
40cf65:	8b c3                	mov    %ebx,%eax
40cf67:	5f                   	pop    %edi
40cf68:	5e                   	pop    %esi
40cf69:	5b                   	pop    %ebx
40cf6a:	8b e5                	mov    %ebp,%esp
40cf6c:	5d                   	pop    %ebp
40cf6d:	c2 18 00             	ret    $0x18
40cf70:	e8 8b 42 ff ff       	call   0x401200
40cf75:	e8 05 3b 01 00       	call   0x420a7f
40cf7a:	cc                   	int3
40cf7b:	cc                   	int3
40cf7c:	cc                   	int3
40cf7d:	cc                   	int3
40cf7e:	cc                   	int3
40cf7f:	cc                   	int3
40cf80:	56                   	push   %esi
40cf81:	8b 31                	mov    (%ecx),%esi
40cf83:	85 f6                	test   %esi,%esi
40cf85:	74 1b                	je     0x40cfa2
40cf87:	ff 76 08             	push   0x8(%esi)
40cf8a:	e8 be 90 01 00       	call   0x42604d
40cf8f:	ff 76 10             	push   0x10(%esi)
40cf92:	e8 b6 90 01 00       	call   0x42604d
40cf97:	ff 76 14             	push   0x14(%esi)
40cf9a:	e8 ae 90 01 00       	call   0x42604d
40cf9f:	83 c4 0c             	add    $0xc,%esp
40cfa2:	5e                   	pop    %esi
40cfa3:	c3                   	ret
40cfa4:	cc                   	int3
40cfa5:	cc                   	int3
40cfa6:	cc                   	int3
40cfa7:	cc                   	int3
40cfa8:	cc                   	int3
40cfa9:	cc                   	int3
40cfaa:	cc                   	int3
40cfab:	cc                   	int3
40cfac:	cc                   	int3
40cfad:	cc                   	int3
40cfae:	cc                   	int3
40cfaf:	cc                   	int3
40cfb0:	55                   	push   %ebp
40cfb1:	8b ec                	mov    %esp,%ebp
40cfb3:	51                   	push   %ecx
40cfb4:	8b 45 08             	mov    0x8(%ebp),%eax
40cfb7:	53                   	push   %ebx
40cfb8:	57                   	push   %edi
40cfb9:	8b 7d 0c             	mov    0xc(%ebp),%edi
40cfbc:	8b d9                	mov    %ecx,%ebx
40cfbe:	89 45 fc             	mov    %eax,-0x4(%ebp)
40cfc1:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
40cfc5:	75 71                	jne    0x40d038
40cfc7:	56                   	push   %esi
40cfc8:	ff 77 08             	push   0x8(%edi)
40cfcb:	8b cb                	mov    %ebx,%ecx
40cfcd:	50                   	push   %eax
40cfce:	e8 dd ff ff ff       	call   0x40cfb0
40cfd3:	8b f7                	mov    %edi,%esi
40cfd5:	8b 3f                	mov    (%edi),%edi
40cfd7:	8b 4e 24             	mov    0x24(%esi),%ecx
40cfda:	83 f9 08             	cmp    $0x8,%ecx
40cfdd:	72 2e                	jb     0x40d00d
40cfdf:	8b 46 10             	mov    0x10(%esi),%eax
40cfe2:	8d 0c 4d 02 00 00 00 	lea    0x2(,%ecx,2),%ecx
40cfe9:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40cfef:	72 12                	jb     0x40d003
40cff1:	8b 50 fc             	mov    -0x4(%eax),%edx
40cff4:	83 c1 23             	add    $0x23,%ecx
40cff7:	2b c2                	sub    %edx,%eax
40cff9:	83 c0 fc             	add    $0xfffffffc,%eax
40cffc:	83 f8 1f             	cmp    $0x1f,%eax
40cfff:	77 3f                	ja     0x40d040
40d001:	8b c2                	mov    %edx,%eax
40d003:	51                   	push   %ecx
40d004:	50                   	push   %eax
40d005:	e8 04 e9 00 00       	call   0x41b90e
40d00a:	83 c4 08             	add    $0x8,%esp
40d00d:	33 c0                	xor    %eax,%eax
40d00f:	c7 46 20 00 00 00 00 	movl   $0x0,0x20(%esi)
40d016:	6a 2c                	push   $0x2c
40d018:	56                   	push   %esi
40d019:	c7 46 24 07 00 00 00 	movl   $0x7,0x24(%esi)
40d020:	66 89 46 10          	mov    %ax,0x10(%esi)
40d024:	e8 e5 e8 00 00       	call   0x41b90e
40d029:	83 c4 08             	add    $0x8,%esp
40d02c:	80 7f 0d 00          	cmpb   $0x0,0xd(%edi)
40d030:	75 05                	jne    0x40d037
40d032:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d035:	eb 91                	jmp    0x40cfc8
40d037:	5e                   	pop    %esi
40d038:	5f                   	pop    %edi
40d039:	5b                   	pop    %ebx
40d03a:	8b e5                	mov    %ebp,%esp
40d03c:	5d                   	pop    %ebp
40d03d:	c2 08 00             	ret    $0x8
40d040:	e8 3a 3a 01 00       	call   0x420a7f
40d045:	cc                   	int3
40d046:	cc                   	int3
40d047:	cc                   	int3
40d048:	cc                   	int3
40d049:	cc                   	int3
40d04a:	cc                   	int3
40d04b:	cc                   	int3
40d04c:	cc                   	int3
40d04d:	cc                   	int3
40d04e:	cc                   	int3
40d04f:	cc                   	int3
40d050:	55                   	push   %ebp
40d051:	8b ec                	mov    %esp,%ebp
40d053:	6a ff                	push   $0xffffffff
40d055:	68 00 de 43 00       	push   $0x43de00
40d05a:	64 a1 00 00 00 00    	mov    %fs:0x0,%eax
40d060:	50                   	push   %eax
40d061:	83 ec 24             	sub    $0x24,%esp
40d064:	53                   	push   %ebx
40d065:	56                   	push   %esi
40d066:	57                   	push   %edi
40d067:	a1 14 40 45 00       	mov    0x454014,%eax
40d06c:	33 c5                	xor    %ebp,%eax
40d06e:	50                   	push   %eax
40d06f:	8d 45 f4             	lea    -0xc(%ebp),%eax
40d072:	64 a3 00 00 00 00    	mov    %eax,%fs:0x0
40d078:	89 65 f0             	mov    %esp,-0x10(%ebp)
40d07b:	8b f9                	mov    %ecx,%edi
40d07d:	8b 45 08             	mov    0x8(%ebp),%eax
40d080:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40d083:	8b 1f                	mov    (%edi),%ebx
40d085:	89 45 e0             	mov    %eax,-0x20(%ebp)
40d088:	89 4d dc             	mov    %ecx,-0x24(%ebp)
40d08b:	8b c8                	mov    %eax,%ecx
40d08d:	2b cb                	sub    %ebx,%ecx
40d08f:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40d094:	f7 e9                	imul   %ecx
40d096:	8b 4f 04             	mov    0x4(%edi),%ecx
40d099:	c1 fa 02             	sar    $0x2,%edx
40d09c:	2b cb                	sub    %ebx,%ecx
40d09e:	8b c2                	mov    %edx,%eax
40d0a0:	c1 e8 1f             	shr    $0x1f,%eax
40d0a3:	03 c2                	add    %edx,%eax
40d0a5:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d0a8:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40d0ad:	f7 e9                	imul   %ecx
40d0af:	c1 fa 02             	sar    $0x2,%edx
40d0b2:	8b c2                	mov    %edx,%eax
40d0b4:	c1 e8 1f             	shr    $0x1f,%eax
40d0b7:	03 c2                	add    %edx,%eax
40d0b9:	89 45 d8             	mov    %eax,-0x28(%ebp)
40d0bc:	3d aa aa aa 0a       	cmp    $0xaaaaaaa,%eax
40d0c1:	0f 84 66 01 00 00    	je     0x40d22d
40d0c7:	8b 4f 08             	mov    0x8(%edi),%ecx
40d0ca:	8d 70 01             	lea    0x1(%eax),%esi
40d0cd:	2b cb                	sub    %ebx,%ecx
40d0cf:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40d0d4:	f7 e9                	imul   %ecx
40d0d6:	b8 aa aa aa 0a       	mov    $0xaaaaaaa,%eax
40d0db:	c1 fa 02             	sar    $0x2,%edx
40d0de:	8b ca                	mov    %edx,%ecx
40d0e0:	c1 e9 1f             	shr    $0x1f,%ecx
40d0e3:	03 ca                	add    %edx,%ecx
40d0e5:	8b d1                	mov    %ecx,%edx
40d0e7:	d1 ea                	shr    $1,%edx
40d0e9:	2b c2                	sub    %edx,%eax
40d0eb:	3b c8                	cmp    %eax,%ecx
40d0ed:	0f 87 35 01 00 00    	ja     0x40d228
40d0f3:	8d 04 0a             	lea    (%edx,%ecx,1),%eax
40d0f6:	8b de                	mov    %esi,%ebx
40d0f8:	3b c6                	cmp    %esi,%eax
40d0fa:	0f 43 d8             	cmovae %eax,%ebx
40d0fd:	81 fb aa aa aa 0a    	cmp    $0xaaaaaaa,%ebx
40d103:	0f 87 1f 01 00 00    	ja     0x40d228
40d109:	8d 04 5b             	lea    (%ebx,%ebx,2),%eax
40d10c:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40d10f:	c1 e0 03             	shl    $0x3,%eax
40d112:	89 45 d4             	mov    %eax,-0x2c(%ebp)
40d115:	3d 00 10 00 00       	cmp    $0x1000,%eax
40d11a:	72 27                	jb     0x40d143
40d11c:	8d 48 23             	lea    0x23(%eax),%ecx
40d11f:	3b c8                	cmp    %eax,%ecx
40d121:	0f 86 01 01 00 00    	jbe    0x40d228
40d127:	51                   	push   %ecx
40d128:	e8 b1 e7 00 00       	call   0x41b8de
40d12d:	83 c4 04             	add    $0x4,%esp
40d130:	85 c0                	test   %eax,%eax
40d132:	0f 84 fa 00 00 00    	je     0x40d232
40d138:	8d 70 23             	lea    0x23(%eax),%esi
40d13b:	83 e6 e0             	and    $0xffffffe0,%esi
40d13e:	89 46 fc             	mov    %eax,-0x4(%esi)
40d141:	eb 16                	jmp    0x40d159
40d143:	85 c0                	test   %eax,%eax
40d145:	74 0d                	je     0x40d154
40d147:	50                   	push   %eax
40d148:	e8 91 e7 00 00       	call   0x41b8de
40d14d:	83 c4 04             	add    $0x4,%esp
40d150:	8b f0                	mov    %eax,%esi
40d152:	eb 02                	jmp    0x40d156
40d154:	33 f6                	xor    %esi,%esi
40d156:	89 5d ec             	mov    %ebx,-0x14(%ebp)
40d159:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d15c:	ff 75 dc             	push   -0x24(%ebp)
40d15f:	89 75 e8             	mov    %esi,-0x18(%ebp)
40d162:	c7 45 fc 00 00 00 00 	movl   $0x0,-0x4(%ebp)
40d169:	8d 04 40             	lea    (%eax,%eax,2),%eax
40d16c:	8d 04 c6             	lea    (%esi,%eax,8),%eax
40d16f:	8d 58 18             	lea    0x18(%eax),%ebx
40d172:	89 45 e4             	mov    %eax,-0x1c(%ebp)
40d175:	8b c8                	mov    %eax,%ecx
40d177:	89 5d d0             	mov    %ebx,-0x30(%ebp)
40d17a:	e8 41 51 ff ff       	call   0x4022c0
40d17f:	8b 0f                	mov    (%edi),%ecx
40d181:	8b 57 04             	mov    0x4(%edi),%edx
40d184:	8b 45 e0             	mov    -0x20(%ebp),%eax
40d187:	51                   	push   %ecx
40d188:	56                   	push   %esi
40d189:	3b c2                	cmp    %edx,%eax
40d18b:	74 11                	je     0x40d19e
40d18d:	8b d0                	mov    %eax,%edx
40d18f:	e8 3c 05 00 00       	call   0x40d6d0
40d194:	8b 57 04             	mov    0x4(%edi),%edx
40d197:	83 c4 04             	add    $0x4,%esp
40d19a:	8b 4d e0             	mov    -0x20(%ebp),%ecx
40d19d:	53                   	push   %ebx
40d19e:	e8 2d 05 00 00       	call   0x40d6d0
40d1a3:	8b 0f                	mov    (%edi),%ecx
40d1a5:	83 c4 08             	add    $0x8,%esp
40d1a8:	85 c9                	test   %ecx,%ecx
40d1aa:	74 4e                	je     0x40d1fa
40d1ac:	8b 57 04             	mov    0x4(%edi),%edx
40d1af:	51                   	push   %ecx
40d1b0:	e8 0b f1 ff ff       	call   0x40c2c0
40d1b5:	8b 4f 08             	mov    0x8(%edi),%ecx
40d1b8:	b8 ab aa aa 2a       	mov    $0x2aaaaaab,%eax
40d1bd:	8b 1f                	mov    (%edi),%ebx
40d1bf:	83 c4 04             	add    $0x4,%esp
40d1c2:	2b cb                	sub    %ebx,%ecx
40d1c4:	f7 e9                	imul   %ecx
40d1c6:	c1 fa 02             	sar    $0x2,%edx
40d1c9:	8b c2                	mov    %edx,%eax
40d1cb:	c1 e8 1f             	shr    $0x1f,%eax
40d1ce:	03 c2                	add    %edx,%eax
40d1d0:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40d1d3:	c1 e1 03             	shl    $0x3,%ecx
40d1d6:	81 f9 00 10 00 00    	cmp    $0x1000,%ecx
40d1dc:	72 12                	jb     0x40d1f0
40d1de:	8b 53 fc             	mov    -0x4(%ebx),%edx
40d1e1:	83 c1 23             	add    $0x23,%ecx
40d1e4:	2b da                	sub    %edx,%ebx
40d1e6:	8d 43 fc             	lea    -0x4(%ebx),%eax
40d1e9:	83 f8 1f             	cmp    $0x1f,%eax
40d1ec:	77 44                	ja     0x40d232
40d1ee:	8b da                	mov    %edx,%ebx
40d1f0:	51                   	push   %ecx
40d1f1:	53                   	push   %ebx
40d1f2:	e8 17 e7 00 00       	call   0x41b90e
40d1f7:	83 c4 08             	add    $0x8,%esp
40d1fa:	8b 45 d8             	mov    -0x28(%ebp),%eax
40d1fd:	40                   	inc    %eax
40d1fe:	89 37                	mov    %esi,(%edi)
40d200:	8d 0c 40             	lea    (%eax,%eax,2),%ecx
40d203:	8b 45 e4             	mov    -0x1c(%ebp),%eax
40d206:	8d 0c ce             	lea    (%esi,%ecx,8),%ecx
40d209:	89 4f 04             	mov    %ecx,0x4(%edi)
40d20c:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40d20f:	03 ce                	add    %esi,%ecx
40d211:	89 4f 08             	mov    %ecx,0x8(%edi)
40d214:	8b 4d f4             	mov    -0xc(%ebp),%ecx
40d217:	64 89 0d 00 00 00 00 	mov    %ecx,%fs:0x0
40d21e:	59                   	pop    %ecx
40d21f:	5f                   	pop    %edi
40d220:	5e                   	pop    %esi
40d221:	5b                   	pop    %ebx
40d222:	8b e5                	mov    %ebp,%esp
40d224:	5d                   	pop    %ebp
40d225:	c2 08 00             	ret    $0x8
40d228:	e8 d3 3f ff ff       	call   0x401200
40d22d:	e8 9e 69 ff ff       	call   0x403bd0
40d232:	e8 48 38 01 00       	call   0x420a7f
40d237:	51                   	push   %ecx
40d238:	8b 4d d0             	mov    -0x30(%ebp),%ecx
40d23b:	8b d1                	mov    %ecx,%edx
40d23d:	e8 7e f0 ff ff       	call   0x40c2c0
40d242:	83 c4 04             	add    $0x4,%esp
40d245:	ff 75 ec             	push   -0x14(%ebp)
40d248:	ff 75 e8             	push   -0x18(%ebp)
40d24b:	e8 80 e4 ff ff       	call   0x40b6d0
40d250:	6a 00                	push   $0x0
40d252:	6a 00                	push   $0x0
40d254:	e8 85 01 01 00       	call   0x41d3de
40d259:	cc                   	int3
40d25a:	cc                   	int3
40d25b:	cc                   	int3
40d25c:	cc                   	int3
40d25d:	cc                   	int3
40d25e:	cc                   	int3
40d25f:	cc                   	int3
40d260:	55                   	push   %ebp
40d261:	8b ec                	mov    %esp,%ebp
40d263:	51                   	push   %ecx
40d264:	8b 45 08             	mov    0x8(%ebp),%eax
40d267:	53                   	push   %ebx
40d268:	56                   	push   %esi
40d269:	8b 75 0c             	mov    0xc(%ebp),%esi
40d26c:	8b d9                	mov    %ecx,%ebx
40d26e:	89 45 fc             	mov    %eax,-0x4(%ebp)
40d271:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40d275:	75 2d                	jne    0x40d2a4
40d277:	57                   	push   %edi
40d278:	ff 76 08             	push   0x8(%esi)
40d27b:	8b cb                	mov    %ebx,%ecx
40d27d:	50                   	push   %eax
40d27e:	e8 dd ff ff ff       	call   0x40d260
40d283:	8b fe                	mov    %esi,%edi
40d285:	8b 36                	mov    (%esi),%esi
40d287:	8d 4f 10             	lea    0x10(%edi),%ecx
40d28a:	e8 b1 0b 00 00       	call   0x40de40
40d28f:	6a 40                	push   $0x40
40d291:	57                   	push   %edi
40d292:	e8 77 e6 00 00       	call   0x41b90e
40d297:	8b 45 fc             	mov    -0x4(%ebp),%eax
40d29a:	83 c4 08             	add    $0x8,%esp
40d29d:	80 7e 0d 00          	cmpb   $0x0,0xd(%esi)
40d2a1:	74 d5                	je     0x40d278
40d2a3:	5f                   	pop    %edi
40d2a4:	5e                   	pop    %esi
40d2a5:	5b                   	pop    %ebx
40d2a6:	8b e5                	mov    %ebp,%esp
40d2a8:	5d                   	pop    %ebp
40d2a9:	c2 08 00             	ret    $0x8
40d2ac:	cc                   	int3
40d2ad:	cc                   	int3
40d2ae:	cc                   	int3
40d2af:	cc                   	int3
40d2b0:	55                   	push   %ebp
40d2b1:	8b ec                	mov    %esp,%ebp
40d2b3:	83 ec 10             	sub    $0x10,%esp
40d2b6:	8b 45 14             	mov    0x14(%ebp),%eax
40d2b9:	8b 55 08             	mov    0x8(%ebp),%edx
40d2bc:	53                   	push   %ebx
40d2bd:	8b d9                	mov    %ecx,%ebx
40d2bf:	89 45 f0             	mov    %eax,-0x10(%ebp)
40d2c2:	b9 fe ff ff 7f       	mov    $0x7ffffffe,%ecx
40d2c7:	56                   	push   %esi
40d2c8:	8b c1                	mov    %ecx,%eax