45945d:	8b 48 04             	mov    0x4(%eax),%ecx
459460:	03 cf                	add    %edi,%ecx
459462:	e8 e5 3a ff ff       	call   0x44cf4c
459467:	eb 0a                	jmp    0x459473
459469:	e8 b2 97 fb ff       	call   0x412c20
45946e:	89 5e 0c             	mov    %ebx,0xc(%esi)
459471:	89 1e                	mov    %ebx,(%esi)
459473:	5f                   	pop    %edi
459474:	5e                   	pop    %esi
459475:	33 c0                	xor    %eax,%eax
459477:	5b                   	pop    %ebx
459478:	5d                   	pop    %ebp
459479:	c2 08 00             	ret    $0x8
45947c:	55                   	push   %ebp
45947d:	8b ec                	mov    %esp,%ebp
45947f:	51                   	push   %ecx
459480:	51                   	push   %ecx
459481:	53                   	push   %ebx
459482:	56                   	push   %esi
459483:	57                   	push   %edi
459484:	8b 7d 0c             	mov    0xc(%ebp),%edi
459487:	6a 04                	push   $0x4
459489:	6a 01                	push   $0x1
45948b:	57                   	push   %edi
45948c:	8b f1                	mov    %ecx,%esi
45948e:	e8 bd 2b fc ff       	call   0x41c050
459493:	83 c4 0c             	add    $0xc,%esp
459496:	6a 11                	push   $0x11
459498:	6a 02                	push   $0x2
45949a:	6a 02                	push   $0x2
45949c:	ff 15 04 d8 48 00    	call   *0x48d804
4594a2:	8b d8                	mov    %eax,%ebx
4594a4:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4594a7:	83 fb ff             	cmp    $0xffffffff,%ebx
4594aa:	75 3b                	jne    0x4594e7
4594ac:	33 db                	xor    %ebx,%ebx
4594ae:	53                   	push   %ebx
4594af:	ff 15 f4 d7 48 00    	call   *0x48d7f4
4594b5:	50                   	push   %eax
4594b6:	8b 06                	mov    (%esi),%eax
4594b8:	8b 48 04             	mov    0x4(%eax),%ecx
4594bb:	03 ce                	add    %esi,%ecx
4594bd:	e8 8a 3a ff ff       	call   0x44cf4c
4594c2:	53                   	push   %ebx
4594c3:	6a 01                	push   $0x1
4594c5:	53                   	push   %ebx
4594c6:	57                   	push   %edi
4594c7:	e8 c4 86 fb ff       	call   0x411b90
4594cc:	8b f0                	mov    %eax,%esi
4594ce:	83 c4 10             	add    $0x10,%esp
4594d1:	8b ce                	mov    %esi,%ecx
4594d3:	e8 48 97 fb ff       	call   0x412c20
4594d8:	c7 46 0c 01 00 00 00 	movl   $0x1,0xc(%esi)
4594df:	83 0e ff             	orl    $0xffffffff,(%esi)
4594e2:	e9 cf 00 00 00       	jmp    0x4595b6
4594e7:	8b 45 08             	mov    0x8(%ebp),%eax
4594ea:	83 78 08 02          	cmpl   $0x2,0x8(%eax)
4594ee:	76 2e                	jbe    0x45951e
4594f0:	8b 40 04             	mov    0x4(%eax),%eax
4594f3:	8b 48 08             	mov    0x8(%eax),%ecx
4594f6:	e8 8b 3d fb ff       	call   0x40d286
4594fb:	a8 01                	test   $0x1,%al
4594fd:	74 1f                	je     0x45951e
4594ff:	6a 04                	push   $0x4
459501:	8d 45 fc             	lea    -0x4(%ebp),%eax
459504:	50                   	push   %eax
459505:	6a 20                	push   $0x20
459507:	68 ff ff 00 00       	push   $0xffff
45950c:	53                   	push   %ebx
45950d:	c7 45 fc 01 00 00 00 	movl   $0x1,-0x4(%ebp)
459514:	ff 15 bc d7 48 00    	call   *0x48d7bc
45951a:	85 c0                	test   %eax,%eax
45951c:	75 8e                	jne    0x4594ac
45951e:	33 db                	xor    %ebx,%ebx
459520:	53                   	push   %ebx
459521:	6a 01                	push   $0x1
459523:	53                   	push   %ebx
459524:	57                   	push   %edi
459525:	e8 66 86 fb ff       	call   0x411b90
45952a:	8b f0                	mov    %eax,%esi
45952c:	83 c4 10             	add    $0x10,%esp
45952f:	8b ce                	mov    %esi,%ecx
459531:	e8 ea 96 fb ff       	call   0x412c20
459536:	33 c0                	xor    %eax,%eax
459538:	40                   	inc    %eax
459539:	50                   	push   %eax
45953a:	50                   	push   %eax
45953b:	53                   	push   %ebx
45953c:	57                   	push   %edi
45953d:	89 46 0c             	mov    %eax,0xc(%esi)
459540:	c7 06 d1 94 b5 02    	movl   $0x2b594d1,(%esi)
459546:	e8 45 86 fb ff       	call   0x411b90
45954b:	8b f0                	mov    %eax,%esi
45954d:	83 c4 10             	add    $0x10,%esp
459550:	8b ce                	mov    %esi,%ecx
459552:	e8 c9 96 fb ff       	call   0x412c20
459557:	8b 45 f8             	mov    -0x8(%ebp),%eax
45955a:	33 c9                	xor    %ecx,%ecx
45955c:	41                   	inc    %ecx
45955d:	6a 02                	push   $0x2
45955f:	51                   	push   %ecx
459560:	53                   	push   %ebx
459561:	57                   	push   %edi
459562:	89 4e 0c             	mov    %ecx,0xc(%esi)
459565:	89 06                	mov    %eax,(%esi)
459567:	e8 24 86 fb ff       	call   0x411b90
45956c:	8b 4d 08             	mov    0x8(%ebp),%ecx
45956f:	83 c4 10             	add    $0x10,%esp
459572:	8b 49 04             	mov    0x4(%ecx),%ecx
459575:	8b f8                	mov    %eax,%edi
459577:	8b 31                	mov    (%ecx),%esi
459579:	8b ce                	mov    %esi,%ecx
45957b:	e8 ec fd fa ff       	call   0x40936c
459580:	ff 76 08             	push   0x8(%esi)
459583:	8b cf                	mov    %edi,%ecx
459585:	e8 de d5 fa ff       	call   0x406b68
45958a:	6a 03                	push   $0x3
45958c:	6a 01                	push   $0x1
45958e:	53                   	push   %ebx
45958f:	ff 75 0c             	push   0xc(%ebp)
459592:	e8 f9 85 fb ff       	call   0x411b90
459597:	8b f8                	mov    %eax,%edi
459599:	8b 45 08             	mov    0x8(%ebp),%eax
45959c:	83 c4 10             	add    $0x10,%esp
45959f:	8b 48 04             	mov    0x4(%eax),%ecx
4595a2:	8b 71 04             	mov    0x4(%ecx),%esi
4595a5:	8b ce                	mov    %esi,%ecx
4595a7:	e8 c0 fd fa ff       	call   0x40936c
4595ac:	ff 76 08             	push   0x8(%esi)
4595af:	8b cf                	mov    %edi,%ecx
4595b1:	e8 b2 d5 fa ff       	call   0x406b68
4595b6:	5f                   	pop    %edi
4595b7:	5e                   	pop    %esi
4595b8:	33 c0                	xor    %eax,%eax
4595ba:	5b                   	pop    %ebx
4595bb:	c9                   	leave
4595bc:	c2 08 00             	ret    $0x8
4595bf:	55                   	push   %ebp
4595c0:	8b ec                	mov    %esp,%ebp
4595c2:	83 e4 f8             	and    $0xfffffff8,%esp
4595c5:	81 ec 5c 01 00 00    	sub    $0x15c,%esp
4595cb:	53                   	push   %ebx
4595cc:	8b 5d 08             	mov    0x8(%ebp),%ebx
4595cf:	56                   	push   %esi
4595d0:	8b 43 04             	mov    0x4(%ebx),%eax
4595d3:	8b f1                	mov    %ecx,%esi
4595d5:	8b 48 04             	mov    0x4(%eax),%ecx
4595d8:	57                   	push   %edi
4595d9:	e8 a8 3c fb ff       	call   0x40d286
4595de:	8b 4d 0c             	mov    0xc(%ebp),%ecx
4595e1:	68 00 dc 49 00       	push   $0x49dc00
4595e6:	89 44 24 18          	mov    %eax,0x18(%esp)
4595ea:	e8 ca 37 fb ff       	call   0x40cdb9
4595ef:	8b 4b 04             	mov    0x4(%ebx),%ecx
4595f2:	6a 00                	push   $0x0
4595f4:	33 ff                	xor    %edi,%edi
4595f6:	47                   	inc    %edi
4595f7:	57                   	push   %edi
4595f8:	57                   	push   %edi
4595f9:	ff 31                	push   (%ecx)
4595fb:	e8 90 85 fb ff       	call   0x411b90
459600:	83 c4 10             	add    $0x10,%esp
459603:	85 c0                	test   %eax,%eax
459605:	75 15                	jne    0x45961c
459607:	6a 00                	push   $0x0
459609:	6a ff                	push   $0xffffffff
45960b:	8b 06                	mov    (%esi),%eax
45960d:	8b 48 04             	mov    0x4(%eax),%ecx
459610:	03 ce                	add    %esi,%ecx
459612:	e8 35 39 ff ff       	call   0x44cf4c
459617:	e9 70 02 00 00       	jmp    0x45988c
45961c:	8b c8                	mov    %eax,%ecx
45961e:	e8 63 3c fb ff       	call   0x40d286
459623:	3d d1 94 b5 02       	cmp    $0x2b594d1,%eax
459628:	74 06                	je     0x459630
45962a:	6a 00                	push   $0x0
45962c:	6a fe                	push   $0xfffffffe
45962e:	eb db                	jmp    0x45960b
459630:	8b 43 04             	mov    0x4(%ebx),%eax
459633:	57                   	push   %edi
459634:	57                   	push   %edi
459635:	57                   	push   %edi
459636:	ff 30                	push   (%eax)
459638:	e8 53 85 fb ff       	call   0x411b90
45963d:	83 c4 10             	add    $0x10,%esp
459640:	8b c8                	mov    %eax,%ecx
459642:	89 44 24 10          	mov    %eax,0x10(%esp)
459646:	e8 3b 3c fb ff       	call   0x40d286
45964b:	8b d8                	mov    %eax,%ebx
45964d:	33 c0                	xor    %eax,%eax
45964f:	66 89 44 24 40       	mov    %ax,0x40(%esp)
459654:	8d 7c 24 42          	lea    0x42(%esp),%edi
459658:	ab                   	stos   %eax,%es:(%edi)
459659:	ab                   	stos   %eax,%es:(%edi)
45965a:	ab                   	stos   %eax,%es:(%edi)
45965b:	66 ab                	stos   %ax,%es:(%edi)
45965d:	c7 44 24 20 10 00 00 	movl   $0x10,0x20(%esp)
459664:	00
459665:	83 fb ff             	cmp    $0xffffffff,%ebx
459668:	74 9d                	je     0x459607
45966a:	33 c9                	xor    %ecx,%ecx
45966c:	8d 44 24 38          	lea    0x38(%esp),%eax
459670:	50                   	push   %eax
459671:	51                   	push   %ecx
459672:	51                   	push   %ecx
459673:	8d 44 24 6c          	lea    0x6c(%esp),%eax
459677:	50                   	push   %eax
459678:	51                   	push   %ecx
459679:	89 4c 24 4c          	mov    %ecx,0x4c(%esp)
45967d:	c7 44 24 50 a0 86 01 	movl   $0x186a0,0x50(%esp)
459684:	00
459685:	89 5c 24 78          	mov    %ebx,0x78(%esp)
459689:	c7 44 24 74 01 00 00 	movl   $0x1,0x74(%esp)
459690:	00
459691:	ff 15 c8 d7 48 00    	call   *0x48d7c8
459697:	83 f8 ff             	cmp    $0xffffffff,%eax
45969a:	75 0e                	jne    0x4596aa
45969c:	6a 00                	push   $0x0
45969e:	ff 15 f4 d7 48 00    	call   *0x48d7f4
4596a4:	50                   	push   %eax
4596a5:	e9 61 ff ff ff       	jmp    0x45960b
4596aa:	8b 7c 24 14          	mov    0x14(%esp),%edi
4596ae:	8d 47 01             	lea    0x1(%edi),%eax
4596b1:	50                   	push   %eax
4596b2:	e8 33 5e fc ff       	call   0x41f4ea
4596b7:	59                   	pop    %ecx
4596b8:	50                   	push   %eax
4596b9:	8d 4c 24 1c          	lea    0x1c(%esp),%ecx
4596bd:	e8 f5 b0 fa ff       	call   0x4047b7
4596c2:	8d 44 24 60          	lea    0x60(%esp),%eax
4596c6:	50                   	push   %eax
4596c7:	53                   	push   %ebx
4596c8:	ff 15 b0 d7 48 00    	call   *0x48d7b0
4596ce:	85 c0                	test   %eax,%eax
4596d0:	0f 84 9d 01 00 00    	je     0x459873
4596d6:	8d 44 24 20          	lea    0x20(%esp),%eax
4596da:	50                   	push   %eax
4596db:	8d 44 24 44          	lea    0x44(%esp),%eax
4596df:	50                   	push   %eax
4596e0:	6a 00                	push   $0x0
4596e2:	57                   	push   %edi
4596e3:	8b 7c 24 28          	mov    0x28(%esp),%edi
4596e7:	57                   	push   %edi
4596e8:	53                   	push   %ebx
4596e9:	ff 15 c4 d7 48 00    	call   *0x48d7c4
4596ef:	8b d8                	mov    %eax,%ebx
4596f1:	83 fb ff             	cmp    $0xffffffff,%ebx
4596f4:	75 0e                	jne    0x459704
4596f6:	6a 00                	push   $0x0
4596f8:	ff 15 f4 d7 48 00    	call   *0x48d7f4
4596fe:	50                   	push   %eax
4596ff:	e9 73 01 00 00       	jmp    0x459877
459704:	8b 45 08             	mov    0x8(%ebp),%eax
459707:	33 f6                	xor    %esi,%esi
459709:	83 78 08 03          	cmpl   $0x3,0x8(%eax)
45970d:	0f 82 e8 00 00 00    	jb     0x4597fb
459713:	8b 40 04             	mov    0x4(%eax),%eax
459716:	8b 48 08             	mov    0x8(%eax),%ecx
459719:	e8 68 3b fb ff       	call   0x40d286
45971e:	8b 4d 08             	mov    0x8(%ebp),%ecx
459721:	83 e0 01             	and    $0x1,%eax
459724:	8b 49 04             	mov    0x4(%ecx),%ecx
459727:	89 44 24 24          	mov    %eax,0x24(%esp)
45972b:	8b 49 08             	mov    0x8(%ecx),%ecx
45972e:	e8 53 3b fb ff       	call   0x40d286
459733:	8b f0                	mov    %eax,%esi
459735:	83 e6 02             	and    $0x2,%esi
459738:	89 74 24 14          	mov    %esi,0x14(%esp)
45973c:	0f 84 a5 00 00 00    	je     0x4597e7
459742:	33 ff                	xor    %edi,%edi
459744:	6a 03                	push   $0x3
459746:	47                   	inc    %edi
459747:	57                   	push   %edi
459748:	ff 75 0c             	push   0xc(%ebp)
45974b:	e8 00 29 fc ff       	call   0x41c050
459750:	57                   	push   %edi
459751:	57                   	push   %edi
459752:	6a 00                	push   $0x0
459754:	ff 75 0c             	push   0xc(%ebp)
459757:	e8 34 84 fb ff       	call   0x411b90
45975c:	83 c4 1c             	add    $0x1c,%esp
45975f:	8b f0                	mov    %eax,%esi
459761:	ff 74 24 44          	push   0x44(%esp)
459765:	ff 15 f8 d7 48 00    	call   *0x48d7f8
45976b:	50                   	push   %eax
45976c:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
459770:	e8 8a 3b fe ff       	call   0x43d2ff
459775:	8d 44 24 50          	lea    0x50(%esp),%eax
459779:	50                   	push   %eax
45977a:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
45977e:	e8 30 12 00 00       	call   0x45a9b3
459783:	50                   	push   %eax
459784:	8b ce                	mov    %esi,%ecx
459786:	e8 dd d3 fa ff       	call   0x406b68
45978b:	8d 4c 24 50          	lea    0x50(%esp),%ecx
45978f:	e8 a3 33 fb ff       	call   0x40cb37
459794:	6a 02                	push   $0x2
459796:	57                   	push   %edi
459797:	6a 00                	push   $0x0
459799:	ff 75 0c             	push   0xc(%ebp)
45979c:	e8 ef 83 fb ff       	call   0x411b90
4597a1:	83 c4 10             	add    $0x10,%esp
4597a4:	8b f8                	mov    %eax,%edi
4597a6:	ff 74 24 42          	push   0x42(%esp)
4597aa:	ff 15 c0 d7 48 00    	call   *0x48d7c0
4597b0:	8b cf                	mov    %edi,%ecx
4597b2:	0f b7 f0             	movzwl %ax,%esi
4597b5:	e8 66 94 fb ff       	call   0x412c20
4597ba:	33 c0                	xor    %eax,%eax
4597bc:	40                   	inc    %eax
4597bd:	6a 00                	push   $0x0
4597bf:	50                   	push   %eax
4597c0:	6a 00                	push   $0x0
4597c2:	ff 75 0c             	push   0xc(%ebp)
4597c5:	89 47 0c             	mov    %eax,0xc(%edi)
4597c8:	89 37                	mov    %esi,(%edi)
4597ca:	e8 c1 83 fb ff       	call   0x411b90
4597cf:	83 c4 10             	add    $0x10,%esp
4597d2:	8d 4c 24 28          	lea    0x28(%esp),%ecx
4597d6:	89 44 24 10          	mov    %eax,0x10(%esp)
4597da:	e8 58 33 fb ff       	call   0x40cb37
4597df:	8b 7c 24 18          	mov    0x18(%esp),%edi
4597e3:	8b 74 24 14          	mov    0x14(%esp),%esi
4597e7:	83 7c 24 24 00       	cmpl   $0x0,0x24(%esp)
4597ec:	74 0d                	je     0x4597fb
4597ee:	53                   	push   %ebx
4597ef:	57                   	push   %edi
4597f0:	53                   	push   %ebx
4597f1:	85 f6                	test   %esi,%esi
4597f3:	74 6b                	je     0x459860
4597f5:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
4597f9:	eb 68                	jmp    0x459863
4597fb:	57                   	push   %edi
4597fc:	c6 04 1f 00          	movb   $0x0,(%edi,%ebx,1)
459800:	e8 cb 7f fc ff       	call   0x4217d0
459805:	59                   	pop    %ecx
459806:	53                   	push   %ebx
459807:	3b c3                	cmp    %ebx,%eax
459809:	75 4b                	jne    0x459856
45980b:	8d 4c 24 2c          	lea    0x2c(%esp),%ecx
45980f:	e8 fb d2 fa ff       	call   0x406b0f
459814:	57                   	push   %edi
459815:	8d 4c 24 54          	lea    0x54(%esp),%ecx
459819:	e8 e1 3a fe ff       	call   0x43d2ff
45981e:	8d 44 24 28          	lea    0x28(%esp),%eax
459822:	50                   	push   %eax
459823:	8d 44 24 54          	lea    0x54(%esp),%eax
459827:	50                   	push   %eax
459828:	e8 b1 29 fb ff       	call   0x40c1de
45982d:	8d 4c 24 50          	lea    0x50(%esp),%ecx