404f5a:	7d 19                	jge    0x404f75
404f5c:	56                   	push   %esi
404f5d:	be c0 d7 41 00       	mov    $0x41d7c0,%esi
404f62:	56                   	push   %esi
404f63:	e8 a5 fe ff ff       	call   0x404e0d
404f68:	83 c6 18             	add    $0x18,%esi
404f6b:	81 fe 20 d8 41 00    	cmp    $0x41d820,%esi
404f71:	59                   	pop    %ecx
404f72:	7c ee                	jl     0x404f62
404f74:	5e                   	pop    %esi
404f75:	c3                   	ret
404f76:	8b 44 24 04          	mov    0x4(%esp),%eax
404f7a:	83 e0 03             	and    $0x3,%eax
404f7d:	56                   	push   %esi
404f7e:	8b f1                	mov    %ecx,%esi
404f80:	89 06                	mov    %eax,(%esi)
404f82:	6b c0 18             	imul   $0x18,%eax,%eax
404f85:	05 c0 d7 41 00       	add    $0x41d7c0,%eax
404f8a:	50                   	push   %eax
404f8b:	e8 88 fe ff ff       	call   0x404e18
404f90:	59                   	pop    %ecx
404f91:	8b c6                	mov    %esi,%eax
404f93:	5e                   	pop    %esi
404f94:	c2 04 00             	ret    $0x4
404f97:	8b 01                	mov    (%ecx),%eax
404f99:	6b c0 18             	imul   $0x18,%eax,%eax
404f9c:	05 c0 d7 41 00       	add    $0x41d7c0,%eax
404fa1:	50                   	push   %eax
404fa2:	e8 7c fe ff ff       	call   0x404e23
404fa7:	59                   	pop    %ecx
404fa8:	c3                   	ret
404fa9:	8b 49 04             	mov    0x4(%ecx),%ecx
404fac:	e8 95 e5 ff ff       	call   0x403546
404fb1:	85 c0                	test   %eax,%eax
404fb3:	74 08                	je     0x404fbd
404fb5:	8b 10                	mov    (%eax),%edx
404fb7:	6a 01                	push   $0x1
404fb9:	8b c8                	mov    %eax,%ecx
404fbb:	ff 12                	call   *(%edx)
404fbd:	c3                   	ret
404fbe:	8b 44 24 04          	mov    0x4(%esp),%eax
404fc2:	8b 08                	mov    (%eax),%ecx
404fc4:	85 c9                	test   %ecx,%ecx
404fc6:	74 11                	je     0x404fd9
404fc8:	e8 79 e5 ff ff       	call   0x403546
404fcd:	85 c0                	test   %eax,%eax
404fcf:	74 08                	je     0x404fd9
404fd1:	8b 10                	mov    (%eax),%edx
404fd3:	6a 01                	push   $0x1
404fd5:	8b c8                	mov    %eax,%ecx
404fd7:	ff 12                	call   *(%edx)
404fd9:	c3                   	ret
404fda:	55                   	push   %ebp
404fdb:	8b ec                	mov    %esp,%ebp
404fdd:	51                   	push   %ecx
404fde:	6a 00                	push   $0x0
404fe0:	8d 4d fc             	lea    -0x4(%ebp),%ecx
404fe3:	e8 8e ff ff ff       	call   0x404f76
404fe8:	68 28 d8 41 00       	push   $0x41d828
404fed:	e8 cc ff ff ff       	call   0x404fbe
404ff2:	83 25 28 d8 41 00 00 	andl   $0x0,0x41d828
404ff9:	59                   	pop    %ecx
404ffa:	8d 4d fc             	lea    -0x4(%ebp),%ecx
404ffd:	e8 95 ff ff ff       	call   0x404f97
405002:	c9                   	leave
405003:	c3                   	ret
405004:	a1 28 d8 41 00       	mov    0x41d828,%eax
405009:	c3                   	ret
40500a:	80 3d 4c d8 41 00 00 	cmpb   $0x0,0x41d84c
405011:	75 12                	jne    0x405025
405013:	68 da 4f 40 00       	push   $0x404fda
405018:	c6 05 4c d8 41 00 01 	movb   $0x1,0x41d84c
40501f:	e8 86 03 00 00       	call   0x4053aa
405024:	59                   	pop    %ecx
405025:	8b 44 24 04          	mov    0x4(%esp),%eax
405029:	a3 28 d8 41 00       	mov    %eax,0x41d828
40502e:	c3                   	ret
40502f:	6a 04                	push   $0x4
405031:	b8 dd 5e 41 00       	mov    $0x415edd,%eax
405036:	e8 b0 17 00 00       	call   0x4067eb
40503b:	6a 00                	push   $0x0
40503d:	8d 4d f0             	lea    -0x10(%ebp),%ecx
405040:	e8 31 ff ff ff       	call   0x404f76
405045:	8b 7d 08             	mov    0x8(%ebp),%edi
405048:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40504c:	8b 77 0c             	mov    0xc(%edi),%esi
40504f:	eb 1f                	jmp    0x405070
405051:	8b 47 08             	mov    0x8(%edi),%eax
405054:	4e                   	dec    %esi
405055:	8d 04 b0             	lea    (%eax,%esi,4),%eax
405058:	83 38 00             	cmpl   $0x0,(%eax)
40505b:	74 13                	je     0x405070
40505d:	8b 08                	mov    (%eax),%ecx
40505f:	e8 e2 e4 ff ff       	call   0x403546
405064:	85 c0                	test   %eax,%eax
405066:	74 08                	je     0x405070
405068:	8b 10                	mov    (%eax),%edx
40506a:	6a 01                	push   $0x1
40506c:	8b c8                	mov    %eax,%ecx
40506e:	ff 12                	call   *(%edx)
405070:	85 f6                	test   %esi,%esi
405072:	77 dd                	ja     0x405051
405074:	ff 77 08             	push   0x8(%edi)
405077:	e8 d7 13 00 00       	call   0x406453
40507c:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
405080:	59                   	pop    %ecx
405081:	8d 4d f0             	lea    -0x10(%ebp),%ecx
405084:	e8 0e ff ff ff       	call   0x404f97
405089:	e8 fc 17 00 00       	call   0x40688a
40508e:	c3                   	ret
40508f:	55                   	push   %ebp
405090:	8b ec                	mov    %esp,%ebp
405092:	51                   	push   %ecx
405093:	6a 00                	push   $0x0
405095:	8d 4d fc             	lea    -0x4(%ebp),%ecx
405098:	e8 d9 fe ff ff       	call   0x404f76
40509d:	a1 24 d8 41 00       	mov    0x41d824,%eax
4050a2:	85 c0                	test   %eax,%eax
4050a4:	74 22                	je     0x4050c8
4050a6:	56                   	push   %esi
4050a7:	8b f0                	mov    %eax,%esi
4050a9:	8b 00                	mov    (%eax),%eax
4050ab:	8b ce                	mov    %esi,%ecx
4050ad:	a3 24 d8 41 00       	mov    %eax,0x41d824
4050b2:	e8 f2 fe ff ff       	call   0x404fa9
4050b7:	56                   	push   %esi
4050b8:	e8 72 09 00 00       	call   0x405a2f
4050bd:	a1 24 d8 41 00       	mov    0x41d824,%eax
4050c2:	85 c0                	test   %eax,%eax
4050c4:	59                   	pop    %ecx
4050c5:	75 e0                	jne    0x4050a7
4050c7:	5e                   	pop    %esi
4050c8:	8d 4d fc             	lea    -0x4(%ebp),%ecx
4050cb:	e8 c7 fe ff ff       	call   0x404f97
4050d0:	c9                   	leave
4050d1:	c3                   	ret
4050d2:	83 3d 24 d8 41 00 00 	cmpl   $0x0,0x41d824
4050d9:	75 0b                	jne    0x4050e6
4050db:	68 8f 50 40 00       	push   $0x40508f
4050e0:	e8 c5 02 00 00       	call   0x4053aa
4050e5:	59                   	pop    %ecx
4050e6:	6a 08                	push   $0x8
4050e8:	e8 eb 0e 00 00       	call   0x405fd8
4050ed:	85 c0                	test   %eax,%eax
4050ef:	59                   	pop    %ecx
4050f0:	74 11                	je     0x405103
4050f2:	8b 0d 24 d8 41 00    	mov    0x41d824,%ecx
4050f8:	89 08                	mov    %ecx,(%eax)
4050fa:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4050fe:	89 48 04             	mov    %ecx,0x4(%eax)
405101:	eb 02                	jmp    0x405105
405103:	33 c0                	xor    %eax,%eax
405105:	a3 24 d8 41 00       	mov    %eax,0x41d824
40510a:	c3                   	ret
40510b:	8b 44 24 04          	mov    0x4(%esp),%eax
40510f:	83 78 50 00          	cmpl   $0x0,0x50(%eax)
405113:	76 18                	jbe    0x40512d
405115:	83 78 54 10          	cmpl   $0x10,0x54(%eax)
405119:	72 05                	jb     0x405120
40511b:	8b 40 40             	mov    0x40(%eax),%eax
40511e:	eb 03                	jmp    0x405123
405120:	83 c0 40             	add    $0x40,%eax
405123:	50                   	push   %eax
405124:	6a 00                	push   $0x0
405126:	e8 f4 51 00 00       	call   0x40a31f
40512b:	59                   	pop    %ecx
40512c:	59                   	pop    %ecx
40512d:	c3                   	ret
40512e:	6a 04                	push   $0x4
405130:	b8 00 5f 41 00       	mov    $0x415f00,%eax
405135:	e8 b1 16 00 00       	call   0x4067eb
40513a:	8b f1                	mov    %ecx,%esi
40513c:	89 75 f0             	mov    %esi,-0x10(%ebp)
40513f:	c7 46 04 01 00 00 00 	movl   $0x1,0x4(%esi)
405146:	33 c0                	xor    %eax,%eax
405148:	89 45 fc             	mov    %eax,-0x4(%ebp)
40514b:	89 46 08             	mov    %eax,0x8(%esi)
40514e:	89 46 0c             	mov    %eax,0xc(%esi)
405151:	89 46 10             	mov    %eax,0x10(%esi)
405154:	8a 45 08             	mov    0x8(%ebp),%al
405157:	68 0c 76 41 00       	push   $0x41760c
40515c:	8d 4e 18             	lea    0x18(%esi),%ecx
40515f:	c7 06 08 76 41 00    	movl   $0x417608,(%esi)
405165:	88 46 14             	mov    %al,0x14(%esi)
405168:	e8 b3 d2 ff ff       	call   0x402420
40516d:	8b c6                	mov    %esi,%eax
40516f:	e8 16 17 00 00       	call   0x40688a
405174:	c2 04 00             	ret    $0x4
405177:	6a 04                	push   $0x4
405179:	b8 2e 5f 41 00       	mov    $0x415f2e,%eax
40517e:	e8 68 16 00 00       	call   0x4067eb
405183:	8b f1                	mov    %ecx,%esi
405185:	89 75 f0             	mov    %esi,-0x10(%ebp)
405188:	c7 06 08 76 41 00    	movl   $0x417608,(%esi)
40518e:	56                   	push   %esi
40518f:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
405196:	e8 94 fe ff ff       	call   0x40502f
40519b:	59                   	pop    %ecx
40519c:	6a 00                	push   $0x0
40519e:	6a 01                	push   $0x1
4051a0:	8d 4e 18             	lea    0x18(%esi),%ecx
4051a3:	e8 38 cc ff ff       	call   0x401de0
4051a8:	c7 06 e4 74 41 00    	movl   $0x4174e4,(%esi)
4051ae:	e8 d7 16 00 00       	call   0x40688a
4051b3:	c3                   	ret
4051b4:	56                   	push   %esi
4051b5:	8b f1                	mov    %ecx,%esi
4051b7:	e8 bb ff ff ff       	call   0x405177
4051bc:	f6 44 24 08 01       	testb  $0x1,0x8(%esp)
4051c1:	74 07                	je     0x4051ca
4051c3:	56                   	push   %esi
4051c4:	e8 66 08 00 00       	call   0x405a2f
4051c9:	59                   	pop    %ecx
4051ca:	8b c6                	mov    %esi,%eax
4051cc:	5e                   	pop    %esi
4051cd:	c2 04 00             	ret    $0x4
4051d0:	6a 08                	push   $0x8
4051d2:	b8 5b 5f 41 00       	mov    $0x415f5b,%eax
4051d7:	e8 0f 16 00 00       	call   0x4067eb
4051dc:	a1 28 d8 41 00       	mov    0x41d828,%eax
4051e1:	85 c0                	test   %eax,%eax
4051e3:	8b f0                	mov    %eax,%esi
4051e5:	75 7b                	jne    0x405262
4051e7:	50                   	push   %eax
4051e8:	8d 4d f0             	lea    -0x10(%ebp),%ecx
4051eb:	e8 86 fd ff ff       	call   0x404f76
4051f0:	a1 28 d8 41 00       	mov    0x41d828,%eax
4051f5:	21 75 fc             	and    %esi,-0x4(%ebp)
4051f8:	85 c0                	test   %eax,%eax
4051fa:	8b f0                	mov    %eax,%esi
4051fc:	75 58                	jne    0x405256
4051fe:	6a 34                	push   $0x34
405200:	e8 d3 0d 00 00       	call   0x405fd8
405205:	59                   	pop    %ecx
405206:	8b c8                	mov    %eax,%ecx
405208:	89 4d ec             	mov    %ecx,-0x14(%ebp)
40520b:	85 c9                	test   %ecx,%ecx
40520d:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
405211:	74 0a                	je     0x40521d
405213:	56                   	push   %esi
405214:	e8 15 ff ff ff       	call   0x40512e
405219:	8b f0                	mov    %eax,%esi
40521b:	eb 02                	jmp    0x40521f
40521d:	33 f6                	xor    %esi,%esi
40521f:	56                   	push   %esi
405220:	c6 45 fc 00          	movb   $0x0,-0x4(%ebp)
405224:	e8 e1 fd ff ff       	call   0x40500a
405229:	8d 4e 18             	lea    0x18(%esi),%ecx
40522c:	c7 46 10 3f 00 00 00 	movl   $0x3f,0x10(%esi)
405233:	c7 04 24 ac 75 41 00 	movl   $0x4175ac,(%esp)
40523a:	e8 f1 d0 ff ff       	call   0x402330
40523f:	8b ce                	mov    %esi,%ecx
405241:	89 35 2c d8 41 00    	mov    %esi,0x41d82c
405247:	e8 d2 e2 ff ff       	call   0x40351e
40524c:	a1 2c d8 41 00       	mov    0x41d82c,%eax
405251:	a3 44 d8 41 00       	mov    %eax,0x41d844
405256:	83 4d fc ff          	orl    $0xffffffff,-0x4(%ebp)
40525a:	8d 4d f0             	lea    -0x10(%ebp),%ecx
40525d:	e8 35 fd ff ff       	call   0x404f97
405262:	8b c6                	mov    %esi,%eax
405264:	e8 21 16 00 00       	call   0x40688a
405269:	c3                   	ret
40526a:	6a 00                	push   $0x0
40526c:	6a 00                	push   $0x0
40526e:	e8 ac 50 00 00       	call   0x40a31f
405273:	85 c0                	test   %eax,%eax
405275:	59                   	pop    %ecx
405276:	59                   	pop    %ecx
405277:	75 05                	jne    0x40527e
405279:	b8 0e 76 41 00       	mov    $0x41760e,%eax
40527e:	56                   	push   %esi
40527f:	8b 74 24 08          	mov    0x8(%esp),%esi
405283:	50                   	push   %eax
405284:	8d 4e 3c             	lea    0x3c(%esi),%ecx
405287:	e8 a4 d0 ff ff       	call   0x402330
40528c:	83 7c 24 0c 00       	cmpl   $0x0,0xc(%esp)
405291:	74 11                	je     0x4052a4
405293:	ff 74 24 0c          	push   0xc(%esp)
405297:	6a 00                	push   $0x0
405299:	e8 81 50 00 00       	call   0x40a31f
40529e:	85 c0                	test   %eax,%eax
4052a0:	59                   	pop    %ecx
4052a1:	59                   	pop    %ecx
4052a2:	75 05                	jne    0x4052a9
4052a4:	b8 0c 76 41 00       	mov    $0x41760c,%eax
4052a9:	50                   	push   %eax
4052aa:	8d 4e 58             	lea    0x58(%esi),%ecx
4052ad:	e8 7e d0 ff ff       	call   0x402330
4052b2:	5e                   	pop    %esi
4052b3:	c3                   	ret
4052b4:	56                   	push   %esi
4052b5:	57                   	push   %edi
4052b6:	8b f9                	mov    %ecx,%edi
4052b8:	8b 77 20             	mov    0x20(%edi),%esi
4052bb:	eb 10                	jmp    0x4052cd
4052bd:	ff 76 04             	push   0x4(%esi)
4052c0:	57                   	push   %edi
4052c1:	ff 74 24 14          	push   0x14(%esp)
4052c5:	ff 56 08             	call   *0x8(%esi)
4052c8:	8b 36                	mov    (%esi),%esi
4052ca:	83 c4 0c             	add    $0xc,%esp
4052cd:	85 f6                	test   %esi,%esi
4052cf:	75 ec                	jne    0x4052bd
4052d1:	5f                   	pop    %edi
4052d2:	5e                   	pop    %esi
4052d3:	c2 04 00             	ret    $0x4
4052d6:	56                   	push   %esi
4052d7:	8b 74 24 08          	mov    0x8(%esp),%esi
4052db:	57                   	push   %edi
4052dc:	6a 00                	push   $0x0
4052de:	8b ce                	mov    %esi,%ecx
4052e0:	e8 cf ff ff ff       	call   0x4052b4
4052e5:	8b 46 1c             	mov    0x1c(%esi),%eax
4052e8:	85 c0                	test   %eax,%eax
4052ea:	74 0f                	je     0x4052fb
4052ec:	8b 38                	mov    (%eax),%edi
4052ee:	50                   	push   %eax
4052ef:	e8 3b 07 00 00       	call   0x405a2f
4052f4:	85 ff                	test   %edi,%edi
4052f6:	59                   	pop    %ecx
4052f7:	8b c7                	mov    %edi,%eax
4052f9:	75 f1                	jne    0x4052ec
4052fb:	8b 46 20             	mov    0x20(%esi),%eax
4052fe:	83 66 1c 00          	andl   $0x0,0x1c(%esi)
405302:	85 c0                	test   %eax,%eax
405304:	74 0f                	je     0x405315
405306:	8b 38                	mov    (%eax),%edi
405308:	50                   	push   %eax
405309:	e8 21 07 00 00       	call   0x405a2f
40530e:	85 ff                	test   %edi,%edi
405310:	59                   	pop    %ecx
405311:	8b c7                	mov    %edi,%eax
405313:	75 f1                	jne    0x405306
405315:	83 66 20 00          	andl   $0x0,0x20(%esi)
405319:	5f                   	pop    %edi
40531a:	5e                   	pop    %esi
40531b:	c3                   	ret
40531c:	55                   	push   %ebp
40531d:	8b ec                	mov    %esp,%ebp
40531f:	51                   	push   %ecx
405320:	6a 02                	push   $0x2
405322:	8d 4d fc             	lea    -0x4(%ebp),%ecx
405325:	e8 4c fc ff ff       	call   0x404f76
40532a:	8b 45 08             	mov    0x8(%ebp),%eax
40532d:	c7 40 04 01 00 00 00 	movl   $0x1,0x4(%eax)
405334:	8b 48 04             	mov    0x4(%eax),%ecx
405337:	8b 0c 8d 5c d8 41 00 	mov    0x41d85c(,%ecx,4),%ecx
40533e:	85 c9                	test   %ecx,%ecx
405340:	74 0d                	je     0x40534f
405342:	3b c8                	cmp    %eax,%ecx