4042a5:	51                   	push   %ecx
4042a6:	53                   	push   %ebx
4042a7:	56                   	push   %esi
4042a8:	8b f1                	mov    %ecx,%esi
4042aa:	8b 46 20             	mov    0x20(%esi),%eax
4042ad:	57                   	push   %edi
4042ae:	8d 7e 40             	lea    0x40(%esi),%edi
4042b1:	33 db                	xor    %ebx,%ebx
4042b3:	39 38                	cmp    %edi,(%eax)
4042b5:	75 0f                	jne    0x4042c6
4042b7:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
4042bb:	75 09                	jne    0x4042c6
4042bd:	39 5e 3c             	cmp    %ebx,0x3c(%esi)
4042c0:	75 04                	jne    0x4042c6
4042c2:	83 6d 0c 02          	subl   $0x2,0xc(%ebp)
4042c6:	39 5e 4c             	cmp    %ebx,0x4c(%esi)
4042c9:	74 76                	je     0x404341
4042cb:	e8 ed fc ff ff       	call   0x403fbd
4042d0:	84 c0                	test   %al,%al
4042d2:	74 6d                	je     0x404341
4042d4:	39 5d 0c             	cmp    %ebx,0xc(%ebp)
4042d7:	75 06                	jne    0x4042df
4042d9:	83 7d 10 01          	cmpl   $0x1,0x10(%ebp)
4042dd:	74 15                	je     0x4042f4
4042df:	ff 75 10             	push   0x10(%ebp)
4042e2:	ff 75 0c             	push   0xc(%ebp)
4042e5:	ff 76 4c             	push   0x4c(%esi)
4042e8:	e8 61 42 00 00       	call   0x40854e
4042ed:	83 c4 0c             	add    $0xc,%esp
4042f0:	85 c0                	test   %eax,%eax
4042f2:	75 4d                	jne    0x404341
4042f4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4042f7:	50                   	push   %eax
4042f8:	ff 76 4c             	push   0x4c(%esi)
4042fb:	e8 5c 41 00 00       	call   0x40845c
404300:	85 c0                	test   %eax,%eax
404302:	59                   	pop    %ecx
404303:	59                   	pop    %ecx
404304:	75 3b                	jne    0x404341
404306:	8b 46 20             	mov    0x20(%esi),%eax
404309:	39 38                	cmp    %edi,(%eax)
40430b:	75 1b                	jne    0x404328
40430d:	8b 4e 10             	mov    0x10(%esi),%ecx
404310:	89 39                	mov    %edi,(%ecx)
404312:	8b 4e 20             	mov    0x20(%esi),%ecx
404315:	8d 46 42             	lea    0x42(%esi),%eax
404318:	89 01                	mov    %eax,(%ecx)
40431a:	8b ce                	mov    %esi,%ecx
40431c:	2b c8                	sub    %eax,%ecx
40431e:	8b 46 30             	mov    0x30(%esi),%eax
404321:	83 c1 42             	add    $0x42,%ecx
404324:	d1 f9                	sar    $1,%ecx
404326:	89 08                	mov    %ecx,(%eax)
404328:	8b 45 08             	mov    0x8(%ebp),%eax
40432b:	8b 4d f8             	mov    -0x8(%ebp),%ecx
40432e:	89 48 08             	mov    %ecx,0x8(%eax)
404331:	8b 4d fc             	mov    -0x4(%ebp),%ecx
404334:	89 48 0c             	mov    %ecx,0xc(%eax)
404337:	8b 4e 44             	mov    0x44(%esi),%ecx
40433a:	89 18                	mov    %ebx,(%eax)
40433c:	89 48 10             	mov    %ecx,0x10(%eax)
40433f:	eb 14                	jmp    0x404355
404341:	8b 45 08             	mov    0x8(%ebp),%eax
404344:	8b 0d 10 76 41 00    	mov    0x417610,%ecx
40434a:	89 08                	mov    %ecx,(%eax)
40434c:	89 58 08             	mov    %ebx,0x8(%eax)
40434f:	89 58 0c             	mov    %ebx,0xc(%eax)
404352:	89 58 10             	mov    %ebx,0x10(%eax)
404355:	5f                   	pop    %edi
404356:	5e                   	pop    %esi
404357:	5b                   	pop    %ebx
404358:	c9                   	leave
404359:	c2 10 00             	ret    $0x10
40435c:	55                   	push   %ebp
40435d:	8b ec                	mov    %esp,%ebp
40435f:	51                   	push   %ecx
404360:	51                   	push   %ecx
404361:	8b 45 14             	mov    0x14(%ebp),%eax
404364:	56                   	push   %esi
404365:	57                   	push   %edi
404366:	8b f1                	mov    %ecx,%esi
404368:	89 45 f8             	mov    %eax,-0x8(%ebp)
40436b:	8b 45 18             	mov    0x18(%ebp),%eax
40436e:	33 ff                	xor    %edi,%edi
404370:	39 7e 4c             	cmp    %edi,0x4c(%esi)
404373:	89 45 fc             	mov    %eax,-0x4(%ebp)
404376:	0f 84 8e 00 00 00    	je     0x40440a
40437c:	e8 3c fc ff ff       	call   0x403fbd
404381:	84 c0                	test   %al,%al
404383:	0f 84 81 00 00 00    	je     0x40440a
404389:	8d 45 f8             	lea    -0x8(%ebp),%eax
40438c:	50                   	push   %eax
40438d:	ff 76 4c             	push   0x4c(%esi)
404390:	e8 3e 42 00 00       	call   0x4085d3
404395:	85 c0                	test   %eax,%eax
404397:	59                   	pop    %ecx
404398:	59                   	pop    %ecx
404399:	75 6f                	jne    0x40440a
40439b:	39 7d 0c             	cmp    %edi,0xc(%ebp)
40439e:	74 14                	je     0x4043b4
4043a0:	6a 01                	push   $0x1
4043a2:	ff 75 0c             	push   0xc(%ebp)
4043a5:	ff 76 4c             	push   0x4c(%esi)
4043a8:	e8 a1 41 00 00       	call   0x40854e
4043ad:	83 c4 0c             	add    $0xc,%esp
4043b0:	85 c0                	test   %eax,%eax
4043b2:	75 56                	jne    0x40440a
4043b4:	8d 45 f8             	lea    -0x8(%ebp),%eax
4043b7:	50                   	push   %eax
4043b8:	ff 76 4c             	push   0x4c(%esi)
4043bb:	e8 9c 40 00 00       	call   0x40845c
4043c0:	85 c0                	test   %eax,%eax
4043c2:	59                   	pop    %ecx
4043c3:	59                   	pop    %ecx
4043c4:	75 44                	jne    0x40440a
4043c6:	8b 45 1c             	mov    0x1c(%ebp),%eax
4043c9:	89 46 44             	mov    %eax,0x44(%esi)
4043cc:	8b 46 20             	mov    0x20(%esi),%eax
4043cf:	8d 4e 40             	lea    0x40(%esi),%ecx
4043d2:	39 08                	cmp    %ecx,(%eax)
4043d4:	75 1b                	jne    0x4043f1
4043d6:	8b 56 10             	mov    0x10(%esi),%edx
4043d9:	89 0a                	mov    %ecx,(%edx)
4043db:	8b 4e 20             	mov    0x20(%esi),%ecx
4043de:	8d 46 42             	lea    0x42(%esi),%eax
4043e1:	89 01                	mov    %eax,(%ecx)
4043e3:	8b ce                	mov    %esi,%ecx
4043e5:	2b c8                	sub    %eax,%ecx
4043e7:	8b 46 30             	mov    0x30(%esi),%eax
4043ea:	83 c1 42             	add    $0x42,%ecx
4043ed:	d1 f9                	sar    $1,%ecx
4043ef:	89 08                	mov    %ecx,(%eax)
4043f1:	8b 45 08             	mov    0x8(%ebp),%eax
4043f4:	8b 4d f8             	mov    -0x8(%ebp),%ecx
4043f7:	89 48 08             	mov    %ecx,0x8(%eax)
4043fa:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4043fd:	89 48 0c             	mov    %ecx,0xc(%eax)
404400:	8b 4e 44             	mov    0x44(%esi),%ecx
404403:	89 38                	mov    %edi,(%eax)
404405:	89 48 10             	mov    %ecx,0x10(%eax)
404408:	eb 14                	jmp    0x40441e
40440a:	8b 45 08             	mov    0x8(%ebp),%eax
40440d:	8b 0d 10 76 41 00    	mov    0x417610,%ecx
404413:	89 08                	mov    %ecx,(%eax)
404415:	89 78 08             	mov    %edi,0x8(%eax)
404418:	89 78 0c             	mov    %edi,0xc(%eax)
40441b:	89 78 10             	mov    %edi,0x10(%eax)
40441e:	5f                   	pop    %edi
40441f:	5e                   	pop    %esi
404420:	c9                   	leave
404421:	c2 20 00             	ret    $0x20
404424:	56                   	push   %esi
404425:	8b f1                	mov    %ecx,%esi
404427:	83 7e 4c 00          	cmpl   $0x0,0x4c(%esi)
40442b:	57                   	push   %edi
40442c:	8b fe                	mov    %esi,%edi
40442e:	74 18                	je     0x404448
404430:	e8 88 fb ff ff       	call   0x403fbd
404435:	84 c0                	test   %al,%al
404437:	75 02                	jne    0x40443b
404439:	33 ff                	xor    %edi,%edi
40443b:	ff 76 4c             	push   0x4c(%esi)
40443e:	e8 45 42 00 00       	call   0x408688
404443:	85 c0                	test   %eax,%eax
404445:	59                   	pop    %ecx
404446:	74 02                	je     0x40444a
404448:	33 ff                	xor    %edi,%edi
40444a:	6a 02                	push   $0x2
40444c:	6a 00                	push   $0x0
40444e:	8b ce                	mov    %esi,%ecx
404450:	e8 3e f6 ff ff       	call   0x403a93
404455:	8b c7                	mov    %edi,%eax
404457:	5f                   	pop    %edi
404458:	5e                   	pop    %esi
404459:	c3                   	ret
40445a:	6a 48                	push   $0x48
40445c:	b8 47 5d 41 00       	mov    $0x415d47,%eax
404461:	e8 85 23 00 00       	call   0x4067eb
404466:	8b f1                	mov    %ecx,%esi
404468:	89 75 f0             	mov    %esi,-0x10(%ebp)
40446b:	6a 00                	push   $0x0
40446d:	e8 04 0b 00 00       	call   0x404f76
404472:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
404476:	8d 4e 04             	lea    0x4(%esi),%ecx
404479:	e8 43 f6 ff ff       	call   0x403ac1
40447e:	8d 4e 20             	lea    0x20(%esi),%ecx
404481:	e8 3b f6 ff ff       	call   0x403ac1
404486:	8d 4e 3c             	lea    0x3c(%esi),%ecx
404489:	e8 33 f6 ff ff       	call   0x403ac1
40448e:	8d 4e 58             	lea    0x58(%esi),%ecx
404491:	e8 2b f6 ff ff       	call   0x403ac1
404496:	83 7d 08 00          	cmpl   $0x0,0x8(%ebp)
40449a:	c6 45 fc 04          	movb   $0x4,-0x4(%ebp)
40449e:	75 2b                	jne    0x4044cb
4044a0:	68 78 75 41 00       	push   $0x417578
4044a5:	8d 4d d4             	lea    -0x2c(%ebp),%ecx
4044a8:	e8 73 df ff ff       	call   0x402420
4044ad:	8d 45 d4             	lea    -0x2c(%ebp),%eax
4044b0:	50                   	push   %eax
4044b1:	8d 4d ac             	lea    -0x54(%ebp),%ecx
4044b4:	c6 45 fc 05          	movb   $0x5,-0x4(%ebp)
4044b8:	e8 a3 de ff ff       	call   0x402360
4044bd:	68 54 a5 41 00       	push   $0x41a554
4044c2:	8d 45 ac             	lea    -0x54(%ebp),%eax
4044c5:	50                   	push   %eax
4044c6:	e8 77 1b 00 00       	call   0x406042
4044cb:	ff 75 08             	push   0x8(%ebp)
4044ce:	56                   	push   %esi
4044cf:	e8 96 0d 00 00       	call   0x40526a
4044d4:	59                   	pop    %ecx
4044d5:	59                   	pop    %ecx
4044d6:	8b c6                	mov    %esi,%eax
4044d8:	e8 ad 23 00 00       	call   0x40688a
4044dd:	c2 04 00             	ret    $0x4
4044e0:	6a 7c                	push   $0x7c
4044e2:	b8 6d 5d 41 00       	mov    $0x415d6d,%eax
4044e7:	e8 68 23 00 00       	call   0x406854
4044ec:	8b 45 08             	mov    0x8(%ebp),%eax
4044ef:	8b f1                	mov    %ecx,%esi
4044f1:	89 b5 78 ff ff ff    	mov    %esi,-0x88(%ebp)
4044f7:	89 46 04             	mov    %eax,0x4(%esi)
4044fa:	83 65 fc 00          	andl   $0x0,-0x4(%ebp)
4044fe:	68 ac 75 41 00       	push   $0x4175ac
404503:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
404509:	c7 06 8c 75 41 00    	movl   $0x41758c,(%esi)
40450f:	e8 46 ff ff ff       	call   0x40445a
404514:	e8 f1 09 00 00       	call   0x404f0a
404519:	8d 8d 7c ff ff ff    	lea    -0x84(%ebp),%ecx
40451f:	89 46 08             	mov    %eax,0x8(%esi)
404522:	89 56 0c             	mov    %edx,0xc(%esi)
404525:	e8 d2 f7 ff ff       	call   0x403cfc
40452a:	8b c6                	mov    %esi,%eax
40452c:	e8 6d 23 00 00       	call   0x40689e
404531:	c2 04 00             	ret    $0x4
404534:	55                   	push   %ebp
404535:	8b ec                	mov    %esp,%ebp
404537:	51                   	push   %ecx
404538:	8b 45 0c             	mov    0xc(%ebp),%eax
40453b:	53                   	push   %ebx
40453c:	8b 5d 10             	mov    0x10(%ebp),%ebx
40453f:	56                   	push   %esi
404540:	8b 75 14             	mov    0x14(%ebp),%esi
404543:	89 06                	mov    %eax,(%esi)
404545:	8b 45 18             	mov    0x18(%ebp),%eax
404548:	57                   	push   %edi
404549:	8b 7d 20             	mov    0x20(%ebp),%edi
40454c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40454f:	33 c9                	xor    %ecx,%ecx
404551:	89 07                	mov    %eax,(%edi)
404553:	8b 06                	mov    (%esi),%eax
404555:	3b c3                	cmp    %ebx,%eax
404557:	0f 95 c1             	setne  %cl
40455a:	3b c3                	cmp    %ebx,%eax
40455c:	89 4d 14             	mov    %ecx,0x14(%ebp)
40455f:	74 5d                	je     0x4045be
404561:	8b 0f                	mov    (%edi),%ecx
404563:	3b 4d 1c             	cmp    0x1c(%ebp),%ecx
404566:	74 56                	je     0x4045be
404568:	8b 55 fc             	mov    -0x4(%ebp),%edx
40456b:	8b 06                	mov    (%esi),%eax
40456d:	83 c2 08             	add    $0x8,%edx
404570:	52                   	push   %edx
404571:	ff 75 08             	push   0x8(%ebp)
404574:	8b d3                	mov    %ebx,%edx
404576:	2b d0                	sub    %eax,%edx
404578:	52                   	push   %edx
404579:	50                   	push   %eax
40457a:	51                   	push   %ecx
40457b:	e8 92 0f 00 00       	call   0x405512
404580:	83 c4 14             	add    $0x14,%esp
404583:	83 f8 fe             	cmp    $0xfffffffe,%eax
404586:	74 34                	je     0x4045bc
404588:	83 f8 ff             	cmp    $0xffffffff,%eax
40458b:	74 2a                	je     0x4045b7
40458d:	85 c0                	test   %eax,%eax
40458f:	75 10                	jne    0x4045a1
404591:	8b 0f                	mov    (%edi),%ecx
404593:	66 39 01             	cmp    %ax,(%ecx)
404596:	75 10                	jne    0x4045a8
404598:	ff 36                	push   (%esi)
40459a:	e8 c1 21 00 00       	call   0x406760
40459f:	59                   	pop    %ecx
4045a0:	40                   	inc    %eax
4045a1:	83 f8 fd             	cmp    $0xfffffffd,%eax
4045a4:	75 02                	jne    0x4045a8
4045a6:	33 c0                	xor    %eax,%eax
4045a8:	01 06                	add    %eax,(%esi)
4045aa:	83 07 02             	addl   $0x2,(%edi)
4045ad:	83 65 14 00          	andl   $0x0,0x14(%ebp)
4045b1:	39 1e                	cmp    %ebx,(%esi)
4045b3:	75 ac                	jne    0x404561
4045b5:	eb 07                	jmp    0x4045be
4045b7:	6a 02                	push   $0x2
4045b9:	58                   	pop    %eax
4045ba:	eb 05                	jmp    0x4045c1
4045bc:	89 1e                	mov    %ebx,(%esi)
4045be:	8b 45 14             	mov    0x14(%ebp),%eax
4045c1:	5f                   	pop    %edi
4045c2:	5e                   	pop    %esi
4045c3:	5b                   	pop    %ebx
4045c4:	c9                   	leave
4045c5:	c2 1c 00             	ret    $0x1c
4045c8:	55                   	push   %ebp
4045c9:	8b ec                	mov    %esp,%ebp
4045cb:	83 ec 20             	sub    $0x20,%esp
4045ce:	a1 20 c5 41 00       	mov    0x41c520,%eax
4045d3:	33 c5                	xor    %ebp,%eax
4045d5:	89 45 fc             	mov    %eax,-0x4(%ebp)
4045d8:	8b 45 1c             	mov    0x1c(%ebp),%eax
4045db:	53                   	push   %ebx
4045dc:	8b 5d 08             	mov    0x8(%ebp),%ebx
4045df:	89 45 ec             	mov    %eax,-0x14(%ebp)
4045e2:	8b 45 0c             	mov    0xc(%ebp),%eax
4045e5:	56                   	push   %esi
4045e6:	8b 75 14             	mov    0x14(%ebp),%esi
4045e9:	89 06                	mov    %eax,(%esi)
4045eb:	8b 45 18             	mov    0x18(%ebp),%eax
4045ee:	57                   	push   %edi
4045ef:	8b 7d 20             	mov    0x20(%ebp),%edi
4045f2:	33 d2                	xor    %edx,%edx
4045f4:	89 07                	mov    %eax,(%edi)
4045f6:	8b 06                	mov    (%esi),%eax
4045f8:	3b 45 10             	cmp    0x10(%ebp),%eax
4045fb:	89 4d e0             	mov    %ecx,-0x20(%ebp)
4045fe:	0f 95 c2             	setne  %dl
404601:	3b 45 10             	cmp    0x10(%ebp),%eax
404604:	89 5d e8             	mov    %ebx,-0x18(%ebp)
404607:	89 55 f0             	mov    %edx,-0x10(%ebp)
40460a:	0f 84 96 00 00 00    	je     0x4046a6
404610:	eb 03                	jmp    0x404615
404612:	8b 4d e0             	mov    -0x20(%ebp),%ecx
404615:	8b 07                	mov    (%edi),%eax
404617:	3b 45 ec             	cmp    -0x14(%ebp),%eax
40461a:	0f 84 86 00 00 00    	je     0x4046a6
404620:	8b 55 ec             	mov    -0x14(%ebp),%edx
404623:	83 c1 08             	add    $0x8,%ecx
404626:	2b d0                	sub    %eax,%edx
404628:	83 fa 05             	cmp    $0x5,%edx
40462b:	51                   	push   %ecx
40462c:	53                   	push   %ebx
40462d:	7c 1a                	jl     0x404649
40462f:	8b 0e                	mov    (%esi),%ecx
404631:	0f b7 09             	movzwl (%ecx),%ecx
404634:	51                   	push   %ecx
404635:	50                   	push   %eax
404636:	e8 4e 08 00 00       	call   0x404e89
40463b:	83 c4 10             	add    $0x10,%esp
40463e:	85 c0                	test   %eax,%eax
404640:	7c 57                	jl     0x404699
404642:	83 06 02             	addl   $0x2,(%esi)