402fe8:	89 45 0c             	mov    %eax,0xc(%ebp)
402feb:	47                   	inc    %edi
402fec:	23 fb                	and    %ebx,%edi
402fee:	8a 8c 3d f4 fe ff ff 	mov    -0x10c(%ebp,%edi,1),%cl
402ff5:	8d 84 3d f4 fe ff ff 	lea    -0x10c(%ebp,%edi,1),%eax
402ffc:	8a d1                	mov    %cl,%dl
402ffe:	03 55 f8             	add    -0x8(%ebp),%edx
403001:	23 d3                	and    %ebx,%edx
403003:	89 55 f8             	mov    %edx,-0x8(%ebp)
403006:	8d b4 15 f4 fe ff ff 	lea    -0x10c(%ebp,%edx,1),%esi
40300d:	8a 94 15 f4 fe ff ff 	mov    -0x10c(%ebp,%edx,1),%dl
403014:	88 10                	mov    %dl,(%eax)
403016:	88 0e                	mov    %cl,(%esi)
403018:	0f b6 00             	movzbl (%eax),%eax
40301b:	0f b6 c9             	movzbl %cl,%ecx
40301e:	03 c1                	add    %ecx,%eax
403020:	b9 00 01 00 00       	mov    $0x100,%ecx
403025:	99                   	cltd
403026:	f7 f9                	idiv   %ecx
403028:	8b 45 14             	mov    0x14(%ebp),%eax
40302b:	8a 8c 15 f4 fe ff ff 	mov    -0x10c(%ebp,%edx,1),%cl
403032:	30 08                	xor    %cl,(%eax)
403034:	40                   	inc    %eax
403035:	ff 4d 0c             	decl   0xc(%ebp)
403038:	89 45 14             	mov    %eax,0x14(%ebp)
40303b:	75 ae                	jne    0x402feb
40303d:	8b 45 10             	mov    0x10(%ebp),%eax
403040:	5f                   	pop    %edi
403041:	5e                   	pop    %esi
403042:	5b                   	pop    %ebx
403043:	c9                   	leave
403044:	c3                   	ret
403045:	33 c0                	xor    %eax,%eax
403047:	c9                   	leave
403048:	c3                   	ret
403049:	55                   	push   %ebp
40304a:	8b ec                	mov    %esp,%ebp
40304c:	51                   	push   %ecx
40304d:	51                   	push   %ecx
40304e:	53                   	push   %ebx
40304f:	56                   	push   %esi
403050:	57                   	push   %edi
403051:	8b 7d 08             	mov    0x8(%ebp),%edi
403054:	83 65 08 00          	andl   $0x0,0x8(%ebp)
403058:	8b 47 3c             	mov    0x3c(%edi),%eax
40305b:	8b 74 38 78          	mov    0x78(%eax,%edi,1),%esi
40305f:	8b 44 3e 20          	mov    0x20(%esi,%edi,1),%eax
403063:	03 f7                	add    %edi,%esi
403065:	03 c7                	add    %edi,%eax
403067:	8b 5e 1c             	mov    0x1c(%esi),%ebx
40306a:	8b 4e 24             	mov    0x24(%esi),%ecx
40306d:	03 df                	add    %edi,%ebx
40306f:	03 cf                	add    %edi,%ecx
403071:	83 7e 18 00          	cmpl   $0x0,0x18(%esi)
403075:	89 4d f8             	mov    %ecx,-0x8(%ebp)
403078:	76 25                	jbe    0x40309f
40307a:	89 45 fc             	mov    %eax,-0x4(%ebp)
40307d:	8b 45 fc             	mov    -0x4(%ebp),%eax
403080:	8b 00                	mov    (%eax),%eax
403082:	03 c7                	add    %edi,%eax
403084:	50                   	push   %eax
403085:	e8 67 fe ff ff       	call   0x402ef1
40308a:	3b 45 0c             	cmp    0xc(%ebp),%eax
40308d:	59                   	pop    %ecx
40308e:	74 16                	je     0x4030a6
403090:	ff 45 08             	incl   0x8(%ebp)
403093:	83 45 fc 04          	addl   $0x4,-0x4(%ebp)
403097:	8b 45 08             	mov    0x8(%ebp),%eax
40309a:	3b 46 18             	cmp    0x18(%esi),%eax
40309d:	72 de                	jb     0x40307d
40309f:	33 c0                	xor    %eax,%eax
4030a1:	5f                   	pop    %edi
4030a2:	5e                   	pop    %esi
4030a3:	5b                   	pop    %ebx
4030a4:	c9                   	leave
4030a5:	c3                   	ret
4030a6:	8b 45 f8             	mov    -0x8(%ebp),%eax
4030a9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4030ac:	0f b7 04 48          	movzwl (%eax,%ecx,2),%eax
4030b0:	8b 04 83             	mov    (%ebx,%eax,4),%eax
4030b3:	03 c7                	add    %edi,%eax
4030b5:	eb ea                	jmp    0x4030a1
4030b7:	55                   	push   %ebp
4030b8:	8b ec                	mov    %esp,%ebp
4030ba:	83 ec 10             	sub    $0x10,%esp
4030bd:	53                   	push   %ebx
4030be:	8b 1d d4 a0 40 00    	mov    0x40a0d4,%ebx
4030c4:	56                   	push   %esi
4030c5:	33 f6                	xor    %esi,%esi
4030c7:	57                   	push   %edi
4030c8:	56                   	push   %esi
4030c9:	56                   	push   %esi
4030ca:	68 00 c4 40 00       	push   $0x40c400
4030cf:	ff d3                	call   *%ebx
4030d1:	56                   	push   %esi
4030d2:	56                   	push   %esi
4030d3:	68 ec c3 40 00       	push   $0x40c3ec
4030d8:	8b f8                	mov    %eax,%edi
4030da:	ff d3                	call   *%ebx
4030dc:	85 c0                	test   %eax,%eax
4030de:	0f 84 82 00 00 00    	je     0x403166
4030e4:	68 5f 56 de 16       	push   $0x16de565f
4030e9:	57                   	push   %edi
4030ea:	e8 5a ff ff ff       	call   0x403049
4030ef:	68 aa 89 4b 1a       	push   $0x1a4b89aa
4030f4:	57                   	push   %edi
4030f5:	89 45 f0             	mov    %eax,-0x10(%ebp)
4030f8:	e8 4c ff ff ff       	call   0x403049
4030fd:	68 3c 8e 0d fa       	push   $0xfa0d8e3c
403102:	57                   	push   %edi
403103:	89 45 f4             	mov    %eax,-0xc(%ebp)
403106:	e8 3e ff ff ff       	call   0x403049
40310b:	68 43 17 cb 31       	push   $0x31cb1743
403110:	57                   	push   %edi
403111:	8b d8                	mov    %eax,%ebx
403113:	e8 31 ff ff ff       	call   0x403049
403118:	68 d0 8b 67 dd       	push   $0xdd678bd0
40311d:	57                   	push   %edi
40311e:	89 45 fc             	mov    %eax,-0x4(%ebp)
403121:	e8 23 ff ff ff       	call   0x403049
403126:	83 c4 28             	add    $0x28,%esp
403129:	89 45 f8             	mov    %eax,-0x8(%ebp)
40312c:	6a 0a                	push   $0xa
40312e:	68 38 52 00 00       	push   $0x5238
403133:	56                   	push   %esi
403134:	ff d3                	call   *%ebx
403136:	8b f8                	mov    %eax,%edi
403138:	3b fe                	cmp    %esi,%edi
40313a:	74 2a                	je     0x403166
40313c:	57                   	push   %edi
40313d:	56                   	push   %esi
40313e:	ff 55 fc             	call   *-0x4(%ebp)
403141:	3b c6                	cmp    %esi,%eax
403143:	89 45 fc             	mov    %eax,-0x4(%ebp)
403146:	74 1e                	je     0x403166
403148:	57                   	push   %edi
403149:	56                   	push   %esi
40314a:	ff 55 f8             	call   *-0x8(%ebp)
40314d:	56                   	push   %esi
40314e:	8b d8                	mov    %eax,%ebx
403150:	6a 40                	push   $0x40
403152:	68 00 30 00 00       	push   $0x3000
403157:	53                   	push   %ebx
403158:	56                   	push   %esi
403159:	ff 55 f4             	call   *-0xc(%ebp)
40315c:	50                   	push   %eax
40315d:	ff 55 f0             	call   *-0x10(%ebp)
403160:	8b f8                	mov    %eax,%edi
403162:	3b fe                	cmp    %esi,%edi
403164:	75 04                	jne    0x40316a
403166:	32 c0                	xor    %al,%al
403168:	eb 1e                	jmp    0x403188
40316a:	53                   	push   %ebx
40316b:	ff 75 fc             	push   -0x4(%ebp)
40316e:	57                   	push   %edi
40316f:	e8 e0 5e 00 00       	call   0x409054
403174:	53                   	push   %ebx
403175:	57                   	push   %edi
403176:	ff 75 0c             	push   0xc(%ebp)
403179:	ff 75 08             	push   0x8(%ebp)
40317c:	e8 9e fd ff ff       	call   0x402f1f
403181:	83 c4 1c             	add    $0x1c,%esp
403184:	ff d7                	call   *%edi
403186:	b0 01                	mov    $0x1,%al
403188:	5f                   	pop    %edi
403189:	5e                   	pop    %esi
40318a:	5b                   	pop    %ebx
40318b:	c9                   	leave
40318c:	c3                   	ret
40318d:	e8 05 00 00 00       	call   0x403197
403192:	e9 0a 00 00 00       	jmp    0x4031a1
403197:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
40319c:	e9 93 45 00 00       	jmp    0x407734
4031a1:	68 ad 31 40 00       	push   $0x4031ad
4031a6:	e8 db 5e 00 00       	call   0x409086
4031ab:	59                   	pop    %ecx
4031ac:	c3                   	ret
4031ad:	c3                   	ret
4031ae:	8b 44 24 08          	mov    0x8(%esp),%eax
4031b2:	83 e8 10             	sub    $0x10,%eax
4031b5:	74 1a                	je     0x4031d1
4031b7:	2d 00 01 00 00       	sub    $0x100,%eax
4031bc:	74 1f                	je     0x4031dd
4031be:	48                   	dec    %eax
4031bf:	74 04                	je     0x4031c5
4031c1:	33 c0                	xor    %eax,%eax
4031c3:	eb 1b                	jmp    0x4031e0
4031c5:	66 83 7c 24 0c 02    	cmpw   $0x2,0xc(%esp)
4031cb:	75 10                	jne    0x4031dd
4031cd:	6a 01                	push   $0x1
4031cf:	eb 02                	jmp    0x4031d3
4031d1:	6a 02                	push   $0x2
4031d3:	ff 74 24 08          	push   0x8(%esp)
4031d7:	ff 15 c0 a2 40 00    	call   *0x40a2c0
4031dd:	6a 01                	push   $0x1
4031df:	58                   	pop    %eax
4031e0:	c2 10 00             	ret    $0x10
4031e3:	55                   	push   %ebp
4031e4:	8b ec                	mov    %esp,%ebp
4031e6:	81 ec cc 00 00 00    	sub    $0xcc,%esp
4031ec:	53                   	push   %ebx
4031ed:	56                   	push   %esi
4031ee:	57                   	push   %edi
4031ef:	6a 06                	push   $0x6
4031f1:	59                   	pop    %ecx
4031f2:	be 98 c4 40 00       	mov    $0x40c498,%esi
4031f7:	8d bd 34 ff ff ff    	lea    -0xcc(%ebp),%edi
4031fd:	8d 85 34 ff ff ff    	lea    -0xcc(%ebp),%eax
403203:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
403205:	66 a5                	movsw  %ds:(%esi),%es:(%edi)
403207:	6a 1b                	push   $0x1b
403209:	50                   	push   %eax
40320a:	a4                   	movsb  %ds:(%esi),%es:(%edi)
40320b:	e8 a7 fe ff ff       	call   0x4030b7
403210:	59                   	pop    %ecx
403211:	59                   	pop    %ecx
403212:	68 00 80 00 00       	push   $0x8000
403217:	ff 15 d8 a0 40 00    	call   *0x40a0d8
40321d:	50                   	push   %eax
40321e:	ff 15 08 a1 40 00    	call   *0x40a108
403224:	33 db                	xor    %ebx,%ebx
403226:	53                   	push   %ebx
403227:	68 18 a3 40 00       	push   $0x40a318
40322c:	ff 15 6c a2 40 00    	call   *0x40a26c
403232:	8b f0                	mov    %eax,%esi
403234:	3b f3                	cmp    %ebx,%esi
403236:	74 19                	je     0x403251
403238:	6a 09                	push   $0x9
40323a:	56                   	push   %esi
40323b:	ff 15 e8 a1 40 00    	call   *0x40a1e8
403241:	56                   	push   %esi
403242:	ff 15 e0 a2 40 00    	call   *0x40a2e0
403248:	5f                   	pop    %edi
403249:	5e                   	pop    %esi
40324a:	33 c0                	xor    %eax,%eax
40324c:	5b                   	pop    %ebx
40324d:	c9                   	leave
40324e:	c2 10 00             	ret    $0x10
403251:	ff 15 44 a0 40 00    	call   *0x40a044
403257:	e8 d3 5a 00 00       	call   0x408d2f
40325c:	8d 85 50 ff ff ff    	lea    -0xb0(%ebp),%eax
403262:	c7 85 50 ff ff ff 94 	movl   $0x94,-0xb0(%ebp)
403269:	00 00 00
40326c:	50                   	push   %eax
40326d:	ff 15 4c a0 40 00    	call   *0x40a04c
403273:	8b 95 54 ff ff ff    	mov    -0xac(%ebp),%edx
403279:	8b 8d 58 ff ff ff    	mov    -0xa8(%ebp),%ecx
40327f:	83 fa 04             	cmp    $0x4,%edx
403282:	75 3d                	jne    0x4032c1
403284:	3b cb                	cmp    %ebx,%ecx
403286:	75 21                	jne    0x4032a9
403288:	83 bd 60 ff ff ff 01 	cmpl   $0x1,-0xa0(%ebp)
40328f:	b8 94 c4 40 00       	mov    $0x40c494,%eax
403294:	74 03                	je     0x403299
403296:	8b 45 08             	mov    0x8(%ebp),%eax
403299:	83 bd 60 ff ff ff 02 	cmpl   $0x2,-0xa0(%ebp)
4032a0:	75 73                	jne    0x403315
4032a2:	b8 90 c4 40 00       	mov    $0x40c490,%eax
4032a7:	eb 3e                	jmp    0x4032e7
4032a9:	83 f9 0a             	cmp    $0xa,%ecx
4032ac:	75 07                	jne    0x4032b5
4032ae:	b8 8c c4 40 00       	mov    $0x40c48c,%eax
4032b3:	eb 29                	jmp    0x4032de
4032b5:	83 f9 5a             	cmp    $0x5a,%ecx
4032b8:	75 21                	jne    0x4032db
4032ba:	b8 88 c4 40 00       	mov    $0x40c488,%eax
4032bf:	eb 1d                	jmp    0x4032de
4032c1:	83 fa 05             	cmp    $0x5,%edx
4032c4:	75 15                	jne    0x4032db
4032c6:	3b cb                	cmp    %ebx,%ecx
4032c8:	75 07                	jne    0x4032d1
4032ca:	b8 80 c4 40 00       	mov    $0x40c480,%eax
4032cf:	eb 0d                	jmp    0x4032de
4032d1:	83 f9 01             	cmp    $0x1,%ecx
4032d4:	b8 7c c4 40 00       	mov    $0x40c47c,%eax
4032d9:	74 03                	je     0x4032de
4032db:	8b 45 08             	mov    0x8(%ebp),%eax
4032de:	83 bd 60 ff ff ff 02 	cmpl   $0x2,-0xa0(%ebp)
4032e5:	75 2e                	jne    0x403315
4032e7:	38 9d 64 ff ff ff    	cmp    %bl,-0x9c(%ebp)
4032ed:	74 26                	je     0x403315
4032ef:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
4032f5:	be f0 d4 40 00       	mov    $0x40d4f0,%esi
4032fa:	51                   	push   %ecx
4032fb:	8d 8d 64 ff ff ff    	lea    -0x9c(%ebp),%ecx
403301:	52                   	push   %edx
403302:	51                   	push   %ecx
403303:	50                   	push   %eax
403304:	68 5c c4 40 00       	push   $0x40c45c
403309:	56                   	push   %esi
40330a:	ff 15 58 a1 40 00    	call   *0x40a158
403310:	83 c4 1c             	add    $0x1c,%esp
403313:	eb 1d                	jmp    0x403332
403315:	ff b5 5c ff ff ff    	push   -0xa4(%ebp)
40331b:	be f0 d4 40 00       	mov    $0x40d4f0,%esi
403320:	51                   	push   %ecx
403321:	52                   	push   %edx
403322:	50                   	push   %eax
403323:	68 40 c4 40 00       	push   $0x40c440
403328:	56                   	push   %esi
403329:	ff 15 58 a1 40 00    	call   *0x40a158
40332f:	83 c4 18             	add    $0x18,%esp
403332:	83 bd 60 ff ff ff 02 	cmpl   $0x2,-0xa0(%ebp)
403339:	74 17                	je     0x403352
40333b:	56                   	push   %esi
40333c:	68 1c c4 40 00       	push   $0x40c41c
403341:	53                   	push   %ebx
403342:	e8 be 52 00 00       	call   0x408605
403347:	83 c4 0c             	add    $0xc,%esp
40334a:	6a ff                	push   $0xffffffff
40334c:	ff 15 94 a0 40 00    	call   *0x40a094
403352:	6a 50                	push   $0x50
403354:	53                   	push   %ebx
403355:	68 c8 d7 40 00       	push   $0x40d7c8
40335a:	e8 dd 5b 00 00       	call   0x408f3c
40335f:	83 c4 0c             	add    $0xc,%esp
403362:	e8 4e 53 00 00       	call   0x4086b5
403367:	ff 75 08             	push   0x8(%ebp)
40336a:	b9 b8 d5 40 00       	mov    $0x40d5b8,%ecx
40336f:	e8 fb 48 00 00       	call   0x407c6f
403374:	8b 35 70 a2 40 00    	mov    0x40a270,%esi
40337a:	53                   	push   %ebx
40337b:	53                   	push   %ebx
40337c:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40337f:	53                   	push   %ebx
403380:	50                   	push   %eax
403381:	ff d6                	call   *%esi
403383:	85 c0                	test   %eax,%eax
403385:	0f 8e bd fe ff ff    	jle    0x403248
40338b:	8d 45 e4             	lea    -0x1c(%ebp),%eax
40338e:	50                   	push   %eax
40338f:	ff 15 74 a2 40 00    	call   *0x40a274
403395:	8d 45 e4             	lea    -0x1c(%ebp),%eax
403398:	50                   	push   %eax
403399:	ff 15 78 a2 40 00    	call   *0x40a278
40339f:	53                   	push   %ebx
4033a0:	53                   	push   %ebx
4033a1:	8d 45 e4             	lea    -0x1c(%ebp),%eax
4033a4:	53                   	push   %ebx
4033a5:	50                   	push   %eax
4033a6:	eb d9                	jmp    0x403381
4033a8:	8b c1                	mov    %ecx,%eax
4033aa:	8b 4c 24 04          	mov    0x4(%esp),%ecx
4033ae:	89 88 5c 02 00 00    	mov    %ecx,0x25c(%eax)
4033b4:	33 c9                	xor    %ecx,%ecx
4033b6:	89 08                	mov    %ecx,(%eax)
4033b8:	89 48 04             	mov    %ecx,0x4(%eax)
4033bb:	89 88 58 02 00 00    	mov    %ecx,0x258(%eax)
4033c1:	c2 04 00             	ret    $0x4
4033c4:	55                   	push   %ebp