404ecc:	5f                   	pop    %edi
404ecd:	5b                   	pop    %ebx
404ece:	5e                   	pop    %esi
404ecf:	5d                   	pop    %ebp
404ed0:	c2 08 00             	ret    $0x8
404ed3:	55                   	push   %ebp
404ed4:	8b ec                	mov    %esp,%ebp
404ed6:	83 ec 5c             	sub    $0x5c,%esp
404ed9:	8b 45 08             	mov    0x8(%ebp),%eax
404edc:	53                   	push   %ebx
404edd:	56                   	push   %esi
404ede:	57                   	push   %edi
404edf:	8b d9                	mov    %ecx,%ebx
404ee1:	50                   	push   %eax
404ee2:	c7 45 d8 27 00 00 00 	movl   $0x27,-0x28(%ebp)
404ee9:	89 45 e8             	mov    %eax,-0x18(%ebp)
404eec:	e8 5d 41 00 00       	call   0x40904e
404ef1:	89 45 ec             	mov    %eax,-0x14(%ebp)
404ef4:	8b 45 10             	mov    0x10(%ebp),%eax
404ef7:	89 45 f0             	mov    %eax,-0x10(%ebp)
404efa:	89 45 f4             	mov    %eax,-0xc(%ebp)
404efd:	8b 45 14             	mov    0x14(%ebp),%eax
404f00:	59                   	pop    %ecx
404f01:	89 45 fc             	mov    %eax,-0x4(%ebp)
404f04:	8b 45 0c             	mov    0xc(%ebp),%eax
404f07:	6a 0a                	push   $0xa
404f09:	89 45 a4             	mov    %eax,-0x5c(%ebp)
404f0c:	59                   	pop    %ecx
404f0d:	8d 45 a4             	lea    -0x5c(%ebp),%eax
404f10:	50                   	push   %eax
404f11:	8d 75 d8             	lea    -0x28(%ebp),%esi
404f14:	8d 7d ac             	lea    -0x54(%ebp),%edi
404f17:	6a 00                	push   $0x0
404f19:	c7 45 a8 02 00 ff ff 	movl   $0xffff0002,-0x58(%ebp)
404f20:	68 00 11 00 00       	push   $0x1100
404f25:	ff 33                	push   (%ebx)
404f27:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
404f29:	8b 4b 3c             	mov    0x3c(%ebx),%ecx
404f2c:	e8 c1 32 00 00       	call   0x4081f2
404f31:	8b 4d 14             	mov    0x14(%ebp),%ecx
404f34:	3b 4b 34             	cmp    0x34(%ebx),%ecx
404f37:	75 07                	jne    0x404f40
404f39:	83 4b 34 ff          	orl    $0xffffffff,0x34(%ebx)
404f3d:	89 43 38             	mov    %eax,0x38(%ebx)
404f40:	5f                   	pop    %edi
404f41:	5e                   	pop    %esi
404f42:	5b                   	pop    %ebx
404f43:	c9                   	leave
404f44:	c2 10 00             	ret    $0x10
404f47:	55                   	push   %ebp
404f48:	8b ec                	mov    %esp,%ebp
404f4a:	81 ec 80 09 00 00    	sub    $0x980,%esp
404f50:	53                   	push   %ebx
404f51:	8b d9                	mov    %ecx,%ebx
404f53:	56                   	push   %esi
404f54:	57                   	push   %edi
404f55:	83 4b 34 ff          	orl    $0xffffffff,0x34(%ebx)
404f59:	33 ff                	xor    %edi,%edi
404f5b:	83 7d 08 fe          	cmpl   $0xfffffffe,0x8(%ebp)
404f5f:	89 7b 38             	mov    %edi,0x38(%ebx)
404f62:	0f 85 08 02 00 00    	jne    0x405170
404f68:	8b 43 30             	mov    0x30(%ebx),%eax
404f6b:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
404f71:	57                   	push   %edi
404f72:	6a 09                	push   $0x9
404f74:	68 0a 11 00 00       	push   $0x110a
404f79:	89 45 08             	mov    %eax,0x8(%ebp)
404f7c:	ff 33                	push   (%ebx)
404f7e:	ff d6                	call   *%esi
404f80:	8b f8                	mov    %eax,%edi
404f82:	85 ff                	test   %edi,%edi
404f84:	74 37                	je     0x404fbd
404f86:	8d 45 ac             	lea    -0x54(%ebp),%eax
404f89:	c7 45 ac 06 00 00 00 	movl   $0x6,-0x54(%ebp)
404f90:	50                   	push   %eax
404f91:	6a 00                	push   $0x0
404f93:	68 0c 11 00 00       	push   $0x110c
404f98:	89 7d b0             	mov    %edi,-0x50(%ebp)
404f9b:	ff 33                	push   (%ebx)
404f9d:	ff d6                	call   *%esi
404f9f:	85 c0                	test   %eax,%eax
404fa1:	74 1a                	je     0x404fbd
404fa3:	8b 45 c4             	mov    -0x3c(%ebp),%eax
404fa6:	3b 43 44             	cmp    0x44(%ebx),%eax
404fa9:	75 0c                	jne    0x404fb7
404fab:	57                   	push   %edi
404fac:	6a 03                	push   $0x3
404fae:	68 0a 11 00 00       	push   $0x110a
404fb3:	ff 33                	push   (%ebx)
404fb5:	eb c7                	jmp    0x404f7e
404fb7:	8b 45 d0             	mov    -0x30(%ebp),%eax
404fba:	89 43 34             	mov    %eax,0x34(%ebx)
404fbd:	33 ff                	xor    %edi,%edi
404fbf:	8b 4d 08             	mov    0x8(%ebp),%ecx
404fc2:	8d 85 84 fb ff ff    	lea    -0x47c(%ebp),%eax
404fc8:	89 45 f4             	mov    %eax,-0xc(%ebp)
404fcb:	8b 43 04             	mov    0x4(%ebx),%eax
404fce:	80 a5 84 fb ff ff 00 	andb   $0x0,-0x47c(%ebp)
404fd5:	89 45 fc             	mov    %eax,-0x4(%ebp)
404fd8:	8d 43 58             	lea    0x58(%ebx),%eax
404fdb:	51                   	push   %ecx
404fdc:	50                   	push   %eax
404fdd:	8b 43 3c             	mov    0x3c(%ebx),%eax
404fe0:	89 4b 30             	mov    %ecx,0x30(%ebx)
404fe3:	8b 88 e8 01 00 00    	mov    0x1e8(%eax),%ecx
404fe9:	e8 a8 1a 00 00       	call   0x406a96
404fee:	83 f8 01             	cmp    $0x1,%eax
404ff1:	0f 85 2a 06 00 00    	jne    0x405621
404ff7:	39 7b 58             	cmp    %edi,0x58(%ebx)
404ffa:	0f 84 21 06 00 00    	je     0x405621
405000:	57                   	push   %edi
405001:	57                   	push   %edi
405002:	6a 0b                	push   $0xb
405004:	ff 33                	push   (%ebx)
405006:	ff d6                	call   *%esi
405008:	8b 43 4c             	mov    0x4c(%ebx),%eax
40500b:	3b c7                	cmp    %edi,%eax
40500d:	74 0b                	je     0x40501a
40500f:	50                   	push   %eax
405010:	57                   	push   %edi
405011:	68 01 11 00 00       	push   $0x1101
405016:	ff 33                	push   (%ebx)
405018:	ff d6                	call   *%esi
40501a:	ff 73 58             	push   0x58(%ebx)
40501d:	57                   	push   %edi
40501e:	68 ff 0f 1f 00       	push   $0x1f0fff
405023:	ff 15 0c a1 40 00    	call   *0x40a10c
405029:	3b c7                	cmp    %edi,%eax
40502b:	89 45 08             	mov    %eax,0x8(%ebp)
40502e:	74 5e                	je     0x40508e
405030:	8d 8d 84 fb ff ff    	lea    -0x47c(%ebp),%ecx
405036:	51                   	push   %ecx
405037:	50                   	push   %eax
405038:	e8 e2 3b 00 00       	call   0x408c1f
40503d:	59                   	pop    %ecx
40503e:	84 c0                	test   %al,%al
405040:	59                   	pop    %ecx
405041:	74 4b                	je     0x40508e
405043:	8d 85 84 fb ff ff    	lea    -0x47c(%ebp),%eax
405049:	50                   	push   %eax
40504a:	e8 cf 39 00 00       	call   0x408a1e
40504f:	59                   	pop    %ecx
405050:	89 45 f4             	mov    %eax,-0xc(%ebp)
405053:	8d 4d e8             	lea    -0x18(%ebp),%ecx
405056:	6a 01                	push   $0x1
405058:	51                   	push   %ecx
405059:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40505c:	51                   	push   %ecx
40505d:	57                   	push   %edi
40505e:	50                   	push   %eax
40505f:	ff 15 cc a1 40 00    	call   *0x40a1cc
405065:	85 c0                	test   %eax,%eax
405067:	74 25                	je     0x40508e
405069:	8b 45 e8             	mov    -0x18(%ebp),%eax
40506c:	3b c7                	cmp    %edi,%eax
40506e:	75 03                	jne    0x405073
405070:	8b 45 ec             	mov    -0x14(%ebp),%eax
405073:	50                   	push   %eax
405074:	ff 73 08             	push   0x8(%ebx)
405077:	ff 73 40             	push   0x40(%ebx)
40507a:	ff 15 40 a0 40 00    	call   *0x40a040
405080:	83 f8 ff             	cmp    $0xffffffff,%eax
405083:	89 45 fc             	mov    %eax,-0x4(%ebp)
405086:	75 06                	jne    0x40508e
405088:	8b 43 04             	mov    0x4(%ebx),%eax
40508b:	89 45 fc             	mov    %eax,-0x4(%ebp)
40508e:	8d 43 60             	lea    0x60(%ebx),%eax
405091:	50                   	push   %eax
405092:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
405098:	50                   	push   %eax
405099:	e8 aa 3f 00 00       	call   0x409048
40509e:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4050a4:	50                   	push   %eax
4050a5:	e8 a4 3f 00 00       	call   0x40904e
4050aa:	8b f0                	mov    %eax,%esi
4050ac:	68 a8 ca 40 00       	push   $0x40caa8
4050b1:	8d 84 35 90 fe ff ff 	lea    -0x170(%ebp,%esi,1),%eax
4050b8:	50                   	push   %eax
4050b9:	e8 8a 3f 00 00       	call   0x409048
4050be:	83 c6 0e             	add    $0xe,%esi
4050c1:	b8 04 01 00 00       	mov    $0x104,%eax
4050c6:	83 c4 14             	add    $0x14,%esp
4050c9:	2b c6                	sub    %esi,%eax
4050cb:	50                   	push   %eax
4050cc:	8d 84 35 90 fe ff ff 	lea    -0x170(%ebp,%esi,1),%eax
4050d3:	50                   	push   %eax
4050d4:	57                   	push   %edi
4050d5:	57                   	push   %edi
4050d6:	6a 08                	push   $0x8
4050d8:	68 00 04 00 00       	push   $0x400
4050dd:	ff 15 f4 a0 40 00    	call   *0x40a0f4
4050e3:	6a 01                	push   $0x1
4050e5:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4050eb:	ff 75 fc             	push   -0x4(%ebp)
4050ee:	8b cb                	mov    %ebx,%ecx
4050f0:	68 00 00 ff ff       	push   $0xffff0000
4050f5:	50                   	push   %eax
4050f6:	e8 d8 fd ff ff       	call   0x404ed3
4050fb:	89 43 4c             	mov    %eax,0x4c(%ebx)
4050fe:	8b 43 3c             	mov    0x3c(%ebx),%eax
405101:	83 b8 e0 01 00 00 01 	cmpl   $0x1,0x1e0(%eax)
405108:	0f 85 db 00 00 00    	jne    0x4051e9
40510e:	8b 83 78 02 00 00    	mov    0x278(%ebx),%eax
405114:	8b 8b 7c 02 00 00    	mov    0x27c(%ebx),%ecx
40511a:	8b 35 58 a1 40 00    	mov    0x40a158,%esi
405120:	3b c7                	cmp    %edi,%eax
405122:	89 45 f8             	mov    %eax,-0x8(%ebp)
405125:	89 4d fc             	mov    %ecx,-0x4(%ebp)
405128:	74 51                	je     0x40517b
40512a:	8d 45 94             	lea    -0x6c(%ebp),%eax
40512d:	50                   	push   %eax
40512e:	8d 45 f8             	lea    -0x8(%ebp),%eax
405131:	50                   	push   %eax
405132:	ff 15 78 a0 40 00    	call   *0x40a078
405138:	8d 45 d8             	lea    -0x28(%ebp),%eax
40513b:	50                   	push   %eax
40513c:	8d 45 94             	lea    -0x6c(%ebp),%eax
40513f:	50                   	push   %eax
405140:	57                   	push   %edi
405141:	ff 15 74 a0 40 00    	call   *0x40a074
405147:	0f b7 45 da          	movzwl -0x26(%ebp),%eax
40514b:	50                   	push   %eax
40514c:	0f b7 45 de          	movzwl -0x22(%ebp),%eax
405150:	50                   	push   %eax
405151:	0f b7 45 e4          	movzwl -0x1c(%ebp),%eax
405155:	50                   	push   %eax
405156:	0f b7 45 e2          	movzwl -0x1e(%ebp),%eax
40515a:	50                   	push   %eax
40515b:	0f b7 45 e0          	movzwl -0x20(%ebp),%eax
40515f:	50                   	push   %eax
405160:	8d 45 a4             	lea    -0x5c(%ebp),%eax
405163:	68 8c ca 40 00       	push   $0x40ca8c
405168:	50                   	push   %eax
405169:	ff d6                	call   *%esi
40516b:	83 c4 1c             	add    $0x1c,%esp
40516e:	eb 1b                	jmp    0x40518b
405170:	8b 35 dc a2 40 00    	mov    0x40a2dc,%esi
405176:	e9 44 fe ff ff       	jmp    0x404fbf
40517b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40517e:	68 88 ca 40 00       	push   $0x40ca88
405183:	50                   	push   %eax
405184:	e8 bf 3e 00 00       	call   0x409048
405189:	59                   	pop    %ecx
40518a:	59                   	pop    %ecx
40518b:	8d 45 a4             	lea    -0x5c(%ebp),%eax
40518e:	dd 83 70 02 00 00    	fldl   0x270(%ebx)
405194:	50                   	push   %eax
405195:	8d 83 64 01 00 00    	lea    0x164(%ebx),%eax
40519b:	ff b3 68 02 00 00    	push   0x268(%ebx)
4051a1:	51                   	push   %ecx
4051a2:	51                   	push   %ecx
4051a3:	dd 1c 24             	fstpl  (%esp)
4051a6:	ff 73 58             	push   0x58(%ebx)
4051a9:	50                   	push   %eax
4051aa:	68 f0 d4 40 00       	push   $0x40d4f0
4051af:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4051b5:	68 38 ca 40 00       	push   $0x40ca38
4051ba:	50                   	push   %eax
4051bb:	ff d6                	call   *%esi
4051bd:	83 c4 24             	add    $0x24,%esp
4051c0:	8d 45 f0             	lea    -0x10(%ebp),%eax
4051c3:	57                   	push   %edi
4051c4:	50                   	push   %eax
4051c5:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4051cb:	50                   	push   %eax
4051cc:	e8 7d 3e 00 00       	call   0x40904e
4051d1:	59                   	pop    %ecx
4051d2:	50                   	push   %eax
4051d3:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
4051d9:	50                   	push   %eax
4051da:	8b 43 3c             	mov    0x3c(%ebx),%eax
4051dd:	ff b0 e4 01 00 00    	push   0x1e4(%eax)
4051e3:	ff 15 70 a0 40 00    	call   *0x40a070
4051e9:	53                   	push   %ebx
4051ea:	68 38 44 40 00       	push   $0x404438
4051ef:	ff 15 38 a2 40 00    	call   *0x40a238
4051f5:	8b 45 f4             	mov    -0xc(%ebp),%eax
4051f8:	80 38 00             	cmpb   $0x0,(%eax)
4051fb:	74 10                	je     0x40520d
4051fd:	6a 04                	push   $0x4
4051ff:	8b cb                	mov    %ebx,%ecx
405201:	ff 73 28             	push   0x28(%ebx)
405204:	ff 73 4c             	push   0x4c(%ebx)
405207:	50                   	push   %eax
405208:	e8 c6 fc ff ff       	call   0x404ed3
40520d:	39 7d 08             	cmp    %edi,0x8(%ebp)
405210:	0f 84 ae 00 00 00    	je     0x4052c4
405216:	8d 45 f0             	lea    -0x10(%ebp),%eax
405219:	50                   	push   %eax
40521a:	57                   	push   %edi
40521b:	57                   	push   %edi
40521c:	ff 35 6c a0 40 00    	push   0x40a06c
405222:	57                   	push   %edi
405223:	57                   	push   %edi
405224:	ff 75 08             	push   0x8(%ebp)
405227:	ff 15 68 a0 40 00    	call   *0x40a068
40522d:	8b f0                	mov    %eax,%esi
40522f:	3b f7                	cmp    %edi,%esi
405231:	0f 84 84 00 00 00    	je     0x4052bb
405237:	68 c8 00 00 00       	push   $0xc8
40523c:	56                   	push   %esi
40523d:	ff 15 14 a1 40 00    	call   *0x40a114
405243:	85 c0                	test   %eax,%eax
405245:	75 6d                	jne    0x4052b4
405247:	8d 45 fc             	lea    -0x4(%ebp),%eax
40524a:	50                   	push   %eax
40524b:	56                   	push   %esi
40524c:	ff 15 64 a0 40 00    	call   *0x40a064
405252:	39 7d fc             	cmp    %edi,-0x4(%ebp)
405255:	74 5d                	je     0x4052b4
405257:	8d 45 f0             	lea    -0x10(%ebp),%eax
40525a:	50                   	push   %eax
40525b:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
405261:	68 f6 00 00 00       	push   $0xf6
405266:	50                   	push   %eax
405267:	ff 75 fc             	push   -0x4(%ebp)
40526a:	ff 75 08             	push   0x8(%ebp)
40526d:	ff 15 60 a0 40 00    	call   *0x40a060
405273:	85 c0                	test   %eax,%eax
405275:	74 3d                	je     0x4052b4
405277:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
40527d:	68 28 ca 40 00       	push   $0x40ca28
405282:	50                   	push   %eax
405283:	e8 c0 3d 00 00       	call   0x409048
405288:	8d 85 90 fe ff ff    	lea    -0x170(%ebp),%eax
40528e:	50                   	push   %eax
40528f:	8d 85 99 fd ff ff    	lea    -0x267(%ebp),%eax
405295:	50                   	push   %eax
405296:	e8 ad 3d 00 00       	call   0x409048
40529b:	83 c4 10             	add    $0x10,%esp
40529e:	8d 85 8c fd ff ff    	lea    -0x274(%ebp),%eax
4052a4:	8b cb                	mov    %ebx,%ecx
4052a6:	6a 03                	push   $0x3
4052a8:	ff 73 2c             	push   0x2c(%ebx)
4052ab:	ff 73 4c             	push   0x4c(%ebx)
4052ae:	50                   	push   %eax
4052af:	e8 1f fc ff ff       	call   0x404ed3
4052b4:	56                   	push   %esi
4052b5:	ff 15 dc a0 40 00    	call   *0x40a0dc
4052bb:	ff 75 08             	push   0x8(%ebp)
4052be:	ff 15 dc a0 40 00    	call   *0x40a0dc
4052c4:	8b 43 5c             	mov    0x5c(%ebx),%eax
4052c7:	3b c7                	cmp    %edi,%eax
4052c9:	76 6e                	jbe    0x405339
4052cb:	50                   	push   %eax
4052cc:	57                   	push   %edi
4052cd:	68 10 04 00 00       	push   $0x410
4052d2:	ff 15 0c a1 40 00    	call   *0x40a10c
4052d8:	8b f0                	mov    %eax,%esi
4052da:	3b f7                	cmp    %edi,%esi