4016c8:	cc                   	int3
4016c9:	cc                   	int3
4016ca:	cc                   	int3
4016cb:	cc                   	int3
4016cc:	cc                   	int3
4016cd:	cc                   	int3
4016ce:	cc                   	int3
4016cf:	cc                   	int3
4016d0:	55                   	push   %ebp
4016d1:	8b 6c 24 10          	mov    0x10(%esp),%ebp
4016d5:	56                   	push   %esi
4016d6:	8b 74 24 10          	mov    0x10(%esp),%esi
4016da:	57                   	push   %edi
4016db:	8b f9                	mov    %ecx,%edi
4016dd:	3b f5                	cmp    %ebp,%esi
4016df:	74 1f                	je     0x401700
4016e1:	53                   	push   %ebx
4016e2:	8b 5c 24 14          	mov    0x14(%esp),%ebx
4016e6:	0f b7 06             	movzwl (%esi),%eax
4016e9:	8b 17                	mov    (%edi),%edx
4016eb:	50                   	push   %eax
4016ec:	8b 42 08             	mov    0x8(%edx),%eax
4016ef:	53                   	push   %ebx
4016f0:	8b cf                	mov    %edi,%ecx
4016f2:	ff d0                	call   *%eax
4016f4:	84 c0                	test   %al,%al
4016f6:	74 07                	je     0x4016ff
4016f8:	83 c6 02             	add    $0x2,%esi
4016fb:	3b f5                	cmp    %ebp,%esi
4016fd:	75 e7                	jne    0x4016e6
4016ff:	5b                   	pop    %ebx
401700:	5f                   	pop    %edi
401701:	8b c6                	mov    %esi,%eax
401703:	5e                   	pop    %esi
401704:	5d                   	pop    %ebp
401705:	c2 0c 00             	ret    $0xc
401708:	cc                   	int3
401709:	cc                   	int3
40170a:	cc                   	int3
40170b:	cc                   	int3
40170c:	cc                   	int3
40170d:	cc                   	int3
40170e:	cc                   	int3
40170f:	cc                   	int3
401710:	8b 44 24 04          	mov    0x4(%esp),%eax
401714:	83 c1 08             	add    $0x8,%ecx
401717:	51                   	push   %ecx
401718:	50                   	push   %eax
401719:	e8 3c 31 00 00       	call   0x40485a
40171e:	83 c4 08             	add    $0x8,%esp
401721:	c2 04 00             	ret    $0x4
401724:	cc                   	int3
401725:	cc                   	int3
401726:	cc                   	int3
401727:	cc                   	int3
401728:	cc                   	int3
401729:	cc                   	int3
40172a:	cc                   	int3
40172b:	cc                   	int3
40172c:	cc                   	int3
40172d:	cc                   	int3
40172e:	cc                   	int3
40172f:	cc                   	int3
401730:	53                   	push   %ebx
401731:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
401735:	56                   	push   %esi
401736:	8b 74 24 0c          	mov    0xc(%esp),%esi
40173a:	3b f3                	cmp    %ebx,%esi
40173c:	74 1c                	je     0x40175a
40173e:	57                   	push   %edi
40173f:	8d 79 08             	lea    0x8(%ecx),%edi
401742:	0f b7 06             	movzwl (%esi),%eax
401745:	57                   	push   %edi
401746:	50                   	push   %eax
401747:	e8 0e 31 00 00       	call   0x40485a
40174c:	66 89 06             	mov    %ax,(%esi)
40174f:	83 c6 02             	add    $0x2,%esi
401752:	83 c4 08             	add    $0x8,%esp
401755:	3b f3                	cmp    %ebx,%esi
401757:	75 e9                	jne    0x401742
401759:	5f                   	pop    %edi
40175a:	8b c6                	mov    %esi,%eax
40175c:	5e                   	pop    %esi
40175d:	5b                   	pop    %ebx
40175e:	c2 08 00             	ret    $0x8
401761:	cc                   	int3
401762:	cc                   	int3
401763:	cc                   	int3
401764:	cc                   	int3
401765:	cc                   	int3
401766:	cc                   	int3
401767:	cc                   	int3
401768:	cc                   	int3
401769:	cc                   	int3
40176a:	cc                   	int3
40176b:	cc                   	int3
40176c:	cc                   	int3
40176d:	cc                   	int3
40176e:	cc                   	int3
40176f:	cc                   	int3
401770:	8b 44 24 04          	mov    0x4(%esp),%eax
401774:	83 c1 08             	add    $0x8,%ecx
401777:	51                   	push   %ecx
401778:	50                   	push   %eax
401779:	e8 49 31 00 00       	call   0x4048c7
40177e:	83 c4 08             	add    $0x8,%esp
401781:	c2 04 00             	ret    $0x4
401784:	cc                   	int3
401785:	cc                   	int3
401786:	cc                   	int3
401787:	cc                   	int3
401788:	cc                   	int3
401789:	cc                   	int3
40178a:	cc                   	int3
40178b:	cc                   	int3
40178c:	cc                   	int3
40178d:	cc                   	int3
40178e:	cc                   	int3
40178f:	cc                   	int3
401790:	53                   	push   %ebx
401791:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
401795:	56                   	push   %esi
401796:	8b 74 24 0c          	mov    0xc(%esp),%esi
40179a:	3b f3                	cmp    %ebx,%esi
40179c:	74 1c                	je     0x4017ba
40179e:	57                   	push   %edi
40179f:	8d 79 08             	lea    0x8(%ecx),%edi
4017a2:	0f b7 06             	movzwl (%esi),%eax
4017a5:	57                   	push   %edi
4017a6:	50                   	push   %eax
4017a7:	e8 1b 31 00 00       	call   0x4048c7
4017ac:	66 89 06             	mov    %ax,(%esi)
4017af:	83 c6 02             	add    $0x2,%esi
4017b2:	83 c4 08             	add    $0x8,%esp
4017b5:	3b f3                	cmp    %ebx,%esi
4017b7:	75 e9                	jne    0x4017a2
4017b9:	5f                   	pop    %edi
4017ba:	8b c6                	mov    %esi,%eax
4017bc:	5e                   	pop    %esi
4017bd:	5b                   	pop    %ebx
4017be:	c2 08 00             	ret    $0x8
4017c1:	cc                   	int3
4017c2:	cc                   	int3
4017c3:	cc                   	int3
4017c4:	cc                   	int3
4017c5:	cc                   	int3
4017c6:	cc                   	int3
4017c7:	cc                   	int3
4017c8:	cc                   	int3
4017c9:	cc                   	int3
4017ca:	cc                   	int3
4017cb:	cc                   	int3
4017cc:	cc                   	int3
4017cd:	cc                   	int3
4017ce:	cc                   	int3
4017cf:	cc                   	int3
4017d0:	83 ec 08             	sub    $0x8,%esp
4017d3:	8a 44 24 0c          	mov    0xc(%esp),%al
4017d7:	83 c1 18             	add    $0x18,%ecx
4017da:	51                   	push   %ecx
4017db:	8d 4c 24 08          	lea    0x8(%esp),%ecx
4017df:	51                   	push   %ecx
4017e0:	6a 01                	push   $0x1
4017e2:	8d 54 24 18          	lea    0x18(%esp),%edx
4017e6:	88 44 24 18          	mov    %al,0x18(%esp)
4017ea:	52                   	push   %edx
4017eb:	8d 44 24 10          	lea    0x10(%esp),%eax
4017ef:	50                   	push   %eax
4017f0:	c7 44 24 18 00 00 00 	movl   $0x0,0x18(%esp)
4017f7:	00
4017f8:	e8 67 32 00 00       	call   0x404a64
4017fd:	83 c4 14             	add    $0x14,%esp
401800:	85 c0                	test   %eax,%eax
401802:	b8 ff ff 00 00       	mov    $0xffff,%eax
401807:	7c 04                	jl     0x40180d
401809:	0f b7 04 24          	movzwl (%esp),%eax
40180d:	83 c4 08             	add    $0x8,%esp
401810:	c2 04 00             	ret    $0x4
401813:	cc                   	int3
401814:	cc                   	int3
401815:	cc                   	int3
401816:	cc                   	int3
401817:	cc                   	int3
401818:	cc                   	int3
401819:	cc                   	int3
40181a:	cc                   	int3
40181b:	cc                   	int3
40181c:	cc                   	int3
40181d:	cc                   	int3
40181e:	cc                   	int3
40181f:	cc                   	int3
401820:	8b 44 24 08          	mov    0x8(%esp),%eax
401824:	8b 54 24 04          	mov    0x4(%esp),%edx
401828:	56                   	push   %esi
401829:	8b 31                	mov    (%ecx),%esi
40182b:	57                   	push   %edi
40182c:	8b f8                	mov    %eax,%edi
40182e:	2b fa                	sub    %edx,%edi
401830:	57                   	push   %edi
401831:	8b 7c 24 18          	mov    0x18(%esp),%edi
401835:	57                   	push   %edi
401836:	50                   	push   %eax
401837:	8b 46 2c             	mov    0x2c(%esi),%eax
40183a:	52                   	push   %edx
40183b:	ff d0                	call   *%eax
40183d:	5f                   	pop    %edi
40183e:	5e                   	pop    %esi
40183f:	c2 0c 00             	ret    $0xc
401842:	cc                   	int3
401843:	cc                   	int3
401844:	cc                   	int3
401845:	cc                   	int3
401846:	cc                   	int3
401847:	cc                   	int3
401848:	cc                   	int3
401849:	cc                   	int3
40184a:	cc                   	int3
40184b:	cc                   	int3
40184c:	cc                   	int3
40184d:	cc                   	int3
40184e:	cc                   	int3
40184f:	cc                   	int3
401850:	53                   	push   %ebx
401851:	8b 5c 24 0c          	mov    0xc(%esp),%ebx
401855:	56                   	push   %esi
401856:	8b 74 24 0c          	mov    0xc(%esp),%esi
40185a:	8b c3                	mov    %ebx,%eax
40185c:	2b c6                	sub    %esi,%eax
40185e:	57                   	push   %edi
40185f:	8b f9                	mov    %ecx,%edi
401861:	39 44 24 1c          	cmp    %eax,0x1c(%esp)
401865:	73 05                	jae    0x40186c
401867:	e8 df 39 00 00       	call   0x40524b
40186c:	3b f3                	cmp    %ebx,%esi
40186e:	74 4a                	je     0x4018ba
401870:	55                   	push   %ebp
401871:	8d 6f 18             	lea    0x18(%edi),%ebp
401874:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
401878:	8a 0e                	mov    (%esi),%cl
40187a:	55                   	push   %ebp
40187b:	8d 54 24 24          	lea    0x24(%esp),%edx
40187f:	52                   	push   %edx
401880:	6a 01                	push   $0x1
401882:	8d 44 24 24          	lea    0x24(%esp),%eax
401886:	88 4c 24 24          	mov    %cl,0x24(%esp)
40188a:	50                   	push   %eax
40188b:	8d 4c 24 24          	lea    0x24(%esp),%ecx
40188f:	51                   	push   %ecx
401890:	c7 44 24 34 00 00 00 	movl   $0x0,0x34(%esp)
401897:	00
401898:	e8 c7 31 00 00       	call   0x404a64
40189d:	83 c4 14             	add    $0x14,%esp
4018a0:	85 c0                	test   %eax,%eax
4018a2:	b8 ff ff 00 00       	mov    $0xffff,%eax
4018a7:	7c 05                	jl     0x4018ae
4018a9:	0f b7 44 24 14       	movzwl 0x14(%esp),%eax
4018ae:	66 89 07             	mov    %ax,(%edi)
4018b1:	46                   	inc    %esi
4018b2:	83 c7 02             	add    $0x2,%edi
4018b5:	3b f3                	cmp    %ebx,%esi
4018b7:	75 bf                	jne    0x401878
4018b9:	5d                   	pop    %ebp
4018ba:	5f                   	pop    %edi
4018bb:	8b c6                	mov    %esi,%eax
4018bd:	5e                   	pop    %esi
4018be:	5b                   	pop    %ebx
4018bf:	c2 10 00             	ret    $0x10
4018c2:	cc                   	int3
4018c3:	cc                   	int3
4018c4:	cc                   	int3
4018c5:	cc                   	int3
4018c6:	cc                   	int3
4018c7:	cc                   	int3
4018c8:	cc                   	int3
4018c9:	cc                   	int3
4018ca:	cc                   	int3
4018cb:	cc                   	int3
4018cc:	cc                   	int3
4018cd:	cc                   	int3
4018ce:	cc                   	int3
4018cf:	cc                   	int3
4018d0:	83 ec 0c             	sub    $0xc,%esp
4018d3:	83 c1 18             	add    $0x18,%ecx
4018d6:	51                   	push   %ecx
4018d7:	8b 4c 24 14          	mov    0x14(%esp),%ecx
4018db:	8d 44 24 04          	lea    0x4(%esp),%eax
4018df:	50                   	push   %eax
4018e0:	51                   	push   %ecx
4018e1:	8d 54 24 10          	lea    0x10(%esp),%edx
4018e5:	52                   	push   %edx
4018e6:	c7 44 24 10 00 00 00 	movl   $0x0,0x10(%esp)
4018ed:	00
4018ee:	e8 11 29 00 00       	call   0x404204
4018f3:	83 c4 10             	add    $0x10,%esp
4018f6:	83 f8 01             	cmp    $0x1,%eax
4018f9:	8a 44 24 14          	mov    0x14(%esp),%al
4018fd:	75 04                	jne    0x401903
4018ff:	8a 44 24 04          	mov    0x4(%esp),%al
401903:	83 c4 0c             	add    $0xc,%esp
401906:	c2 08 00             	ret    $0x8
401909:	cc                   	int3
40190a:	cc                   	int3
40190b:	cc                   	int3
40190c:	cc                   	int3
40190d:	cc                   	int3
40190e:	cc                   	int3
40190f:	cc                   	int3
401910:	8b 44 24 08          	mov    0x8(%esp),%eax
401914:	8b 54 24 04          	mov    0x4(%esp),%edx
401918:	56                   	push   %esi
401919:	8b 31                	mov    (%ecx),%esi
40191b:	57                   	push   %edi
40191c:	8b f8                	mov    %eax,%edi
40191e:	2b fa                	sub    %edx,%edi
401920:	d1 ff                	sar    $1,%edi
401922:	57                   	push   %edi
401923:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
401927:	57                   	push   %edi
401928:	8b 7c 24 1c          	mov    0x1c(%esp),%edi
40192c:	57                   	push   %edi
40192d:	50                   	push   %eax
40192e:	8b 46 38             	mov    0x38(%esi),%eax
401931:	52                   	push   %edx
401932:	ff d0                	call   *%eax
401934:	5f                   	pop    %edi
401935:	5e                   	pop    %esi
401936:	c2 10 00             	ret    $0x10
401939:	cc                   	int3
40193a:	cc                   	int3
40193b:	cc                   	int3
40193c:	cc                   	int3
40193d:	cc                   	int3
40193e:	cc                   	int3
40193f:	cc                   	int3
401940:	83 ec 08             	sub    $0x8,%esp
401943:	55                   	push   %ebp
401944:	8b 6c 24 14          	mov    0x14(%esp),%ebp
401948:	56                   	push   %esi
401949:	8b 74 24 14          	mov    0x14(%esp),%esi
40194d:	8b c5                	mov    %ebp,%eax
40194f:	2b c6                	sub    %esi,%eax
401951:	d1 f8                	sar    $1,%eax
401953:	57                   	push   %edi
401954:	8b f9                	mov    %ecx,%edi
401956:	39 44 24 28          	cmp    %eax,0x28(%esp)
40195a:	73 05                	jae    0x401961
40195c:	e8 ea 38 00 00       	call   0x40524b
401961:	3b f5                	cmp    %ebp,%esi
401963:	74 42                	je     0x4019a7
401965:	53                   	push   %ebx