401ff8:	51                   	push   %ecx
401ff9:	51                   	push   %ecx
401ffa:	8d 45 fc             	lea    -0x4(%ebp),%eax
401ffd:	50                   	push   %eax
401ffe:	6a 08                	push   $0x8
402000:	ff 75 08             	push   0x8(%ebp)
402003:	c7 45 f8 00 10 00 00 	movl   $0x1000,-0x8(%ebp)
40200a:	ff 15 14 40 40 00    	call   *0x404014
402010:	85 c0                	test   %eax,%eax
402012:	0f 84 92 00 00 00    	je     0x4020aa
402018:	53                   	push   %ebx
402019:	56                   	push   %esi
40201a:	57                   	push   %edi
40201b:	8b 3d 20 40 40 00    	mov    0x404020,%edi
402021:	8d 45 08             	lea    0x8(%ebp),%eax
402024:	50                   	push   %eax
402025:	33 f6                	xor    %esi,%esi
402027:	56                   	push   %esi
402028:	56                   	push   %esi
402029:	6a 19                	push   $0x19
40202b:	ff 75 fc             	push   -0x4(%ebp)
40202e:	ff d7                	call   *%edi
402030:	8b d8                	mov    %eax,%ebx
402032:	85 db                	test   %ebx,%ebx
402034:	75 42                	jne    0x402078
402036:	ff 15 48 40 40 00    	call   *0x404048
40203c:	83 f8 7a             	cmp    $0x7a,%eax
40203f:	75 21                	jne    0x402062
402041:	8b 75 08             	mov    0x8(%ebp),%esi
402044:	e8 7a 0a 00 00       	call   0x402ac3
402049:	8b f0                	mov    %eax,%esi
40204b:	85 f6                	test   %esi,%esi
40204d:	74 4f                	je     0x40209e
40204f:	8d 45 08             	lea    0x8(%ebp),%eax
402052:	50                   	push   %eax
402053:	ff 75 08             	push   0x8(%ebp)
402056:	56                   	push   %esi
402057:	6a 19                	push   $0x19
402059:	ff 75 fc             	push   -0x4(%ebp)
40205c:	ff d7                	call   *%edi
40205e:	8b d8                	mov    %eax,%ebx
402060:	eb 12                	jmp    0x402074
402062:	ff 15 48 40 40 00    	call   *0x404048
402068:	83 f8 57             	cmp    $0x57,%eax
40206b:	75 31                	jne    0x40209e
40206d:	c7 45 f8 00 20 00 00 	movl   $0x2000,-0x8(%ebp)
402074:	85 db                	test   %ebx,%ebx
402076:	74 1d                	je     0x402095
402078:	ff 36                	push   (%esi)
40207a:	ff 15 1c 40 40 00    	call   *0x40401c
402080:	8a 00                	mov    (%eax),%al
402082:	fe c8                	dec    %al
402084:	0f b6 c0             	movzbl %al,%eax
402087:	50                   	push   %eax
402088:	ff 36                	push   (%esi)
40208a:	ff 15 18 40 40 00    	call   *0x404018
402090:	8b 00                	mov    (%eax),%eax
402092:	89 45 f8             	mov    %eax,-0x8(%ebp)
402095:	85 f6                	test   %esi,%esi
402097:	74 05                	je     0x40209e
402099:	e8 74 0a 00 00       	call   0x402b12
40209e:	ff 75 fc             	push   -0x4(%ebp)
4020a1:	ff 15 4c 40 40 00    	call   *0x40404c
4020a7:	5f                   	pop    %edi
4020a8:	5e                   	pop    %esi
4020a9:	5b                   	pop    %ebx
4020aa:	8b 45 f8             	mov    -0x8(%ebp),%eax
4020ad:	c9                   	leave
4020ae:	c2 04 00             	ret    $0x4
4020b1:	55                   	push   %ebp
4020b2:	8b ec                	mov    %esp,%ebp
4020b4:	51                   	push   %ecx
4020b5:	53                   	push   %ebx
4020b6:	56                   	push   %esi
4020b7:	57                   	push   %edi
4020b8:	6a 10                	push   $0x10
4020ba:	58                   	pop    %eax
4020bb:	e8 16 10 00 00       	call   0x4030d6
4020c0:	8b c4                	mov    %esp,%eax
4020c2:	85 c0                	test   %eax,%eax
4020c4:	74 11                	je     0x4020d7
4020c6:	68 87 00 00 00       	push   $0x87
4020cb:	6a 0c                	push   $0xc
4020cd:	ba 54 56 40 00       	mov    $0x405654,%edx
4020d2:	e8 86 08 00 00       	call   0x40295d
4020d7:	50                   	push   %eax
4020d8:	ff 15 78 40 40 00    	call   *0x404078
4020de:	6a 24                	push   $0x24
4020e0:	89 45 fc             	mov    %eax,-0x4(%ebp)
4020e3:	58                   	pop    %eax
4020e4:	e8 ed 0f 00 00       	call   0x4030d6
4020e9:	8b f4                	mov    %esp,%esi
4020eb:	85 f6                	test   %esi,%esi
4020ed:	74 13                	je     0x402102
4020ef:	68 91 00 00 00       	push   $0x91
4020f4:	6a 21                	push   $0x21
4020f6:	8b c6                	mov    %esi,%eax
4020f8:	ba c4 59 40 00       	mov    $0x4059c4,%edx
4020fd:	e8 5b 08 00 00       	call   0x40295d
402102:	6a 24                	push   $0x24
402104:	58                   	pop    %eax
402105:	e8 cc 0f 00 00       	call   0x4030d6
40210a:	8b fc                	mov    %esp,%edi
40210c:	85 ff                	test   %edi,%edi
40210e:	74 13                	je     0x402123
402110:	68 88 00 00 00       	push   $0x88
402115:	6a 21                	push   $0x21
402117:	8b c7                	mov    %edi,%eax
402119:	ba e8 59 40 00       	mov    $0x4059e8,%edx
40211e:	e8 3a 08 00 00       	call   0x40295d
402123:	56                   	push   %esi
402124:	ff 75 fc             	push   -0x4(%ebp)
402127:	8b 35 84 40 40 00    	mov    0x404084,%esi
40212d:	ff d6                	call   *%esi
40212f:	57                   	push   %edi
402130:	ff 75 fc             	push   -0x4(%ebp)
402133:	8b d8                	mov    %eax,%ebx
402135:	ff d6                	call   *%esi
402137:	8b f0                	mov    %eax,%esi
402139:	85 db                	test   %ebx,%ebx
40213b:	74 1f                	je     0x40215c
40213d:	85 f6                	test   %esi,%esi
40213f:	74 1b                	je     0x40215c
402141:	8d 45 fc             	lea    -0x4(%ebp),%eax
402144:	50                   	push   %eax
402145:	ff d3                	call   *%ebx
402147:	85 c0                	test   %eax,%eax
402149:	74 0b                	je     0x402156
40214b:	8b 45 fc             	mov    -0x4(%ebp),%eax
40214e:	83 e0 fe             	and    $0xfffffffe,%eax
402151:	50                   	push   %eax
402152:	ff d6                	call   *%esi
402154:	eb 06                	jmp    0x40215c
402156:	ff 15 48 40 40 00    	call   *0x404048
40215c:	8d 65 f0             	lea    -0x10(%ebp),%esp
40215f:	5f                   	pop    %edi
402160:	5e                   	pop    %esi
402161:	5b                   	pop    %ebx
402162:	c9                   	leave
402163:	c3                   	ret
402164:	55                   	push   %ebp
402165:	8b ec                	mov    %esp,%ebp
402167:	83 ec 10             	sub    $0x10,%esp
40216a:	56                   	push   %esi
40216b:	57                   	push   %edi
40216c:	6a 3c                	push   $0x3c
40216e:	33 ff                	xor    %edi,%edi
402170:	58                   	pop    %eax
402171:	89 7d fc             	mov    %edi,-0x4(%ebp)
402174:	e8 5d 0f 00 00       	call   0x4030d6
402179:	8b c4                	mov    %esp,%eax
40217b:	3b c7                	cmp    %edi,%eax
40217d:	74 11                	je     0x402190
40217f:	68 96 00 00 00       	push   $0x96
402184:	6a 3b                	push   $0x3b
402186:	ba 30 5a 40 00       	mov    $0x405a30,%edx
40218b:	e8 cd 07 00 00       	call   0x40295d
402190:	8d 4d fc             	lea    -0x4(%ebp),%ecx
402193:	51                   	push   %ecx
402194:	68 3f 00 0f 00       	push   $0xf003f
402199:	57                   	push   %edi
40219a:	50                   	push   %eax
40219b:	68 01 00 00 80       	push   $0x80000001
4021a0:	ff 15 30 40 40 00    	call   *0x404030
4021a6:	3b c7                	cmp    %edi,%eax
4021a8:	75 05                	jne    0x4021af
4021aa:	39 7d fc             	cmp    %edi,-0x4(%ebp)
4021ad:	75 0a                	jne    0x4021b9
4021af:	83 f8 02             	cmp    $0x2,%eax
4021b2:	74 05                	je     0x4021b9
4021b4:	83 f8 05             	cmp    $0x5,%eax
4021b7:	75 60                	jne    0x402219
4021b9:	6a 04                	push   $0x4
4021bb:	58                   	pop    %eax
4021bc:	6a 18                	push   $0x18
4021be:	89 45 f0             	mov    %eax,-0x10(%ebp)
4021c1:	89 45 f4             	mov    %eax,-0xc(%ebp)
4021c4:	58                   	pop    %eax
4021c5:	89 7d f8             	mov    %edi,-0x8(%ebp)
4021c8:	e8 09 0f 00 00       	call   0x4030d6
4021cd:	8b f4                	mov    %esp,%esi
4021cf:	3b f7                	cmp    %edi,%esi
4021d1:	74 13                	je     0x4021e6
4021d3:	68 8a 00 00 00       	push   $0x8a
4021d8:	6a 15                	push   $0x15
4021da:	8b c6                	mov    %esi,%eax
4021dc:	ba 6c 5a 40 00       	mov    $0x405a6c,%edx
4021e1:	e8 77 07 00 00       	call   0x40295d
4021e6:	8d 45 f4             	lea    -0xc(%ebp),%eax
4021e9:	50                   	push   %eax
4021ea:	8d 45 f8             	lea    -0x8(%ebp),%eax
4021ed:	50                   	push   %eax
4021ee:	8d 45 f0             	lea    -0x10(%ebp),%eax
4021f1:	50                   	push   %eax
4021f2:	57                   	push   %edi
4021f3:	56                   	push   %esi
4021f4:	ff 75 fc             	push   -0x4(%ebp)
4021f7:	ff 15 28 40 40 00    	call   *0x404028
4021fd:	85 c0                	test   %eax,%eax
4021ff:	75 18                	jne    0x402219
402201:	39 7d f8             	cmp    %edi,-0x8(%ebp)
402204:	74 13                	je     0x402219
402206:	56                   	push   %esi
402207:	ff 75 fc             	push   -0x4(%ebp)
40220a:	ff 15 34 40 40 00    	call   *0x404034
402210:	ff 75 fc             	push   -0x4(%ebp)
402213:	ff 15 38 40 40 00    	call   *0x404038
402219:	39 7d fc             	cmp    %edi,-0x4(%ebp)
40221c:	74 09                	je     0x402227
40221e:	ff 75 fc             	push   -0x4(%ebp)
402221:	ff 15 3c 40 40 00    	call   *0x40403c
402227:	8d 65 e8             	lea    -0x18(%ebp),%esp
40222a:	5f                   	pop    %edi
40222b:	5e                   	pop    %esi
40222c:	c9                   	leave
40222d:	c3                   	ret
40222e:	55                   	push   %ebp
40222f:	8b ec                	mov    %esp,%ebp
402231:	6a 00                	push   $0x0
402233:	68 80 00 00 00       	push   $0x80
402238:	6a 02                	push   $0x2
40223a:	6a 00                	push   $0x0
40223c:	6a 03                	push   $0x3
40223e:	68 00 00 00 c0       	push   $0xc0000000
402243:	ff 75 08             	push   0x8(%ebp)
402246:	ff 15 bc 40 40 00    	call   *0x4040bc
40224c:	5d                   	pop    %ebp
40224d:	c2 04 00             	ret    $0x4
402250:	55                   	push   %ebp
402251:	8b ec                	mov    %esp,%ebp
402253:	6a 00                	push   $0x0
402255:	68 80 00 00 00       	push   $0x80
40225a:	6a 03                	push   $0x3
40225c:	6a 00                	push   $0x0
40225e:	6a 03                	push   $0x3
402260:	ff 75 0c             	push   0xc(%ebp)
402263:	ff 75 08             	push   0x8(%ebp)
402266:	ff 15 bc 40 40 00    	call   *0x4040bc
40226c:	5d                   	pop    %ebp
40226d:	c2 08 00             	ret    $0x8
402270:	55                   	push   %ebp
402271:	8b ec                	mov    %esp,%ebp
402273:	51                   	push   %ecx
402274:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
402278:	33 c0                	xor    %eax,%eax
40227a:	39 45 0c             	cmp    %eax,0xc(%ebp)
40227d:	74 26                	je     0x4022a5
40227f:	85 f6                	test   %esi,%esi
402281:	74 22                	je     0x4022a5
402283:	50                   	push   %eax
402284:	8d 45 fc             	lea    -0x4(%ebp),%eax
402287:	50                   	push   %eax
402288:	56                   	push   %esi
402289:	ff 75 0c             	push   0xc(%ebp)
40228c:	ff 75 08             	push   0x8(%ebp)
40228f:	ff 15 d0 40 40 00    	call   *0x4040d0
402295:	85 c0                	test   %eax,%eax
402297:	74 0a                	je     0x4022a3
402299:	3b 75 fc             	cmp    -0x4(%ebp),%esi
40229c:	75 05                	jne    0x4022a3
40229e:	33 c0                	xor    %eax,%eax
4022a0:	40                   	inc    %eax
4022a1:	eb 02                	jmp    0x4022a5
4022a3:	33 c0                	xor    %eax,%eax
4022a5:	c9                   	leave
4022a6:	c2 08 00             	ret    $0x8
4022a9:	55                   	push   %ebp
4022aa:	8b ec                	mov    %esp,%ebp
4022ac:	83 ec 10             	sub    $0x10,%esp
4022af:	53                   	push   %ebx
4022b0:	33 db                	xor    %ebx,%ebx
4022b2:	56                   	push   %esi
4022b3:	33 f6                	xor    %esi,%esi
4022b5:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4022b8:	39 5d 08             	cmp    %ebx,0x8(%ebp)
4022bb:	74 71                	je     0x40232e
4022bd:	68 00 00 00 80       	push   $0x80000000
4022c2:	ff 75 08             	push   0x8(%ebp)
4022c5:	e8 86 ff ff ff       	call   0x402250
4022ca:	89 45 08             	mov    %eax,0x8(%ebp)
4022cd:	83 f8 ff             	cmp    $0xffffffff,%eax
4022d0:	74 5c                	je     0x40232e
4022d2:	57                   	push   %edi
4022d3:	33 c0                	xor    %eax,%eax
4022d5:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4022d8:	8d 7d f4             	lea    -0xc(%ebp),%edi
4022db:	ab                   	stos   %eax,%es:(%edi)
4022dc:	8d 45 f0             	lea    -0x10(%ebp),%eax
4022df:	50                   	push   %eax
4022e0:	ff 75 08             	push   0x8(%ebp)
4022e3:	ff 15 dc 40 40 00    	call   *0x4040dc
4022e9:	8b 75 f0             	mov    -0x10(%ebp),%esi
4022ec:	89 75 f4             	mov    %esi,-0xc(%ebp)
4022ef:	3b f3                	cmp    %ebx,%esi
4022f1:	74 2f                	je     0x402322
4022f3:	e8 cb 07 00 00       	call   0x402ac3
4022f8:	8b f8                	mov    %eax,%edi
4022fa:	89 7d fc             	mov    %edi,-0x4(%ebp)
4022fd:	3b fb                	cmp    %ebx,%edi
4022ff:	74 21                	je     0x402322
402301:	53                   	push   %ebx
402302:	8d 45 f8             	lea    -0x8(%ebp),%eax
402305:	50                   	push   %eax
402306:	56                   	push   %esi
402307:	57                   	push   %edi
402308:	ff 75 08             	push   0x8(%ebp)
40230b:	89 5d f8             	mov    %ebx,-0x8(%ebp)
40230e:	ff 15 d4 40 40 00    	call   *0x4040d4
402314:	3b c3                	cmp    %ebx,%eax
402316:	75 0a                	jne    0x402322
402318:	8b f7                	mov    %edi,%esi
40231a:	e8 f3 07 00 00       	call   0x402b12
40231f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
402322:	ff 75 08             	push   0x8(%ebp)
402325:	e8 56 fb ff ff       	call   0x401e80
40232a:	8b 75 f4             	mov    -0xc(%ebp),%esi
40232d:	5f                   	pop    %edi
40232e:	8b 45 0c             	mov    0xc(%ebp),%eax
402331:	3b c3                	cmp    %ebx,%eax
402333:	74 02                	je     0x402337
402335:	89 30                	mov    %esi,(%eax)
402337:	8b 45 fc             	mov    -0x4(%ebp),%eax
40233a:	5e                   	pop    %esi
40233b:	5b                   	pop    %ebx
40233c:	c9                   	leave
40233d:	c2 08 00             	ret    $0x8
402340:	55                   	push   %ebp
402341:	8b ec                	mov    %esp,%ebp
402343:	53                   	push   %ebx
402344:	33 db                	xor    %ebx,%ebx
402346:	56                   	push   %esi
402347:	8b f0                	mov    %eax,%esi
402349:	39 5d 08             	cmp    %ebx,0x8(%ebp)
40234c:	74 49                	je     0x402397
40234e:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
402351:	74 44                	je     0x402397
402353:	3b f3                	cmp    %ebx,%esi
402355:	74 40                	je     0x402397
402357:	57                   	push   %edi
402358:	68 00 00 00 40       	push   $0x40000000
40235d:	ff 75 08             	push   0x8(%ebp)
402360:	e8 eb fe ff ff       	call   0x402250
402365:	8b f8                	mov    %eax,%edi
402367:	83 ff ff             	cmp    $0xffffffff,%edi
40236a:	75 0f                	jne    0x40237b
40236c:	ff 75 08             	push   0x8(%ebp)
40236f:	e8 ba fe ff ff       	call   0x40222e
402374:	8b f8                	mov    %eax,%edi
402376:	83 ff ff             	cmp    $0xffffffff,%edi
402379:	74 1b                	je     0x402396