40914d:	0f 84 49 01 00 00    	je     0x40929c
409153:	33 c0                	xor    %eax,%eax
409155:	89 5d b4             	mov    %ebx,-0x4c(%ebp)
409158:	88 45 ac             	mov    %al,-0x54(%ebp)
40915b:	a1 30 20 41 00       	mov    0x412030,%eax
409160:	89 45 b0             	mov    %eax,-0x50(%ebp)
409163:	68 90 2e 40 00       	push   $0x402e90
409168:	56                   	push   %esi
409169:	c6 45 fc 03          	movb   $0x3,-0x4(%ebp)
40916d:	e8 d6 f1 ff ff       	call   0x408348
409172:	33 c0                	xor    %eax,%eax
409174:	8b f8                	mov    %eax,%edi
409176:	59                   	pop    %ecx
409177:	59                   	pop    %ecx
409178:	39 45 b8             	cmp    %eax,-0x48(%ebp)
40917b:	0f 86 13 01 00 00    	jbe    0x409294
409181:	57                   	push   %edi
409182:	68 98 2e 40 00       	push   $0x402e98
409187:	56                   	push   %esi
409188:	e8 bb f1 ff ff       	call   0x408348
40918d:	83 c4 0c             	add    $0xc,%esp
409190:	8d 45 d4             	lea    -0x2c(%ebp),%eax
409193:	50                   	push   %eax
409194:	8d 45 c8             	lea    -0x38(%ebp),%eax
409197:	50                   	push   %eax
409198:	51                   	push   %ecx
409199:	57                   	push   %edi
40919a:	6a 02                	push   $0x2
40919c:	5a                   	pop    %edx
40919d:	8b cb                	mov    %ebx,%ecx
40919f:	e8 57 ef ff ff       	call   0x4080fb
4091a4:	85 c0                	test   %eax,%eax
4091a6:	0f 85 32 01 00 00    	jne    0x4092de
4091ac:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4091af:	8b 41 0c             	mov    0xc(%ecx),%eax
4091b2:	85 c0                	test   %eax,%eax
4091b4:	74 1d                	je     0x4091d3
4091b6:	83 f8 04             	cmp    $0x4,%eax
4091b9:	0f 85 f3 00 00 00    	jne    0x4092b2
4091bf:	85 c0                	test   %eax,%eax
4091c1:	74 10                	je     0x4091d3
4091c3:	ff 31                	push   (%ecx)
4091c5:	68 e8 2e 40 00       	push   $0x402ee8
4091ca:	56                   	push   %esi
4091cb:	e8 78 f1 ff ff       	call   0x408348
4091d0:	83 c4 0c             	add    $0xc,%esp
4091d3:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4091d6:	50                   	push   %eax
4091d7:	8d 45 c8             	lea    -0x38(%ebp),%eax
4091da:	50                   	push   %eax
4091db:	51                   	push   %ecx
4091dc:	57                   	push   %edi
4091dd:	6a 03                	push   $0x3
4091df:	5a                   	pop    %edx
4091e0:	8b cb                	mov    %ebx,%ecx
4091e2:	e8 14 ef ff ff       	call   0x4080fb
4091e7:	85 c0                	test   %eax,%eax
4091e9:	0f 85 e8 00 00 00    	jne    0x4092d7
4091ef:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
4091f2:	8b 41 0c             	mov    0xc(%ecx),%eax
4091f5:	85 c0                	test   %eax,%eax
4091f7:	74 2c                	je     0x409225
4091f9:	83 f8 01             	cmp    $0x1,%eax
4091fc:	0f 85 ba 00 00 00    	jne    0x4092bc
409202:	85 c0                	test   %eax,%eax
409204:	74 1f                	je     0x409225
409206:	33 c0                	xor    %eax,%eax
409208:	39 01                	cmp    %eax,(%ecx)
40920a:	b8 80 24 40 00       	mov    $0x402480,%eax
40920f:	75 05                	jne    0x409216
409211:	b8 8c 24 40 00       	mov    $0x40248c,%eax
409216:	50                   	push   %eax
409217:	68 30 2f 40 00       	push   $0x402f30
40921c:	56                   	push   %esi
40921d:	e8 26 f1 ff ff       	call   0x408348
409222:	83 c4 0c             	add    $0xc,%esp
409225:	83 7d c0 01          	cmpl   $0x1,-0x40(%ebp)
409229:	75 5f                	jne    0x40928a
40922b:	8d 45 d4             	lea    -0x2c(%ebp),%eax
40922e:	50                   	push   %eax
40922f:	8d 45 c8             	lea    -0x38(%ebp),%eax
409232:	50                   	push   %eax
409233:	51                   	push   %ecx
409234:	57                   	push   %edi
409235:	6a 04                	push   $0x4
409237:	5a                   	pop    %edx
409238:	8b cb                	mov    %ebx,%ecx
40923a:	e8 bc ee ff ff       	call   0x4080fb
40923f:	85 c0                	test   %eax,%eax
409241:	0f 85 89 00 00 00    	jne    0x4092d0
409247:	8b 4d d4             	mov    -0x2c(%ebp),%ecx
40924a:	8b 41 0c             	mov    0xc(%ecx),%eax
40924d:	85 c0                	test   %eax,%eax
40924f:	74 05                	je     0x409256
409251:	83 f8 04             	cmp    $0x4,%eax
409254:	75 70                	jne    0x4092c6
409256:	83 f8 04             	cmp    $0x4,%eax
409259:	75 2f                	jne    0x40928a
40925b:	8b 01                	mov    (%ecx),%eax
40925d:	85 c0                	test   %eax,%eax
40925f:	74 29                	je     0x40928a
409261:	33 c9                	xor    %ecx,%ecx
409263:	66 39 08             	cmp    %cx,(%eax)
409266:	74 22                	je     0x40928a
409268:	50                   	push   %eax
409269:	68 64 2f 40 00       	push   $0x402f64
40926e:	56                   	push   %esi
40926f:	e8 d4 f0 ff ff       	call   0x408348
409274:	83 c4 0c             	add    $0xc,%esp
409277:	68 88 2c 40 00       	push   $0x402c88
40927c:	68 84 2f 40 00       	push   $0x402f84
409281:	56                   	push   %esi
409282:	e8 c1 f0 ff ff       	call   0x408348
409287:	83 c4 0c             	add    $0xc,%esp
40928a:	47                   	inc    %edi
40928b:	3b 7d b8             	cmp    -0x48(%ebp),%edi
40928e:	0f 82 ed fe ff ff    	jb     0x409181
409294:	8d 4d ac             	lea    -0x54(%ebp),%ecx
409297:	e8 c7 cb ff ff       	call   0x405e63
40929c:	8d 4d c8             	lea    -0x38(%ebp),%ecx
40929f:	e8 73 cc ff ff       	call   0x405f17
4092a4:	8d 4d a0             	lea    -0x60(%ebp),%ecx
4092a7:	e8 b7 cb ff ff       	call   0x405e63
4092ac:	e8 7f 53 00 00       	call   0x40e630
4092b1:	c3                   	ret
4092b2:	68 c0 2e 40 00       	push   $0x402ec0
4092b7:	e9 d8 f4 ff ff       	jmp    0x408794
4092bc:	68 08 2f 40 00       	push   $0x402f08
4092c1:	e9 ce f4 ff ff       	jmp    0x408794
4092c6:	68 50 2f 40 00       	push   $0x402f50
4092cb:	e9 c4 f4 ff ff       	jmp    0x408794
4092d0:	68 50 2f 40 00       	push   $0x402f50
4092d5:	eb 23                	jmp    0x4092fa
4092d7:	68 08 2f 40 00       	push   $0x402f08
4092dc:	eb 1c                	jmp    0x4092fa
4092de:	68 c0 2e 40 00       	push   $0x402ec0
4092e3:	eb 15                	jmp    0x4092fa
4092e5:	ff 15 70 20 41 00    	call   *0x412070
4092eb:	6a 08                	push   $0x8
4092ed:	5a                   	pop    %edx
4092ee:	8b c8                	mov    %eax,%ecx
4092f0:	e8 ee e2 ff ff       	call   0x4075e3
4092f5:	68 f8 26 40 00       	push   $0x4026f8
4092fa:	6a 0e                	push   $0xe
4092fc:	50                   	push   %eax
4092fd:	e8 13 e3 ff ff       	call   0x407615
409302:	cc                   	int3
409303:	6a 54                	push   $0x54
409305:	b8 77 f0 40 00       	mov    $0x40f077,%eax
40930a:	e8 72 53 00 00       	call   0x40e681
40930f:	8b f1                	mov    %ecx,%esi
409311:	8d 7e 18             	lea    0x18(%esi),%edi
409314:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
409318:	72 04                	jb     0x40931e
40931a:	8b 07                	mov    (%edi),%eax
40931c:	eb 02                	jmp    0x409320
40931e:	8b c7                	mov    %edi,%eax
409320:	6a 02                	push   $0x2
409322:	6a 01                	push   $0x1
409324:	50                   	push   %eax
409325:	ff 15 28 20 41 00    	call   *0x412028
40932b:	8b d8                	mov    %eax,%ebx
40932d:	89 5d b8             	mov    %ebx,-0x48(%ebp)
409330:	85 db                	test   %ebx,%ebx
409332:	0f 84 f5 0e 00 00    	je     0x40a22d
409338:	a1 30 20 41 00       	mov    0x412030,%eax
40933d:	33 c9                	xor    %ecx,%ecx
40933f:	88 4d a0             	mov    %cl,-0x60(%ebp)
409342:	89 45 a4             	mov    %eax,-0x5c(%ebp)
409345:	89 5d a8             	mov    %ebx,-0x58(%ebp)
409348:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40934b:	ba b0 2f 40 00       	mov    $0x402fb0,%edx
409350:	38 0d 04 17 41 00    	cmp    %cl,0x411704
409356:	74 05                	je     0x40935d
409358:	ba 08 30 40 00       	mov    $0x403008,%edx
40935d:	8b 4e 10             	mov    0x10(%esi),%ecx
409360:	e8 af df ff ff       	call   0x407314
409365:	8b 4e 10             	mov    0x10(%esi),%ecx
409368:	ba 60 30 40 00       	mov    $0x403060,%edx
40936d:	e8 a2 df ff ff       	call   0x407314
409372:	8b 4e 10             	mov    0x10(%esi),%ecx
409375:	ba 14 31 40 00       	mov    $0x403114,%edx
40937a:	e8 95 df ff ff       	call   0x407314
40937f:	83 7f 14 08          	cmpl   $0x8,0x14(%edi)
409383:	72 02                	jb     0x409387
409385:	8b 3f                	mov    (%edi),%edi
409387:	57                   	push   %edi
409388:	8b ce                	mov    %esi,%ecx
40938a:	e8 04 f1 ff ff       	call   0x408493
40938f:	8b 4e 10             	mov    0x10(%esi),%ecx
409392:	ba 38 31 40 00       	mov    $0x403138,%edx
409397:	e8 78 df ff ff       	call   0x407314
40939c:	33 c0                	xor    %eax,%eax
40939e:	89 45 bc             	mov    %eax,-0x44(%ebp)
4093a1:	89 45 c0             	mov    %eax,-0x40(%ebp)
4093a4:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4093a7:	8d 45 d0             	lea    -0x30(%ebp),%eax
4093aa:	c6 45 fc 01          	movb   $0x1,-0x4(%ebp)
4093ae:	50                   	push   %eax
4093af:	8d 45 bc             	lea    -0x44(%ebp),%eax
4093b2:	c7 45 b4 01 00 00 00 	movl   $0x1,-0x4c(%ebp)
4093b9:	50                   	push   %eax
4093ba:	51                   	push   %ecx
4093bb:	6a 1b                	push   $0x1b
4093bd:	5a                   	pop    %edx
4093be:	8b cb                	mov    %ebx,%ecx
4093c0:	e8 a0 ec ff ff       	call   0x408065
4093c5:	85 c0                	test   %eax,%eax
4093c7:	0f 85 70 0e 00 00    	jne    0x40a23d
4093cd:	8b 7d d0             	mov    -0x30(%ebp),%edi
4093d0:	8b 47 0c             	mov    0xc(%edi),%eax
4093d3:	85 c0                	test   %eax,%eax
4093d5:	74 53                	je     0x40942a
4093d7:	83 f8 02             	cmp    $0x2,%eax
4093da:	75 17                	jne    0x4093f3
4093dc:	85 c0                	test   %eax,%eax
4093de:	74 4a                	je     0x40942a
4093e0:	8b 17                	mov    (%edi),%edx
4093e2:	b9 10 12 41 00       	mov    $0x411210,%ecx
4093e7:	e8 73 47 00 00       	call   0x40db5f
4093ec:	89 45 c8             	mov    %eax,-0x38(%ebp)
4093ef:	85 c0                	test   %eax,%eax
4093f1:	75 0e                	jne    0x409401
4093f3:	68 f8 26 40 00       	push   $0x4026f8
4093f8:	6a 0e                	push   $0xe
4093fa:	6a 0d                	push   $0xd
4093fc:	e9 44 0e 00 00       	jmp    0x40a245
409401:	8b 4e 10             	mov    0x10(%esi),%ecx
409404:	ba 60 31 40 00       	mov    $0x403160,%edx
409409:	e8 06 df ff ff       	call   0x407314
40940e:	ff 75 c8             	push   -0x38(%ebp)
409411:	8b ce                	mov    %esi,%ecx
409413:	e8 7b f0 ff ff       	call   0x408493
409418:	8b 4e 10             	mov    0x10(%esi),%ecx
40941b:	ba 88 31 40 00       	mov    $0x403188,%edx
409420:	e8 ef de ff ff       	call   0x407314
409425:	8b 07                	mov    (%edi),%eax
409427:	89 45 b4             	mov    %eax,-0x4c(%ebp)
40942a:	8d 45 d0             	lea    -0x30(%ebp),%eax
40942d:	50                   	push   %eax
40942e:	8d 45 bc             	lea    -0x44(%ebp),%eax
409431:	50                   	push   %eax
409432:	51                   	push   %ecx
409433:	6a 06                	push   $0x6
409435:	5a                   	pop    %edx
409436:	8b cb                	mov    %ebx,%ecx
409438:	e8 28 ec ff ff       	call   0x408065
40943d:	85 c0                	test   %eax,%eax
40943f:	74 0a                	je     0x40944b
409441:	68 4c 27 40 00       	push   $0x40274c
409446:	e9 f7 0d 00 00       	jmp    0x40a242
40944b:	8b 7d d0             	mov    -0x30(%ebp),%edi
40944e:	8b 47 0c             	mov    0xc(%edi),%eax
409451:	85 c0                	test   %eax,%eax
409453:	74 33                	je     0x409488
409455:	83 f8 04             	cmp    $0x4,%eax
409458:	74 07                	je     0x409461
40945a:	68 4c 27 40 00       	push   $0x40274c
40945f:	eb 97                	jmp    0x4093f8
409461:	85 c0                	test   %eax,%eax
409463:	74 23                	je     0x409488
409465:	8b 4e 10             	mov    0x10(%esi),%ecx
409468:	ba b4 31 40 00       	mov    $0x4031b4,%edx
40946d:	e8 a2 de ff ff       	call   0x407314
409472:	ff 37                	push   (%edi)
409474:	8b ce                	mov    %esi,%ecx
409476:	e8 18 f0 ff ff       	call   0x408493
40947b:	8b 4e 10             	mov    0x10(%esi),%ecx
40947e:	ba d4 31 40 00       	mov    $0x4031d4,%edx
409483:	e8 8c de ff ff       	call   0x407314
409488:	8d 45 d0             	lea    -0x30(%ebp),%eax
40948b:	33 d2                	xor    %edx,%edx
40948d:	50                   	push   %eax
40948e:	8d 45 bc             	lea    -0x44(%ebp),%eax
409491:	50                   	push   %eax
409492:	51                   	push   %ecx
409493:	8b cb                	mov    %ebx,%ecx
409495:	e8 cb eb ff ff       	call   0x408065
40949a:	85 c0                	test   %eax,%eax
40949c:	74 0a                	je     0x4094a8
40949e:	68 88 27 40 00       	push   $0x402788
4094a3:	e9 9a 0d 00 00       	jmp    0x40a242
4094a8:	8b 7d d0             	mov    -0x30(%ebp),%edi
4094ab:	8b 47 0c             	mov    0xc(%edi),%eax
4094ae:	85 c0                	test   %eax,%eax
4094b0:	74 45                	je     0x4094f7
4094b2:	83 f8 01             	cmp    $0x1,%eax
4094b5:	74 0a                	je     0x4094c1
4094b7:	68 88 27 40 00       	push   $0x402788
4094bc:	e9 37 ff ff ff       	jmp    0x4093f8
4094c1:	85 c0                	test   %eax,%eax
4094c3:	74 32                	je     0x4094f7
4094c5:	8b 4e 10             	mov    0x10(%esi),%ecx
4094c8:	ba f8 31 40 00       	mov    $0x4031f8,%edx
4094cd:	e8 42 de ff ff       	call   0x407314
4094d2:	33 c0                	xor    %eax,%eax
4094d4:	39 07                	cmp    %eax,(%edi)
4094d6:	b8 80 24 40 00       	mov    $0x402480,%eax
4094db:	75 05                	jne    0x4094e2
4094dd:	b8 8c 24 40 00       	mov    $0x40248c,%eax
4094e2:	50                   	push   %eax
4094e3:	8b ce                	mov    %esi,%ecx
4094e5:	e8 a9 ef ff ff       	call   0x408493
4094ea:	8b 4e 10             	mov    0x10(%esi),%ecx
4094ed:	ba 10 32 40 00       	mov    $0x403210,%edx
4094f2:	e8 1d de ff ff       	call   0x407314
4094f7:	8d 45 d0             	lea    -0x30(%ebp),%eax
4094fa:	50                   	push   %eax
4094fb:	8d 45 bc             	lea    -0x44(%ebp),%eax
4094fe:	50                   	push   %eax
4094ff:	51                   	push   %ecx
409500:	6a 07                	push   $0x7
409502:	5a                   	pop    %edx
409503:	8b cb                	mov    %ebx,%ecx
409505:	e8 5b eb ff ff       	call   0x408065
40950a:	85 c0                	test   %eax,%eax
40950c:	74 0a                	je     0x409518
40950e:	68 b4 27 40 00       	push   $0x4027b4
409513:	e9 2a 0d 00 00       	jmp    0x40a242
409518:	8b 7d d0             	mov    -0x30(%ebp),%edi
40951b:	8b 47 0c             	mov    0xc(%edi),%eax
40951e:	85 c0                	test   %eax,%eax
409520:	74 36                	je     0x409558
409522:	83 f8 04             	cmp    $0x4,%eax
409525:	74 0a                	je     0x409531
409527:	68 b4 27 40 00       	push   $0x4027b4
40952c:	e9 c7 fe ff ff       	jmp    0x4093f8
409531:	85 c0                	test   %eax,%eax
409533:	74 23                	je     0x409558
409535:	8b 4e 10             	mov    0x10(%esi),%ecx
409538:	ba 2c 32 40 00       	mov    $0x40322c,%edx
40953d:	e8 d2 dd ff ff       	call   0x407314
409542:	ff 37                	push   (%edi)
409544:	8b ce                	mov    %esi,%ecx
409546:	e8 48 ef ff ff       	call   0x408493
40954b:	8b 4e 10             	mov    0x10(%esi),%ecx
40954e:	ba 3c 32 40 00       	mov    $0x40323c,%edx
409553:	e8 bc dd ff ff       	call   0x407314
409558:	8d 45 d0             	lea    -0x30(%ebp),%eax
40955b:	50                   	push   %eax
40955c:	8d 45 bc             	lea    -0x44(%ebp),%eax
40955f:	50                   	push   %eax
409560:	51                   	push   %ecx
409561:	6a 08                	push   $0x8
409563:	5a                   	pop    %edx
409564:	8b cb                	mov    %ebx,%ecx
409566:	e8 fa ea ff ff       	call   0x408065
40956b:	85 c0                	test   %eax,%eax
40956d:	74 0a                	je     0x409579
40956f:	68 d0 27 40 00       	push   $0x4027d0