40237b:	ff 75 0c             	push   0xc(%ebp)
40237e:	57                   	push   %edi
40237f:	e8 ec fe ff ff       	call   0x402270
402384:	85 c0                	test   %eax,%eax
402386:	74 03                	je     0x40238b
402388:	33 db                	xor    %ebx,%ebx
40238a:	43                   	inc    %ebx
40238b:	83 ff ff             	cmp    $0xffffffff,%edi
40238e:	74 06                	je     0x402396
402390:	57                   	push   %edi
402391:	e8 ea fa ff ff       	call   0x401e80
402396:	5f                   	pop    %edi
402397:	5e                   	pop    %esi
402398:	8b c3                	mov    %ebx,%eax
40239a:	5b                   	pop    %ebx
40239b:	5d                   	pop    %ebp
40239c:	c2 08 00             	ret    $0x8
40239f:	33 c0                	xor    %eax,%eax
4023a1:	85 ff                	test   %edi,%edi
4023a3:	74 1a                	je     0x4023bf
4023a5:	56                   	push   %esi
4023a6:	50                   	push   %eax
4023a7:	57                   	push   %edi
4023a8:	ff 15 e4 40 40 00    	call   *0x4040e4
4023ae:	8b 35 54 40 40 00    	mov    0x404054,%esi
4023b4:	57                   	push   %edi
4023b5:	ff d6                	call   *%esi
4023b7:	85 c0                	test   %eax,%eax
4023b9:	75 03                	jne    0x4023be
4023bb:	57                   	push   %edi
4023bc:	ff d6                	call   *%esi
4023be:	5e                   	pop    %esi
4023bf:	c3                   	ret
4023c0:	55                   	push   %ebp
4023c1:	8b ec                	mov    %esp,%ebp
4023c3:	81 ec 54 04 00 00    	sub    $0x454,%esp
4023c9:	53                   	push   %ebx
4023ca:	56                   	push   %esi
4023cb:	57                   	push   %edi
4023cc:	6a 00                	push   $0x0
4023ce:	ff 15 80 40 40 00    	call   *0x404080
4023d4:	be 04 01 00 00       	mov    $0x104,%esi
4023d9:	56                   	push   %esi
4023da:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
4023e0:	50                   	push   %eax
4023e1:	6a 00                	push   $0x0
4023e3:	ff 15 90 40 40 00    	call   *0x404090
4023e9:	8d 85 b4 fd ff ff    	lea    -0x24c(%ebp),%eax
4023ef:	50                   	push   %eax
4023f0:	ff 15 18 41 40 00    	call   *0x404118
4023f6:	85 c0                	test   %eax,%eax
4023f8:	0f 84 23 02 00 00    	je     0x402621
4023fe:	6a 08                	push   $0x8
402400:	58                   	pop    %eax
402401:	e8 d0 0c 00 00       	call   0x4030d6
402406:	8b c4                	mov    %esp,%eax
402408:	89 45 f8             	mov    %eax,-0x8(%ebp)
40240b:	85 c0                	test   %eax,%eax
40240d:	74 11                	je     0x402420
40240f:	68 99 00 00 00       	push   $0x99
402414:	6a 04                	push   $0x4
402416:	ba 34 54 40 00       	mov    $0x405434,%edx
40241b:	e8 3d 05 00 00       	call   0x40295d
402420:	6a 1c                	push   $0x1c
402422:	58                   	pop    %eax
402423:	e8 ae 0c 00 00       	call   0x4030d6
402428:	8b fc                	mov    %esp,%edi
40242a:	85 ff                	test   %edi,%edi
40242c:	74 13                	je     0x402441
40242e:	68 87 00 00 00       	push   $0x87
402433:	6a 1b                	push   $0x1b
402435:	8b c7                	mov    %edi,%eax
402437:	ba b0 51 40 00       	mov    $0x4051b0,%edx
40243c:	e8 1c 05 00 00       	call   0x40295d
402441:	6a 14                	push   $0x14
402443:	58                   	pop    %eax
402444:	e8 8d 0c 00 00       	call   0x4030d6
402449:	8b dc                	mov    %esp,%ebx
40244b:	85 db                	test   %ebx,%ebx
40244d:	74 13                	je     0x402462
40244f:	68 86 00 00 00       	push   $0x86
402454:	6a 13                	push   $0x13
402456:	8b c3                	mov    %ebx,%eax
402458:	ba cc 51 40 00       	mov    $0x4051cc,%edx
40245d:	e8 fb 04 00 00       	call   0x40295d
402462:	6a 08                	push   $0x8
402464:	58                   	pop    %eax
402465:	e8 6c 0c 00 00       	call   0x4030d6
40246a:	8b c4                	mov    %esp,%eax
40246c:	89 45 fc             	mov    %eax,-0x4(%ebp)
40246f:	85 c0                	test   %eax,%eax
402471:	74 11                	je     0x402484
402473:	68 89 00 00 00       	push   $0x89
402478:	6a 04                	push   $0x4
40247a:	ba dc 57 40 00       	mov    $0x4057dc,%edx
40247f:	e8 d9 04 00 00       	call   0x40295d
402484:	6a 08                	push   $0x8
402486:	58                   	pop    %eax
402487:	e8 4a 0c 00 00       	call   0x4030d6
40248c:	8b c4                	mov    %esp,%eax
40248e:	85 c0                	test   %eax,%eax
402490:	74 11                	je     0x4024a3
402492:	68 8f 00 00 00       	push   $0x8f
402497:	6a 06                	push   $0x6
402499:	ba e0 58 40 00       	mov    $0x4058e0,%edx
40249e:	e8 ba 04 00 00       	call   0x40295d
4024a3:	8d 8d b4 fd ff ff    	lea    -0x24c(%ebp),%ecx
4024a9:	51                   	push   %ecx
4024aa:	50                   	push   %eax
4024ab:	8d 85 ac fb ff ff    	lea    -0x454(%ebp),%eax
4024b1:	56                   	push   %esi
4024b2:	50                   	push   %eax
4024b3:	ff 15 88 41 40 00    	call   *0x404188
4024b9:	8d 8d b8 fe ff ff    	lea    -0x148(%ebp),%ecx
4024bf:	83 c4 10             	add    $0x10,%esp
4024c2:	8b c7                	mov    %edi,%eax
4024c4:	2b cf                	sub    %edi,%ecx
4024c6:	8a 10                	mov    (%eax),%dl
4024c8:	88 14 01             	mov    %dl,(%ecx,%eax,1)
4024cb:	40                   	inc    %eax
4024cc:	84 d2                	test   %dl,%dl
4024ce:	75 f6                	jne    0x4024c6
4024d0:	6a 0a                	push   $0xa
4024d2:	e8 6f 06 00 00       	call   0x402b46
4024d7:	83 c0 0a             	add    $0xa,%eax
4024da:	50                   	push   %eax
4024db:	e8 3d 05 00 00       	call   0x402a1d
4024e0:	8b d0                	mov    %eax,%edx
4024e2:	8a 08                	mov    (%eax),%cl
4024e4:	40                   	inc    %eax
4024e5:	84 c9                	test   %cl,%cl
4024e7:	75 f9                	jne    0x4024e2
4024e9:	8d bd b8 fe ff ff    	lea    -0x148(%ebp),%edi
4024ef:	2b c2                	sub    %edx,%eax
4024f1:	4f                   	dec    %edi
4024f2:	8a 4f 01             	mov    0x1(%edi),%cl
4024f5:	47                   	inc    %edi
4024f6:	84 c9                	test   %cl,%cl
4024f8:	75 f8                	jne    0x4024f2
4024fa:	8b c8                	mov    %eax,%ecx
4024fc:	c1 e9 02             	shr    $0x2,%ecx
4024ff:	8b f2                	mov    %edx,%esi
402501:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402503:	8b c8                	mov    %eax,%ecx
402505:	83 e1 03             	and    $0x3,%ecx
402508:	8b c3                	mov    %ebx,%eax
40250a:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
40250c:	8b c8                	mov    %eax,%ecx
40250e:	8a 10                	mov    (%eax),%dl
402510:	40                   	inc    %eax
402511:	84 d2                	test   %dl,%dl
402513:	75 f9                	jne    0x40250e
402515:	8d bd b8 fe ff ff    	lea    -0x148(%ebp),%edi
40251b:	2b c1                	sub    %ecx,%eax
40251d:	8b f1                	mov    %ecx,%esi
40251f:	4f                   	dec    %edi
402520:	8a 4f 01             	mov    0x1(%edi),%cl
402523:	47                   	inc    %edi
402524:	84 c9                	test   %cl,%cl
402526:	75 f8                	jne    0x402520
402528:	8b c8                	mov    %eax,%ecx
40252a:	c1 e9 02             	shr    $0x2,%ecx
40252d:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
40252f:	8b c8                	mov    %eax,%ecx
402531:	83 e1 03             	and    $0x3,%ecx
402534:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
402536:	e8 6e 01 00 00       	call   0x4026a9
40253b:	8b d8                	mov    %eax,%ebx
40253d:	85 db                	test   %ebx,%ebx
40253f:	0f 84 dc 00 00 00    	je     0x402621
402545:	8b 45 f8             	mov    -0x8(%ebp),%eax
402548:	8b d0                	mov    %eax,%edx
40254a:	8a 08                	mov    (%eax),%cl
40254c:	40                   	inc    %eax
40254d:	84 c9                	test   %cl,%cl
40254f:	75 f9                	jne    0x40254a
402551:	2b c2                	sub    %edx,%eax
402553:	8d 7b ff             	lea    -0x1(%ebx),%edi
402556:	8a 4f 01             	mov    0x1(%edi),%cl
402559:	47                   	inc    %edi
40255a:	84 c9                	test   %cl,%cl
40255c:	75 f8                	jne    0x402556
40255e:	8b c8                	mov    %eax,%ecx
402560:	c1 e9 02             	shr    $0x2,%ecx
402563:	8b f2                	mov    %edx,%esi
402565:	f3 a5                	rep movsl %ds:(%esi),%es:(%edi)
402567:	8b c8                	mov    %eax,%ecx
402569:	83 e1 03             	and    $0x3,%ecx
40256c:	8d 85 b8 fe ff ff    	lea    -0x148(%ebp),%eax
402572:	f3 a4                	rep movsb %ds:(%esi),%es:(%edi)
402574:	8d 48 01             	lea    0x1(%eax),%ecx
402577:	8a 10                	mov    (%eax),%dl
402579:	40                   	inc    %eax
40257a:	84 d2                	test   %dl,%dl
40257c:	75 f9                	jne    0x402577
40257e:	2b c1                	sub    %ecx,%eax
402580:	8d 8d b8 fe ff ff    	lea    -0x148(%ebp),%ecx
402586:	51                   	push   %ecx
402587:	53                   	push   %ebx
402588:	e8 b3 fd ff ff       	call   0x402340
40258d:	85 c0                	test   %eax,%eax
40258f:	0f 84 85 00 00 00    	je     0x40261a
402595:	8d 95 b0 fc ff ff    	lea    -0x350(%ebp),%edx
40259b:	8b c3                	mov    %ebx,%eax
40259d:	2b d3                	sub    %ebx,%edx
40259f:	8a 08                	mov    (%eax),%cl
4025a1:	88 0c 02             	mov    %cl,(%edx,%eax,1)
4025a4:	40                   	inc    %eax
4025a5:	84 c9                	test   %cl,%cl
4025a7:	75 f6                	jne    0x40259f
4025a9:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4025ac:	33 c0                	xor    %eax,%eax
4025ae:	89 4d c8             	mov    %ecx,-0x38(%ebp)
4025b1:	8d 8d b0 fc ff ff    	lea    -0x350(%ebp),%ecx
4025b7:	89 45 c4             	mov    %eax,-0x3c(%ebp)
4025ba:	89 45 d4             	mov    %eax,-0x2c(%ebp)
4025bd:	89 45 d8             	mov    %eax,-0x28(%ebp)
4025c0:	89 4d cc             	mov    %ecx,-0x34(%ebp)
4025c3:	8d 45 bc             	lea    -0x44(%ebp),%eax
4025c6:	8d 8d ac fb ff ff    	lea    -0x454(%ebp),%ecx
4025cc:	50                   	push   %eax
4025cd:	c7 45 bc 3c 00 00 00 	movl   $0x3c,-0x44(%ebp)
4025d4:	89 4d d0             	mov    %ecx,-0x30(%ebp)
4025d7:	c7 45 c0 40 00 80 00 	movl   $0x800040,-0x40(%ebp)
4025de:	ff 15 fc 40 40 00    	call   *0x4040fc
4025e4:	85 c0                	test   %eax,%eax
4025e6:	74 32                	je     0x40261a
4025e8:	8b 35 c8 40 40 00    	mov    0x4040c8,%esi
4025ee:	6a 40                	push   $0x40
4025f0:	ff 75 f4             	push   -0xc(%ebp)
4025f3:	ff d6                	call   *%esi
4025f5:	ff 75 f4             	push   -0xc(%ebp)
4025f8:	e8 83 f8 ff ff       	call   0x401e80
4025fd:	68 00 01 00 00       	push   $0x100
402602:	ff 15 a4 40 40 00    	call   *0x4040a4
402608:	50                   	push   %eax
402609:	ff d6                	call   *%esi
40260b:	6a 0f                	push   $0xf
40260d:	ff 15 cc 40 40 00    	call   *0x4040cc
402613:	50                   	push   %eax
402614:	ff 15 d8 40 40 00    	call   *0x4040d8
40261a:	8b f3                	mov    %ebx,%esi
40261c:	e8 f1 04 00 00       	call   0x402b12
402621:	8d a5 a0 fb ff ff    	lea    -0x460(%ebp),%esp
402627:	5f                   	pop    %edi
402628:	5e                   	pop    %esi
402629:	5b                   	pop    %ebx
40262a:	c9                   	leave
40262b:	c3                   	ret
40262c:	55                   	push   %ebp
40262d:	8b ec                	mov    %esp,%ebp
40262f:	81 ec 04 01 00 00    	sub    $0x104,%esp
402635:	53                   	push   %ebx
402636:	56                   	push   %esi
402637:	8b 35 18 41 40 00    	mov    0x404118,%esi
40263d:	57                   	push   %edi
40263e:	bf 08 a4 42 00       	mov    $0x42a408,%edi
402643:	57                   	push   %edi
402644:	33 db                	xor    %ebx,%ebx
402646:	ff d6                	call   *%esi
402648:	85 c0                	test   %eax,%eax
40264a:	74 50                	je     0x40269c
40264c:	6a 14                	push   $0x14
40264e:	58                   	pop    %eax
40264f:	e8 82 0a 00 00       	call   0x4030d6
402654:	8b c4                	mov    %esp,%eax
402656:	85 c0                	test   %eax,%eax
402658:	74 11                	je     0x40266b
40265a:	68 91 00 00 00       	push   $0x91
40265f:	6a 12                	push   $0x12
402661:	ba b0 59 40 00       	mov    $0x4059b0,%edx
402666:	e8 f2 02 00 00       	call   0x40295d
40266b:	57                   	push   %edi
40266c:	50                   	push   %eax
40266d:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402673:	68 04 01 00 00       	push   $0x104
402678:	50                   	push   %eax
402679:	ff 15 88 41 40 00    	call   *0x404188
40267f:	83 c4 10             	add    $0x10,%esp
402682:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402688:	50                   	push   %eax
402689:	ff d6                	call   *%esi
40268b:	85 c0                	test   %eax,%eax
40268d:	74 0d                	je     0x40269c
40268f:	8d bd fc fe ff ff    	lea    -0x104(%ebp),%edi
402695:	e8 05 fd ff ff       	call   0x40239f
40269a:	8b d8                	mov    %eax,%ebx
40269c:	8b c3                	mov    %ebx,%eax
40269e:	8d a5 f0 fe ff ff    	lea    -0x110(%ebp),%esp
4026a4:	5f                   	pop    %edi
4026a5:	5e                   	pop    %esi
4026a6:	5b                   	pop    %ebx
4026a7:	c9                   	leave
4026a8:	c3                   	ret
4026a9:	55                   	push   %ebp
4026aa:	8b ec                	mov    %esp,%ebp
4026ac:	81 ec 04 01 00 00    	sub    $0x104,%esp
4026b2:	53                   	push   %ebx
4026b3:	57                   	push   %edi
4026b4:	6a 03                	push   $0x3
4026b6:	33 ff                	xor    %edi,%edi
4026b8:	e8 89 04 00 00       	call   0x402b46
4026bd:	83 c0 03             	add    $0x3,%eax
4026c0:	50                   	push   %eax
4026c1:	e8 57 03 00 00       	call   0x402a1d
4026c6:	8b d8                	mov    %eax,%ebx
4026c8:	3b df                	cmp    %edi,%ebx
4026ca:	74 4a                	je     0x402716
4026cc:	56                   	push   %esi
4026cd:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
4026d3:	50                   	push   %eax
4026d4:	57                   	push   %edi
4026d5:	57                   	push   %edi
4026d6:	e8 4e 02 00 00       	call   0x402929
4026db:	50                   	push   %eax
4026dc:	57                   	push   %edi
4026dd:	ff 15 04 41 40 00    	call   *0x404104
4026e3:	85 c0                	test   %eax,%eax
4026e5:	78 27                	js     0x40270e
4026e7:	be 04 01 00 00       	mov    $0x104,%esi
4026ec:	e8 d2 03 00 00       	call   0x402ac3
4026f1:	8b f8                	mov    %eax,%edi
4026f3:	85 ff                	test   %edi,%edi
4026f5:	74 17                	je     0x40270e
4026f7:	57                   	push   %edi
4026f8:	6a ff                	push   $0xffffffff
4026fa:	e8 47 04 00 00       	call   0x402b46
4026ff:	50                   	push   %eax
402700:	53                   	push   %ebx
402701:	8d 85 fc fe ff ff    	lea    -0x104(%ebp),%eax
402707:	50                   	push   %eax
402708:	ff 15 e8 40 40 00    	call   *0x4040e8
40270e:	8b f3                	mov    %ebx,%esi
402710:	e8 fd 03 00 00       	call   0x402b12
402715:	5e                   	pop    %esi
402716:	8b c7                	mov    %edi,%eax
402718:	5f                   	pop    %edi
402719:	5b                   	pop    %ebx
40271a:	c9                   	leave
40271b:	c3                   	ret
40271c:	55                   	push   %ebp
40271d:	8b ec                	mov    %esp,%ebp
40271f:	81 ec 0c 02 00 00    	sub    $0x20c,%esp
402725:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
40272c:	85 db                	test   %ebx,%ebx
40272e:	74 71                	je     0x4027a1
402730:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
402734:	74 6b                	je     0x4027a1
402736:	56                   	push   %esi
402737:	8b 35 20 41 40 00    	mov    0x404120,%esi