40a128:	74 0e                	je     0x40a138
40a12a:	ff 45 e0             	incl   -0x20(%ebp)
40a12d:	83 c6 0c             	add    $0xc,%esi
40a130:	81 fe 14 7f 41 00    	cmp    $0x417f14,%esi
40a136:	7e d2                	jle    0x40a10a
40a138:	43                   	inc    %ebx
40a139:	68 ac 7f 41 00       	push   $0x417fac
40a13e:	53                   	push   %ebx
40a13f:	e8 6c 78 00 00       	call   0x4119b0
40a144:	8b f8                	mov    %eax,%edi
40a146:	33 f6                	xor    %esi,%esi
40a148:	3b fe                	cmp    %esi,%edi
40a14a:	59                   	pop    %ecx
40a14b:	59                   	pop    %ecx
40a14c:	75 05                	jne    0x40a153
40a14e:	80 3b 3b             	cmpb   $0x3b,(%ebx)
40a151:	75 62                	jne    0x40a1b5
40a153:	83 7d e0 05          	cmpl   $0x5,-0x20(%ebp)
40a157:	7f 3f                	jg     0x40a198
40a159:	57                   	push   %edi
40a15a:	53                   	push   %ebx
40a15b:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a15e:	68 83 00 00 00       	push   $0x83
40a163:	50                   	push   %eax
40a164:	e8 8d 78 00 00       	call   0x4119f6
40a169:	83 c4 10             	add    $0x10,%esp
40a16c:	85 c0                	test   %eax,%eax
40a16e:	74 0d                	je     0x40a17d
40a170:	56                   	push   %esi
40a171:	56                   	push   %esi
40a172:	56                   	push   %esi
40a173:	56                   	push   %esi
40a174:	56                   	push   %esi
40a175:	e8 da d3 ff ff       	call   0x407554
40a17a:	83 c4 14             	add    $0x14,%esp
40a17d:	ff 75 e0             	push   -0x20(%ebp)
40a180:	8b 75 dc             	mov    -0x24(%ebp),%esi
40a183:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a186:	c6 44 3d ec 00       	movb   $0x0,-0x14(%ebp,%edi,1)
40a18b:	e8 d8 fb ff ff       	call   0x409d68
40a190:	85 c0                	test   %eax,%eax
40a192:	59                   	pop    %ecx
40a193:	74 03                	je     0x40a198
40a195:	ff 45 e8             	incl   -0x18(%ebp)
40a198:	03 fb                	add    %ebx,%edi
40a19a:	80 3f 00             	cmpb   $0x0,(%edi)
40a19d:	74 0a                	je     0x40a1a9
40a19f:	47                   	inc    %edi
40a1a0:	80 3f 00             	cmpb   $0x0,(%edi)
40a1a3:	0f 85 28 ff ff ff    	jne    0x40a0d1
40a1a9:	33 c0                	xor    %eax,%eax
40a1ab:	39 45 e8             	cmp    %eax,-0x18(%ebp)
40a1ae:	74 6a                	je     0x40a21a
40a1b0:	8b 75 dc             	mov    -0x24(%ebp),%esi
40a1b3:	eb 60                	jmp    0x40a215
40a1b5:	33 c0                	xor    %eax,%eax
40a1b7:	eb 61                	jmp    0x40a21a
40a1b9:	53                   	push   %ebx
40a1ba:	53                   	push   %ebx
40a1bb:	53                   	push   %ebx
40a1bc:	68 83 00 00 00       	push   $0x83
40a1c1:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a1c4:	50                   	push   %eax
40a1c5:	51                   	push   %ecx
40a1c6:	e8 c9 f9 ff ff       	call   0x409b94
40a1cb:	83 c4 18             	add    $0x18,%esp
40a1ce:	3b c3                	cmp    %ebx,%eax
40a1d0:	74 48                	je     0x40a21a
40a1d2:	8d 7e 48             	lea    0x48(%esi),%edi
40a1d5:	85 db                	test   %ebx,%ebx
40a1d7:	74 27                	je     0x40a200
40a1d9:	ff 37                	push   (%edi)
40a1db:	8d 45 ec             	lea    -0x14(%ebp),%eax
40a1de:	50                   	push   %eax
40a1df:	e8 ac 0c 00 00       	call   0x40ae90
40a1e4:	85 c0                	test   %eax,%eax
40a1e6:	59                   	pop    %ecx
40a1e7:	59                   	pop    %ecx
40a1e8:	74 13                	je     0x40a1fd
40a1ea:	53                   	push   %ebx
40a1eb:	8d 4d ec             	lea    -0x14(%ebp),%ecx
40a1ee:	e8 75 fb ff ff       	call   0x409d68
40a1f3:	85 c0                	test   %eax,%eax
40a1f5:	59                   	pop    %ecx
40a1f6:	75 05                	jne    0x40a1fd
40a1f8:	21 45 e4             	and    %eax,-0x1c(%ebp)
40a1fb:	eb 03                	jmp    0x40a200
40a1fd:	ff 45 e8             	incl   -0x18(%ebp)
40a200:	43                   	inc    %ebx
40a201:	83 c7 10             	add    $0x10,%edi
40a204:	83 fb 05             	cmp    $0x5,%ebx
40a207:	7e cc                	jle    0x40a1d5
40a209:	33 c0                	xor    %eax,%eax
40a20b:	39 45 e4             	cmp    %eax,-0x1c(%ebp)
40a20e:	75 05                	jne    0x40a215
40a210:	39 45 e8             	cmp    %eax,-0x18(%ebp)
40a213:	74 05                	je     0x40a21a
40a215:	e8 09 f8 ff ff       	call   0x409a23
40a21a:	8b 4d 70             	mov    0x70(%ebp),%ecx
40a21d:	5f                   	pop    %edi
40a21e:	5e                   	pop    %esi
40a21f:	33 cd                	xor    %ebp,%ecx
40a221:	5b                   	pop    %ebx
40a222:	e8 0e bd ff ff       	call   0x405f35
40a227:	83 c5 74             	add    $0x74,%ebp
40a22a:	c9                   	leave
40a22b:	c3                   	ret
40a22c:	83 7c 24 04 05       	cmpl   $0x5,0x4(%esp)
40a231:	56                   	push   %esi
40a232:	57                   	push   %edi
40a233:	77 25                	ja     0x40a25a
40a235:	83 7c 24 10 00       	cmpl   $0x0,0x10(%esp)
40a23a:	74 1e                	je     0x40a25a
40a23c:	33 ff                	xor    %edi,%edi
40a23e:	47                   	inc    %edi
40a23f:	57                   	push   %edi
40a240:	6a 08                	push   $0x8
40a242:	e8 e5 f0 ff ff       	call   0x40932c
40a247:	8b f0                	mov    %eax,%esi
40a249:	85 f6                	test   %esi,%esi
40a24b:	59                   	pop    %ecx
40a24c:	59                   	pop    %ecx
40a24d:	75 10                	jne    0x40a25f
40a24f:	e8 a6 f1 ff ff       	call   0x4093fa
40a254:	c7 00 0c 00 00 00    	movl   $0xc,(%eax)
40a25a:	33 c0                	xor    %eax,%eax
40a25c:	5f                   	pop    %edi
40a25d:	5e                   	pop    %esi
40a25e:	c3                   	ret
40a25f:	57                   	push   %edi
40a260:	68 d8 00 00 00       	push   $0xd8
40a265:	e8 c2 f0 ff ff       	call   0x40932c
40a26a:	59                   	pop    %ecx
40a26b:	59                   	pop    %ecx
40a26c:	89 06                	mov    %eax,(%esi)
40a26e:	85 c0                	test   %eax,%eax
40a270:	75 09                	jne    0x40a27b
40a272:	56                   	push   %esi
40a273:	e8 db c1 ff ff       	call   0x406453
40a278:	59                   	pop    %ecx
40a279:	eb d4                	jmp    0x40a24f
40a27b:	57                   	push   %edi
40a27c:	68 20 02 00 00       	push   $0x220
40a281:	e8 a6 f0 ff ff       	call   0x40932c
40a286:	85 c0                	test   %eax,%eax
40a288:	59                   	pop    %ecx
40a289:	59                   	pop    %ecx
40a28a:	89 46 04             	mov    %eax,0x4(%esi)
40a28d:	75 10                	jne    0x40a29f
40a28f:	ff 36                	push   (%esi)
40a291:	e8 bd c1 ff ff       	call   0x406453
40a296:	56                   	push   %esi
40a297:	e8 b7 c1 ff ff       	call   0x406453
40a29c:	59                   	pop    %ecx
40a29d:	eb d9                	jmp    0x40a278
40a29f:	8b 06                	mov    (%esi),%eax
40a2a1:	b9 48 d1 41 00       	mov    $0x41d148,%ecx
40a2a6:	e8 e5 f3 ff ff       	call   0x409690
40a2ab:	ff 74 24 0c          	push   0xc(%esp)
40a2af:	8b 4c 24 14          	mov    0x14(%esp),%ecx
40a2b3:	8b 16                	mov    (%esi),%edx
40a2b5:	e8 a4 fd ff ff       	call   0x40a05e
40a2ba:	85 c0                	test   %eax,%eax
40a2bc:	59                   	pop    %ecx
40a2bd:	75 19                	jne    0x40a2d8
40a2bf:	ff 36                	push   (%esi)
40a2c1:	e8 3e f3 ff ff       	call   0x409604
40a2c6:	ff 36                	push   (%esi)
40a2c8:	e8 71 f1 ff ff       	call   0x40943e
40a2cd:	56                   	push   %esi
40a2ce:	e8 80 c1 ff ff       	call   0x406453
40a2d3:	83 c4 0c             	add    $0xc,%esp
40a2d6:	eb 32                	jmp    0x40a30a
40a2d8:	ff 76 04             	push   0x4(%esi)
40a2db:	8b 06                	mov    (%esi),%eax
40a2dd:	ff 70 04             	push   0x4(%eax)
40a2e0:	e8 06 5e 00 00       	call   0x4100eb
40a2e5:	85 c0                	test   %eax,%eax
40a2e7:	59                   	pop    %ecx
40a2e8:	59                   	pop    %ecx
40a2e9:	74 23                	je     0x40a30e
40a2eb:	ff 76 04             	push   0x4(%esi)
40a2ee:	e8 60 c1 ff ff       	call   0x406453
40a2f3:	ff 36                	push   (%esi)
40a2f5:	e8 0a f3 ff ff       	call   0x409604
40a2fa:	ff 36                	push   (%esi)
40a2fc:	e8 3d f1 ff ff       	call   0x40943e
40a301:	56                   	push   %esi
40a302:	e8 4c c1 ff ff       	call   0x406453
40a307:	83 c4 10             	add    $0x10,%esp
40a30a:	33 f6                	xor    %esi,%esi
40a30c:	eb 0a                	jmp    0x40a318
40a30e:	8b 46 04             	mov    0x4(%esi),%eax
40a311:	89 38                	mov    %edi,(%eax)
40a313:	8b 46 04             	mov    0x4(%esi),%eax
40a316:	89 38                	mov    %edi,(%eax)
40a318:	8b c6                	mov    %esi,%eax
40a31a:	e9 3d ff ff ff       	jmp    0x40a25c
40a31f:	6a 14                	push   $0x14
40a321:	68 98 ab 41 00       	push   $0x41ab98
40a326:	e8 1d 33 00 00       	call   0x40d648
40a32b:	33 db                	xor    %ebx,%ebx
40a32d:	89 5d e0             	mov    %ebx,-0x20(%ebp)
40a330:	83 7d 08 05          	cmpl   $0x5,0x8(%ebp)
40a334:	76 1f                	jbe    0x40a355
40a336:	e8 bf f0 ff ff       	call   0x4093fa
40a33b:	c7 00 16 00 00 00    	movl   $0x16,(%eax)
40a341:	53                   	push   %ebx
40a342:	53                   	push   %ebx
40a343:	53                   	push   %ebx
40a344:	53                   	push   %ebx
40a345:	53                   	push   %ebx
40a346:	e8 05 d3 ff ff       	call   0x407650
40a34b:	83 c4 14             	add    $0x14,%esp
40a34e:	33 c0                	xor    %eax,%eax
40a350:	e9 2c 01 00 00       	jmp    0x40a481
40a355:	e8 f2 21 00 00       	call   0x40c54c
40a35a:	8b f0                	mov    %eax,%esi
40a35c:	89 75 e4             	mov    %esi,-0x1c(%ebp)
40a35f:	e8 8e f3 ff ff       	call   0x4096f2
40a364:	83 4e 70 10          	orl    $0x10,0x70(%esi)
40a368:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a36b:	6a 01                	push   $0x1
40a36d:	68 d8 00 00 00       	push   $0xd8
40a372:	e8 b5 ef ff ff       	call   0x40932c
40a377:	59                   	pop    %ecx
40a378:	59                   	pop    %ecx
40a379:	8b f8                	mov    %eax,%edi
40a37b:	89 7d dc             	mov    %edi,-0x24(%ebp)
40a37e:	3b fb                	cmp    %ebx,%edi
40a380:	0f 84 ec 00 00 00    	je     0x40a472
40a386:	6a 0c                	push   $0xc
40a388:	e8 8a 27 00 00       	call   0x40cb17
40a38d:	59                   	pop    %ecx
40a38e:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40a395:	8b 4e 6c             	mov    0x6c(%esi),%ecx
40a398:	8b c7                	mov    %edi,%eax
40a39a:	e8 f1 f2 ff ff       	call   0x409690
40a39f:	89 5d fc             	mov    %ebx,-0x4(%ebp)
40a3a2:	e8 a6 00 00 00       	call   0x40a44d
40a3a7:	ff 75 08             	push   0x8(%ebp)
40a3aa:	8b 4d 0c             	mov    0xc(%ebp),%ecx
40a3ad:	8b d7                	mov    %edi,%edx
40a3af:	e8 aa fc ff ff       	call   0x40a05e
40a3b4:	59                   	pop    %ecx
40a3b5:	89 45 e0             	mov    %eax,-0x20(%ebp)
40a3b8:	3b c3                	cmp    %ebx,%eax
40a3ba:	0f 84 a4 00 00 00    	je     0x40a464
40a3c0:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
40a3c3:	74 1d                	je     0x40a3e2
40a3c5:	68 40 d1 41 00       	push   $0x41d140
40a3ca:	ff 75 0c             	push   0xc(%ebp)
40a3cd:	e8 be 0a 00 00       	call   0x40ae90
40a3d2:	59                   	pop    %ecx
40a3d3:	59                   	pop    %ecx
40a3d4:	85 c0                	test   %eax,%eax
40a3d6:	74 0a                	je     0x40a3e2
40a3d8:	c7 05 04 da 41 00 01 	movl   $0x1,0x41da04
40a3df:	00 00 00
40a3e2:	6a 0c                	push   $0xc
40a3e4:	e8 2e 27 00 00       	call   0x40cb17
40a3e9:	59                   	pop    %ecx
40a3ea:	c7 45 fc 02 00 00 00 	movl   $0x2,-0x4(%ebp)
40a3f1:	8d 5e 6c             	lea    0x6c(%esi),%ebx
40a3f4:	8b c3                	mov    %ebx,%eax
40a3f6:	e8 b9 f2 ff ff       	call   0x4096b4
40a3fb:	57                   	push   %edi
40a3fc:	e8 03 f2 ff ff       	call   0x409604
40a401:	59                   	pop    %ecx
40a402:	f6 46 70 02          	testb  $0x2,0x70(%esi)
40a406:	75 32                	jne    0x40a43a
40a408:	f6 05 38 d1 41 00 01 	testb  $0x1,0x41d138
40a40f:	75 29                	jne    0x40a43a
40a411:	8b 3b                	mov    (%ebx),%edi
40a413:	b8 20 d2 41 00       	mov    $0x41d220,%eax
40a418:	e8 97 f2 ff ff       	call   0x4096b4
40a41d:	6a 18                	push   $0x18
40a41f:	a1 20 d2 41 00       	mov    0x41d220,%eax
40a424:	83 c0 0c             	add    $0xc,%eax
40a427:	50                   	push   %eax
40a428:	68 40 e3 41 00       	push   $0x41e340
40a42d:	e8 9e b7 ff ff       	call   0x405bd0
40a432:	83 c4 0c             	add    $0xc,%esp
40a435:	e8 2e f3 ff ff       	call   0x409768
40a43a:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
40a43e:	e8 16 00 00 00       	call   0x40a459
40a443:	eb 2d                	jmp    0x40a472
40a445:	8b 7d dc             	mov    -0x24(%ebp),%edi
40a448:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40a44b:	33 db                	xor    %ebx,%ebx
40a44d:	6a 0c                	push   $0xc
40a44f:	e8 eb 25 00 00       	call   0x40ca3f
40a454:	59                   	pop    %ecx
40a455:	c3                   	ret
40a456:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40a459:	6a 0c                	push   $0xc
40a45b:	e8 df 25 00 00       	call   0x40ca3f
40a460:	59                   	pop    %ecx
40a461:	c3                   	ret
40a462:	eb 0e                	jmp    0x40a472
40a464:	57                   	push   %edi
40a465:	e8 9a f1 ff ff       	call   0x409604
40a46a:	57                   	push   %edi
40a46b:	e8 ce ef ff ff       	call   0x40943e
40a470:	59                   	pop    %ecx
40a471:	59                   	pop    %ecx
40a472:	c7 45 fc fe ff ff ff 	movl   $0xfffffffe,-0x4(%ebp)
40a479:	e8 0c 00 00 00       	call   0x40a48a
40a47e:	8b 45 e0             	mov    -0x20(%ebp),%eax
40a481:	e8 07 32 00 00       	call   0x40d68d
40a486:	c3                   	ret
40a487:	8b 75 e4             	mov    -0x1c(%ebp),%esi
40a48a:	83 66 70 ef          	andl   $0xffffffef,0x70(%esi)
40a48e:	c3                   	ret
40a48f:	55                   	push   %ebp
40a490:	8d ac 24 58 fd ff ff 	lea    -0x2a8(%esp),%ebp
40a497:	81 ec 28 03 00 00    	sub    $0x328,%esp
40a49d:	a1 20 c5 41 00       	mov    0x41c520,%eax
40a4a2:	33 c5                	xor    %ebp,%eax
40a4a4:	89 85 a4 02 00 00    	mov    %eax,0x2a4(%ebp)
40a4aa:	f6 05 64 c9 41 00 01 	testb  $0x1,0x41c964
40a4b1:	56                   	push   %esi
40a4b2:	74 08                	je     0x40a4bc
40a4b4:	6a 0a                	push   $0xa
40a4b6:	e8 93 36 00 00       	call   0x40db4e
40a4bb:	59                   	pop    %ecx
40a4bc:	e8 1c 95 00 00       	call   0x4139dd
40a4c1:	85 c0                	test   %eax,%eax
40a4c3:	74 08                	je     0x40a4cd
40a4c5:	6a 16                	push   $0x16
40a4c7:	e8 1e 95 00 00       	call   0x4139ea
40a4cc:	59                   	pop    %ecx
40a4cd:	f6 05 64 c9 41 00 02 	testb  $0x2,0x41c964
40a4d4:	0f 84 a0 00 00 00    	je     0x40a57a
40a4da:	89 85 88 00 00 00    	mov    %eax,0x88(%ebp)
40a4e0:	89 8d 84 00 00 00    	mov    %ecx,0x84(%ebp)
40a4e6:	89 95 80 00 00 00    	mov    %edx,0x80(%ebp)
40a4ec:	89 5d 7c             	mov    %ebx,0x7c(%ebp)
40a4ef:	89 75 78             	mov    %esi,0x78(%ebp)
40a4f2:	89 7d 74             	mov    %edi,0x74(%ebp)
40a4f5:	66 8c 95 a0 00 00 00 	data16 mov %ss,0xa0(%ebp)
40a4fc:	66 8c 8d 94 00 00 00 	data16 mov %cs,0x94(%ebp)
40a503:	66 8c 5d 70          	data16 mov %ds,0x70(%ebp)
40a507:	66 8c 45 6c          	data16 mov %es,0x6c(%ebp)
40a50b:	66 8c 65 68          	data16 mov %fs,0x68(%ebp)
40a50f:	66 8c 6d 64          	data16 mov %gs,0x64(%ebp)
40a513:	9c                   	pushf
40a514:	8f 85 98 00 00 00    	pop    0x98(%ebp)
40a51a:	8b b5 ac 02 00 00    	mov    0x2ac(%ebp),%esi
40a520:	8d 85 ac 02 00 00    	lea    0x2ac(%ebp),%eax