408507:	85 c0                	test   %eax,%eax
408509:	0f 84 f4 fe ff ff    	je     0x408403
40850f:	85 c0                	test   %eax,%eax
408511:	75 02                	jne    0x408515
408513:	8b c6                	mov    %esi,%eax
408515:	8b 8c 24 2c 10 00 00 	mov    0x102c(%esp),%ecx
40851c:	5f                   	pop    %edi
40851d:	5e                   	pop    %esi
40851e:	5b                   	pop    %ebx
40851f:	33 cc                	xor    %esp,%ecx
408521:	e8 4a 93 01 00       	call   0x421870
408526:	8b e5                	mov    %ebp,%esp
408528:	5d                   	pop    %ebp
408529:	c3                   	ret
40852a:	8b ff                	mov    %edi,%edi
40852c:	55                   	push   %ebp
40852d:	8b ec                	mov    %esp,%ebp
40852f:	56                   	push   %esi
408530:	8b 35 70 4d 42 00    	mov    0x424d70,%esi
408536:	85 f6                	test   %esi,%esi
408538:	75 1d                	jne    0x408557
40853a:	68 50 1c 40 00       	push   $0x401c50
40853f:	e8 eb f2 ff ff       	call   0x40782f
408544:	50                   	push   %eax
408545:	ff 15 68 60 42 00    	call   *0x426068
40854b:	8b f0                	mov    %eax,%esi
40854d:	89 35 70 4d 42 00    	mov    %esi,0x424d70
408553:	85 f6                	test   %esi,%esi
408555:	74 0d                	je     0x408564
408557:	ff 75 08             	push   0x8(%ebp)
40855a:	8b ce                	mov    %esi,%ecx
40855c:	ff 15 78 64 42 00    	call   *0x426478
408562:	ff d6                	call   *%esi
408564:	5e                   	pop    %esi
408565:	5d                   	pop    %ebp
408566:	c2 04 00             	ret    $0x4
408569:	8b ff                	mov    %edi,%edi
40856b:	55                   	push   %ebp
40856c:	8b ec                	mov    %esp,%ebp
40856e:	56                   	push   %esi
40856f:	8b 35 90 4c 42 00    	mov    0x424c90,%esi
408575:	85 f6                	test   %esi,%esi
408577:	75 1d                	jne    0x408596
408579:	68 b0 1b 40 00       	push   $0x401bb0
40857e:	e8 ac f2 ff ff       	call   0x40782f
408583:	50                   	push   %eax
408584:	ff 15 68 60 42 00    	call   *0x426068
40858a:	8b f0                	mov    %eax,%esi
40858c:	89 35 90 4c 42 00    	mov    %esi,0x424c90
408592:	85 f6                	test   %esi,%esi
408594:	74 0d                	je     0x4085a3
408596:	ff 75 08             	push   0x8(%ebp)
408599:	8b ce                	mov    %esi,%ecx
40859b:	ff 15 78 64 42 00    	call   *0x426478
4085a1:	ff d6                	call   *%esi
4085a3:	5e                   	pop    %esi
4085a4:	5d                   	pop    %ebp
4085a5:	c2 04 00             	ret    $0x4
4085a8:	8b ff                	mov    %edi,%edi
4085aa:	55                   	push   %ebp
4085ab:	8b ec                	mov    %esp,%ebp
4085ad:	0f b7 51 08          	movzwl 0x8(%ecx),%edx
4085b1:	8b 45 0c             	mov    0xc(%ebp),%eax
4085b4:	3b c2                	cmp    %edx,%eax
4085b6:	75 11                	jne    0x4085c9
4085b8:	50                   	push   %eax
4085b9:	ff 71 10             	push   0x10(%ecx)
4085bc:	ff 75 08             	push   0x8(%ebp)
4085bf:	e8 b9 a5 01 00       	call   0x422b7d
4085c4:	83 c4 0c             	add    $0xc,%esp
4085c7:	eb 02                	jmp    0x4085cb
4085c9:	2b c2                	sub    %edx,%eax
4085cb:	5d                   	pop    %ebp
4085cc:	c2 08 00             	ret    $0x8
4085cf:	8b ff                	mov    %edi,%edi
4085d1:	55                   	push   %ebp
4085d2:	8b ec                	mov    %esp,%ebp
4085d4:	51                   	push   %ecx
4085d5:	8b 55 08             	mov    0x8(%ebp),%edx
4085d8:	8d 41 04             	lea    0x4(%ecx),%eax
4085db:	39 10                	cmp    %edx,(%eax)
4085dd:	74 2c                	je     0x40860b
4085df:	89 10                	mov    %edx,(%eax)
4085e1:	8a 51 02             	mov    0x2(%ecx),%dl
4085e4:	80 fa 01             	cmp    $0x1,%dl
4085e7:	75 0e                	jne    0x4085f7
4085e9:	66 8b 00             	mov    (%eax),%ax
4085ec:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
4085f0:	8d 45 fc             	lea    -0x4(%ebp),%eax
4085f3:	6a 02                	push   $0x2
4085f5:	eb 07                	jmp    0x4085fe
4085f7:	80 fa 02             	cmp    $0x2,%dl
4085fa:	75 0f                	jne    0x40860b
4085fc:	6a 04                	push   $0x4
4085fe:	8b 49 0c             	mov    0xc(%ecx),%ecx
408601:	5a                   	pop    %edx
408602:	52                   	push   %edx
408603:	50                   	push   %eax
408604:	e8 67 dd ff ff       	call   0x406370
408609:	59                   	pop    %ecx
40860a:	59                   	pop    %ecx
40860b:	c9                   	leave
40860c:	c2 04 00             	ret    $0x4
40860f:	0f b7 01             	movzwl (%ecx),%eax
408612:	66 85 c0             	test   %ax,%ax
408615:	75 07                	jne    0x40861e
408617:	0f b7 41 08          	movzwl 0x8(%ecx),%eax
40861b:	83 c0 02             	add    $0x2,%eax
40861e:	8a 49 02             	mov    0x2(%ecx),%cl
408621:	80 f9 01             	cmp    $0x1,%cl
408624:	75 04                	jne    0x40862a
408626:	83 c0 02             	add    $0x2,%eax
408629:	c3                   	ret
40862a:	80 f9 02             	cmp    $0x2,%cl
40862d:	75 03                	jne    0x408632
40862f:	83 c0 04             	add    $0x4,%eax
408632:	c3                   	ret
408633:	8b ff                	mov    %edi,%edi
408635:	55                   	push   %ebp
408636:	8b ec                	mov    %esp,%ebp
408638:	51                   	push   %ecx
408639:	51                   	push   %ecx
40863a:	8b 45 08             	mov    0x8(%ebp),%eax
40863d:	53                   	push   %ebx
40863e:	8b d9                	mov    %ecx,%ebx
408640:	56                   	push   %esi
408641:	8b 30                	mov    (%eax),%esi
408643:	57                   	push   %edi
408644:	8a 43 02             	mov    0x2(%ebx),%al
408647:	8b 7d 0c             	mov    0xc(%ebp),%edi
40864a:	3c 01                	cmp    $0x1,%al
40864c:	75 27                	jne    0x408675
40864e:	8d 46 02             	lea    0x2(%esi),%eax
408651:	89 45 f8             	mov    %eax,-0x8(%ebp)
408654:	3b c7                	cmp    %edi,%eax
408656:	77 72                	ja     0x4086ca
408658:	66 8b 43 04          	mov    0x4(%ebx),%ax
40865c:	8b ce                	mov    %esi,%ecx
40865e:	66 89 45 fc          	mov    %ax,-0x4(%ebp)
408662:	8d 45 fc             	lea    -0x4(%ebp),%eax
408665:	6a 02                	push   $0x2
408667:	50                   	push   %eax
408668:	6a 02                	push   $0x2
40866a:	5a                   	pop    %edx
40866b:	e8 00 dd ff ff       	call   0x406370
408670:	8b 75 f8             	mov    -0x8(%ebp),%esi
408673:	eb 20                	jmp    0x408695
408675:	3c 02                	cmp    $0x2,%al
408677:	75 1e                	jne    0x408697
408679:	8d 46 04             	lea    0x4(%esi),%eax
40867c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40867f:	3b c7                	cmp    %edi,%eax
408681:	77 47                	ja     0x4086ca
408683:	6a 04                	push   $0x4
408685:	5a                   	pop    %edx
408686:	52                   	push   %edx
408687:	8d 43 04             	lea    0x4(%ebx),%eax
40868a:	8b ce                	mov    %esi,%ecx
40868c:	50                   	push   %eax
40868d:	e8 de dc ff ff       	call   0x406370
408692:	8b 75 f8             	mov    -0x8(%ebp),%esi
408695:	59                   	pop    %ecx
408696:	59                   	pop    %ecx
408697:	66 83 3b 00          	cmpw   $0x0,(%ebx)
40869b:	75 20                	jne    0x4086bd
40869d:	8d 46 02             	lea    0x2(%esi),%eax
4086a0:	89 45 f8             	mov    %eax,-0x8(%ebp)
4086a3:	3b c7                	cmp    %edi,%eax
4086a5:	77 23                	ja     0x4086ca
4086a7:	8d 43 08             	lea    0x8(%ebx),%eax
4086aa:	8b d7                	mov    %edi,%edx
4086ac:	6a 02                	push   $0x2
4086ae:	50                   	push   %eax
4086af:	2b d6                	sub    %esi,%edx
4086b1:	8b ce                	mov    %esi,%ecx
4086b3:	e8 b8 dc ff ff       	call   0x406370
4086b8:	8b 75 f8             	mov    -0x8(%ebp),%esi
4086bb:	59                   	pop    %ecx
4086bc:	59                   	pop    %ecx
4086bd:	0f b7 53 08          	movzwl 0x8(%ebx),%edx
4086c1:	8b ca                	mov    %edx,%ecx
4086c3:	8d 04 31             	lea    (%ecx,%esi,1),%eax
4086c6:	3b c7                	cmp    %edi,%eax
4086c8:	76 04                	jbe    0x4086ce
4086ca:	32 c0                	xor    %al,%al
4086cc:	eb 27                	jmp    0x4086f5
4086ce:	8b c2                	mov    %edx,%eax
4086d0:	85 c9                	test   %ecx,%ecx
4086d2:	74 15                	je     0x4086e9
4086d4:	51                   	push   %ecx
4086d5:	ff 73 10             	push   0x10(%ebx)
4086d8:	2b fe                	sub    %esi,%edi
4086da:	8b ce                	mov    %esi,%ecx
4086dc:	8b d7                	mov    %edi,%edx
4086de:	e8 8d dc ff ff       	call   0x406370
4086e3:	0f b7 43 08          	movzwl 0x8(%ebx),%eax
4086e7:	59                   	pop    %ecx
4086e8:	59                   	pop    %ecx
4086e9:	8b 4d 08             	mov    0x8(%ebp),%ecx
4086ec:	0f b7 c0             	movzwl %ax,%eax
4086ef:	03 c6                	add    %esi,%eax
4086f1:	89 01                	mov    %eax,(%ecx)
4086f3:	b0 01                	mov    $0x1,%al
4086f5:	5f                   	pop    %edi
4086f6:	5e                   	pop    %esi
4086f7:	5b                   	pop    %ebx
4086f8:	c9                   	leave
4086f9:	c2 08 00             	ret    $0x8
4086fc:	8b ff                	mov    %edi,%edi
4086fe:	55                   	push   %ebp
4086ff:	8b ec                	mov    %esp,%ebp
408701:	51                   	push   %ecx
408702:	8b 45 08             	mov    0x8(%ebp),%eax
408705:	53                   	push   %ebx
408706:	56                   	push   %esi
408707:	8b f1                	mov    %ecx,%esi
408709:	8b 10                	mov    (%eax),%edx
40870b:	8a 46 02             	mov    0x2(%esi),%al
40870e:	3c 01                	cmp    $0x1,%al
408710:	75 22                	jne    0x408734
408712:	8d 5a 02             	lea    0x2(%edx),%ebx
408715:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
408718:	77 75                	ja     0x40878f
40871a:	6a 02                	push   $0x2
40871c:	52                   	push   %edx
40871d:	89 56 0c             	mov    %edx,0xc(%esi)
408720:	8d 4d fc             	lea    -0x4(%ebp),%ecx
408723:	6a 02                	push   $0x2
408725:	5a                   	pop    %edx
408726:	e8 45 dc ff ff       	call   0x406370
40872b:	0f b7 45 fc          	movzwl -0x4(%ebp),%eax
40872f:	89 46 04             	mov    %eax,0x4(%esi)
408732:	eb 1d                	jmp    0x408751
408734:	3c 02                	cmp    $0x2,%al
408736:	75 1d                	jne    0x408755
408738:	8d 5a 04             	lea    0x4(%edx),%ebx
40873b:	3b 5d 0c             	cmp    0xc(%ebp),%ebx
40873e:	77 4f                	ja     0x40878f
408740:	6a 04                	push   $0x4
408742:	52                   	push   %edx
408743:	89 56 0c             	mov    %edx,0xc(%esi)
408746:	8d 4e 04             	lea    0x4(%esi),%ecx
408749:	6a 04                	push   $0x4
40874b:	5a                   	pop    %edx
40874c:	e8 1f dc ff ff       	call   0x406370
408751:	59                   	pop    %ecx
408752:	8b d3                	mov    %ebx,%edx
408754:	59                   	pop    %ecx
408755:	0f b7 06             	movzwl (%esi),%eax
408758:	8d 5e 08             	lea    0x8(%esi),%ebx
40875b:	66 89 03             	mov    %ax,(%ebx)
40875e:	8b c8                	mov    %eax,%ecx
408760:	66 85 c0             	test   %ax,%ax
408763:	75 20                	jne    0x408785
408765:	8d 42 02             	lea    0x2(%edx),%eax
408768:	89 45 fc             	mov    %eax,-0x4(%ebp)
40876b:	3b 45 0c             	cmp    0xc(%ebp),%eax
40876e:	77 1f                	ja     0x40878f
408770:	6a 02                	push   $0x2
408772:	52                   	push   %edx
408773:	6a 02                	push   $0x2
408775:	5a                   	pop    %edx
408776:	8b cb                	mov    %ebx,%ecx
408778:	e8 f3 db ff ff       	call   0x406370
40877d:	8b 55 fc             	mov    -0x4(%ebp),%edx
408780:	59                   	pop    %ecx
408781:	59                   	pop    %ecx
408782:	0f b7 0b             	movzwl (%ebx),%ecx
408785:	0f b7 c1             	movzwl %cx,%eax
408788:	03 c2                	add    %edx,%eax
40878a:	3b 45 0c             	cmp    0xc(%ebp),%eax
40878d:	76 04                	jbe    0x408793
40878f:	32 c0                	xor    %al,%al
408791:	eb 0a                	jmp    0x40879d
408793:	8b 4d 08             	mov    0x8(%ebp),%ecx
408796:	89 56 10             	mov    %edx,0x10(%esi)
408799:	89 01                	mov    %eax,(%ecx)
40879b:	b0 01                	mov    $0x1,%al
40879d:	5e                   	pop    %esi
40879e:	5b                   	pop    %ebx
40879f:	c9                   	leave
4087a0:	c2 08 00             	ret    $0x8
4087a3:	8b ff                	mov    %edi,%edi
4087a5:	55                   	push   %ebp
4087a6:	8b ec                	mov    %esp,%ebp
4087a8:	66 8b 45 08          	mov    0x8(%ebp),%ax
4087ac:	8b d1                	mov    %ecx,%edx
4087ae:	8a 4d 18             	mov    0x18(%ebp),%cl
4087b1:	83 ec 14             	sub    $0x14,%esp
4087b4:	66 89 02             	mov    %ax,(%edx)
4087b7:	66 8b 45 0c          	mov    0xc(%ebp),%ax
4087bb:	66 89 42 02          	mov    %ax,0x2(%edx)
4087bf:	8a 45 10             	mov    0x10(%ebp),%al
4087c2:	88 42 04             	mov    %al,0x4(%edx)
4087c5:	66 8b 45 14          	mov    0x14(%ebp),%ax
4087c9:	53                   	push   %ebx
4087ca:	33 db                	xor    %ebx,%ebx
4087cc:	66 89 42 06          	mov    %ax,0x6(%edx)
4087d0:	88 4a 08             	mov    %cl,0x8(%edx)
4087d3:	66 85 c0             	test   %ax,%ax
4087d6:	74 20                	je     0x4087f8
4087d8:	66 89 45 ec          	mov    %ax,-0x14(%ebp)
4087dc:	33 c0                	xor    %eax,%eax
4087de:	88 4d ee             	mov    %cl,-0x12(%ebp)
4087e1:	8d 4d ec             	lea    -0x14(%ebp),%ecx
4087e4:	89 5d f0             	mov    %ebx,-0x10(%ebp)
4087e7:	66 89 45 f4          	mov    %ax,-0xc(%ebp)
4087eb:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4087ee:	89 5d fc             	mov    %ebx,-0x4(%ebp)
4087f1:	e8 19 fe ff ff       	call   0x40860f
4087f6:	eb 02                	jmp    0x4087fa
4087f8:	8b c3                	mov    %ebx,%eax
4087fa:	89 42 0c             	mov    %eax,0xc(%edx)
4087fd:	8b c2                	mov    %edx,%eax
4087ff:	89 5a 10             	mov    %ebx,0x10(%edx)
408802:	89 5a 14             	mov    %ebx,0x14(%edx)
408805:	89 5a 18             	mov    %ebx,0x18(%edx)
408808:	89 5a 1c             	mov    %ebx,0x1c(%edx)
40880b:	88 5a 22             	mov    %bl,0x22(%edx)
40880e:	66 c7 42 20 00 00    	movw   $0x0,0x20(%edx)
408814:	5b                   	pop    %ebx
408815:	c9                   	leave
408816:	c2 14 00             	ret    $0x14
408819:	8b ff                	mov    %edi,%edi
40881b:	55                   	push   %ebp
40881c:	8b ec                	mov    %esp,%ebp
40881e:	83 ec 18             	sub    $0x18,%esp
408821:	53                   	push   %ebx
408822:	8b 5d 08             	mov    0x8(%ebp),%ebx
408825:	8d 41 10             	lea    0x10(%ecx),%eax
408828:	56                   	push   %esi
408829:	57                   	push   %edi
40882a:	8b f0                	mov    %eax,%esi
40882c:	89 4d f8             	mov    %ecx,-0x8(%ebp)
40882f:	8d 7d e8             	lea    -0x18(%ebp),%edi
408832:	8d 48 0c             	lea    0xc(%eax),%ecx
408835:	8b 11                	mov    (%ecx),%edx
408837:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408838:	89 55 fc             	mov    %edx,-0x4(%ebp)
40883b:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40883c:	a5                   	movsl  %ds:(%esi),%es:(%edi)
40883d:	83 21 00             	andl   $0x0,(%ecx)
408840:	8d 73 10             	lea    0x10(%ebx),%esi
408843:	8b f8                	mov    %eax,%edi
408845:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408846:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408847:	a5                   	movsl  %ds:(%esi),%es:(%edi)
408848:	8b 43 1c             	mov    0x1c(%ebx),%eax
40884b:	83 63 1c 00          	andl   $0x0,0x1c(%ebx)
40884f:	50                   	push   %eax