4016d8:	56                   	push   %esi
4016d9:	8b 75 0c             	mov    0xc(%ebp),%esi
4016dc:	57                   	push   %edi
4016dd:	8b f9                	mov    %ecx,%edi
4016df:	3b 77 08             	cmp    0x8(%edi),%esi
4016e2:	0f 92 c1             	setb   %cl
4016e5:	e8 41 41 00 00       	call   0x40582b
4016ea:	6b f6 0c             	imul   $0xc,%esi,%esi
4016ed:	03 37                	add    (%edi),%esi
4016ef:	8b 7d 08             	mov    0x8(%ebp),%edi
4016f2:	8b 06                	mov    (%esi),%eax
4016f4:	8d 4e 04             	lea    0x4(%esi),%ecx
4016f7:	51                   	push   %ecx
4016f8:	8d 4f 04             	lea    0x4(%edi),%ecx
4016fb:	89 07                	mov    %eax,(%edi)
4016fd:	e8 58 1d 00 00       	call   0x40345a
401702:	8d 4e 08             	lea    0x8(%esi),%ecx
401705:	51                   	push   %ecx
401706:	8d 4f 08             	lea    0x8(%edi),%ecx
401709:	e8 4c 1d 00 00       	call   0x40345a
40170e:	8b c7                	mov    %edi,%eax
401710:	5f                   	pop    %edi
401711:	5e                   	pop    %esi
401712:	5d                   	pop    %ebp
401713:	c2 08 00             	ret    $0x8
401716:	55                   	push   %ebp
401717:	8b ec                	mov    %esp,%ebp
401719:	83 ec 10             	sub    $0x10,%esp
40171c:	53                   	push   %ebx
40171d:	56                   	push   %esi
40171e:	57                   	push   %edi
40171f:	8b f9                	mov    %ecx,%edi
401721:	8b 77 08             	mov    0x8(%edi),%esi
401724:	3b 77 04             	cmp    0x4(%edi),%esi
401727:	0f 82 b1 00 00 00    	jb     0x4017de
40172d:	46                   	inc    %esi
40172e:	33 db                	xor    %ebx,%ebx
401730:	0f af 77 0c          	imul   0xc(%edi),%esi
401734:	6a 18                	push   $0x18
401736:	59                   	pop    %ecx
401737:	8b c6                	mov    %esi,%eax
401739:	89 75 f0             	mov    %esi,-0x10(%ebp)
40173c:	f7 e1                	mul    %ecx
40173e:	0f 90 c3             	seto   %bl
401741:	33 c9                	xor    %ecx,%ecx
401743:	f7 db                	neg    %ebx
401745:	0b d8                	or     %eax,%ebx
401747:	83 c3 04             	add    $0x4,%ebx
40174a:	0f 92 c1             	setb   %cl
40174d:	f7 d9                	neg    %ecx
40174f:	0b cb                	or     %ebx,%ecx
401751:	e8 85 43 00 00       	call   0x405adb
401756:	85 c0                	test   %eax,%eax
401758:	74 1e                	je     0x401778
40175a:	8d 58 04             	lea    0x4(%eax),%ebx
40175d:	89 30                	mov    %esi,(%eax)
40175f:	33 c0                	xor    %eax,%eax
401761:	89 5d f8             	mov    %ebx,-0x8(%ebp)
401764:	8b ce                	mov    %esi,%ecx
401766:	8b d3                	mov    %ebx,%edx
401768:	85 f6                	test   %esi,%esi
40176a:	74 13                	je     0x40177f
40176c:	89 02                	mov    %eax,(%edx)
40176e:	8d 52 18             	lea    0x18(%edx),%edx
401771:	83 e9 01             	sub    $0x1,%ecx
401774:	75 f6                	jne    0x40176c
401776:	eb 07                	jmp    0x40177f
401778:	33 c0                	xor    %eax,%eax
40177a:	8b d8                	mov    %eax,%ebx
40177c:	89 45 f8             	mov    %eax,-0x8(%ebp)
40177f:	39 47 08             	cmp    %eax,0x8(%edi)
401782:	76 47                	jbe    0x4017cb
401784:	6a f0                	push   $0xfffffff0
401786:	58                   	pop    %eax
401787:	8d 4b 10             	lea    0x10(%ebx),%ecx
40178a:	2b c3                	sub    %ebx,%eax
40178c:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40178f:	33 db                	xor    %ebx,%ebx
401791:	89 45 f4             	mov    %eax,-0xc(%ebp)
401794:	8d 34 08             	lea    (%eax,%ecx,1),%esi
401797:	83 c1 f0             	add    $0xfffffff0,%ecx
40179a:	03 37                	add    (%edi),%esi
40179c:	56                   	push   %esi
40179d:	e8 c2 1a 00 00       	call   0x403264
4017a2:	8b 4d fc             	mov    -0x4(%ebp),%ecx
4017a5:	43                   	inc    %ebx
4017a6:	8b 46 08             	mov    0x8(%esi),%eax
4017a9:	89 41 f8             	mov    %eax,-0x8(%ecx)
4017ac:	8b 46 0c             	mov    0xc(%esi),%eax
4017af:	89 41 fc             	mov    %eax,-0x4(%ecx)
4017b2:	8b 46 10             	mov    0x10(%esi),%eax
4017b5:	89 01                	mov    %eax,(%ecx)
4017b7:	83 c1 18             	add    $0x18,%ecx
4017ba:	8b 45 f4             	mov    -0xc(%ebp),%eax
4017bd:	89 4d fc             	mov    %ecx,-0x4(%ebp)
4017c0:	3b 5f 08             	cmp    0x8(%edi),%ebx
4017c3:	72 cf                	jb     0x401794
4017c5:	8b 5d f8             	mov    -0x8(%ebp),%ebx
4017c8:	8b 75 f0             	mov    -0x10(%ebp),%esi
4017cb:	8b 0f                	mov    (%edi),%ecx
4017cd:	85 c9                	test   %ecx,%ecx
4017cf:	74 06                	je     0x4017d7
4017d1:	51                   	push   %ecx
4017d2:	e8 9e 02 00 00       	call   0x401a75
4017d7:	89 1f                	mov    %ebx,(%edi)
4017d9:	89 77 04             	mov    %esi,0x4(%edi)
4017dc:	eb 02                	jmp    0x4017e0
4017de:	8b 1f                	mov    (%edi),%ebx
4017e0:	6b 77 08 18          	imul   $0x18,0x8(%edi),%esi
4017e4:	8d 45 08             	lea    0x8(%ebp),%eax
4017e7:	50                   	push   %eax
4017e8:	03 f3                	add    %ebx,%esi
4017ea:	8b ce                	mov    %esi,%ecx
4017ec:	e8 73 1a 00 00       	call   0x403264
4017f1:	8b 45 10             	mov    0x10(%ebp),%eax
4017f4:	89 46 08             	mov    %eax,0x8(%esi)
4017f7:	8b 45 14             	mov    0x14(%ebp),%eax
4017fa:	89 46 0c             	mov    %eax,0xc(%esi)
4017fd:	8b 45 18             	mov    0x18(%ebp),%eax
401800:	89 46 10             	mov    %eax,0x10(%esi)
401803:	8b 4d 08             	mov    0x8(%ebp),%ecx
401806:	ff 47 08             	incl   0x8(%edi)
401809:	e8 1f 42 00 00       	call   0x405a2d
40180e:	5f                   	pop    %edi
40180f:	5e                   	pop    %esi
401810:	5b                   	pop    %ebx
401811:	c9                   	leave
401812:	c2 18 00             	ret    $0x18
401815:	53                   	push   %ebx
401816:	56                   	push   %esi
401817:	57                   	push   %edi
401818:	8b f9                	mov    %ecx,%edi
40181a:	33 db                	xor    %ebx,%ebx
40181c:	6a 18                	push   $0x18
40181e:	59                   	pop    %ecx
40181f:	8b 77 04             	mov    0x4(%edi),%esi
401822:	8b c6                	mov    %esi,%eax
401824:	f7 e1                	mul    %ecx
401826:	0f 90 c3             	seto   %bl
401829:	33 c9                	xor    %ecx,%ecx
40182b:	f7 db                	neg    %ebx
40182d:	0b d8                	or     %eax,%ebx
40182f:	83 c3 04             	add    $0x4,%ebx
401832:	0f 92 c1             	setb   %cl
401835:	f7 d9                	neg    %ecx
401837:	0b cb                	or     %ebx,%ecx
401839:	e8 9d 42 00 00       	call   0x405adb
40183e:	85 c0                	test   %eax,%eax
401840:	74 18                	je     0x40185a
401842:	89 30                	mov    %esi,(%eax)
401844:	83 c0 04             	add    $0x4,%eax
401847:	8b c8                	mov    %eax,%ecx
401849:	85 f6                	test   %esi,%esi
40184b:	74 0f                	je     0x40185c
40184d:	83 21 00             	andl   $0x0,(%ecx)
401850:	8d 49 18             	lea    0x18(%ecx),%ecx
401853:	83 ee 01             	sub    $0x1,%esi
401856:	75 f5                	jne    0x40184d
401858:	eb 02                	jmp    0x40185c
40185a:	33 c0                	xor    %eax,%eax
40185c:	89 07                	mov    %eax,(%edi)
40185e:	5f                   	pop    %edi
40185f:	5e                   	pop    %esi
401860:	5b                   	pop    %ebx
401861:	c3                   	ret
401862:	55                   	push   %ebp
401863:	8b ec                	mov    %esp,%ebp
401865:	53                   	push   %ebx
401866:	56                   	push   %esi
401867:	8b 75 0c             	mov    0xc(%ebp),%esi
40186a:	57                   	push   %edi
40186b:	8b f9                	mov    %ecx,%edi
40186d:	3b 77 08             	cmp    0x8(%edi),%esi
401870:	0f 92 c1             	setb   %cl
401873:	e8 b3 3f 00 00       	call   0x40582b
401878:	6b de 18             	imul   $0x18,%esi,%ebx
40187b:	8b 75 08             	mov    0x8(%ebp),%esi
40187e:	8b ce                	mov    %esi,%ecx
401880:	03 1f                	add    (%edi),%ebx
401882:	53                   	push   %ebx
401883:	e8 d2 1b 00 00       	call   0x40345a
401888:	8b 4b 08             	mov    0x8(%ebx),%ecx
40188b:	8b c6                	mov    %esi,%eax
40188d:	89 4e 08             	mov    %ecx,0x8(%esi)
401890:	8b 4b 0c             	mov    0xc(%ebx),%ecx
401893:	89 4e 0c             	mov    %ecx,0xc(%esi)
401896:	8b 4b 10             	mov    0x10(%ebx),%ecx
401899:	5f                   	pop    %edi
40189a:	89 4e 10             	mov    %ecx,0x10(%esi)
40189d:	5e                   	pop    %esi
40189e:	5b                   	pop    %ebx
40189f:	5d                   	pop    %ebp
4018a0:	c2 08 00             	ret    $0x8
4018a3:	55                   	push   %ebp
4018a4:	8b ec                	mov    %esp,%ebp
4018a6:	83 ec 10             	sub    $0x10,%esp
4018a9:	53                   	push   %ebx
4018aa:	56                   	push   %esi
4018ab:	57                   	push   %edi
4018ac:	8b f9                	mov    %ecx,%edi
4018ae:	8b 77 08             	mov    0x8(%edi),%esi
4018b1:	3b 77 04             	cmp    0x4(%edi),%esi
4018b4:	0f 82 ab 00 00 00    	jb     0x401965
4018ba:	46                   	inc    %esi
4018bb:	33 db                	xor    %ebx,%ebx
4018bd:	0f af 77 0c          	imul   0xc(%edi),%esi
4018c1:	6a 0c                	push   $0xc
4018c3:	59                   	pop    %ecx
4018c4:	8b c6                	mov    %esi,%eax
4018c6:	89 75 f0             	mov    %esi,-0x10(%ebp)
4018c9:	f7 e1                	mul    %ecx
4018cb:	0f 90 c3             	seto   %bl
4018ce:	33 c9                	xor    %ecx,%ecx
4018d0:	f7 db                	neg    %ebx
4018d2:	0b d8                	or     %eax,%ebx
4018d4:	83 c3 04             	add    $0x4,%ebx
4018d7:	0f 92 c1             	setb   %cl
4018da:	f7 d9                	neg    %ecx
4018dc:	0b cb                	or     %ebx,%ecx
4018de:	e8 f8 41 00 00       	call   0x405adb
4018e3:	85 c0                	test   %eax,%eax
4018e5:	74 1e                	je     0x401905
4018e7:	8d 58 04             	lea    0x4(%eax),%ebx
4018ea:	89 30                	mov    %esi,(%eax)
4018ec:	33 c0                	xor    %eax,%eax
4018ee:	89 5d f8             	mov    %ebx,-0x8(%ebp)
4018f1:	8b ce                	mov    %esi,%ecx
4018f3:	8b d3                	mov    %ebx,%edx
4018f5:	85 f6                	test   %esi,%esi
4018f7:	74 13                	je     0x40190c
4018f9:	89 02                	mov    %eax,(%edx)
4018fb:	8d 52 0c             	lea    0xc(%edx),%edx
4018fe:	83 e9 01             	sub    $0x1,%ecx
401901:	75 f6                	jne    0x4018f9
401903:	eb 07                	jmp    0x40190c
401905:	33 c0                	xor    %eax,%eax
401907:	8b d8                	mov    %eax,%ebx
401909:	89 45 f8             	mov    %eax,-0x8(%ebp)
40190c:	39 47 08             	cmp    %eax,0x8(%edi)
40190f:	76 41                	jbe    0x401952
401911:	6a f8                	push   $0xfffffff8
401913:	58                   	pop    %eax
401914:	8d 4b 08             	lea    0x8(%ebx),%ecx
401917:	2b c3                	sub    %ebx,%eax
401919:	89 4d fc             	mov    %ecx,-0x4(%ebp)
40191c:	33 db                	xor    %ebx,%ebx
40191e:	89 45 f4             	mov    %eax,-0xc(%ebp)
401921:	8d 34 08             	lea    (%eax,%ecx,1),%esi
401924:	83 c1 f8             	add    $0xfffffff8,%ecx
401927:	03 37                	add    (%edi),%esi
401929:	56                   	push   %esi
40192a:	e8 35 19 00 00       	call   0x403264
40192f:	8b 4d fc             	mov    -0x4(%ebp),%ecx
401932:	43                   	inc    %ebx
401933:	8b 46 04             	mov    0x4(%esi),%eax
401936:	89 41 fc             	mov    %eax,-0x4(%ecx)
401939:	8b 46 08             	mov    0x8(%esi),%eax
40193c:	89 01                	mov    %eax,(%ecx)
40193e:	83 c1 0c             	add    $0xc,%ecx
401941:	8b 45 f4             	mov    -0xc(%ebp),%eax
401944:	89 4d fc             	mov    %ecx,-0x4(%ebp)
401947:	3b 5f 08             	cmp    0x8(%edi),%ebx
40194a:	72 d5                	jb     0x401921
40194c:	8b 5d f8             	mov    -0x8(%ebp),%ebx
40194f:	8b 75 f0             	mov    -0x10(%ebp),%esi
401952:	8b 0f                	mov    (%edi),%ecx
401954:	85 c9                	test   %ecx,%ecx
401956:	74 06                	je     0x40195e
401958:	51                   	push   %ecx
401959:	e8 42 01 00 00       	call   0x401aa0
40195e:	89 1f                	mov    %ebx,(%edi)
401960:	89 77 04             	mov    %esi,0x4(%edi)
401963:	eb 02                	jmp    0x401967
401965:	8b 1f                	mov    (%edi),%ebx
401967:	6b 77 08 0c          	imul   $0xc,0x8(%edi),%esi
40196b:	8d 45 08             	lea    0x8(%ebp),%eax
40196e:	50                   	push   %eax
40196f:	03 f3                	add    %ebx,%esi
401971:	8b ce                	mov    %esi,%ecx
401973:	e8 ec 18 00 00       	call   0x403264
401978:	8b 45 0c             	mov    0xc(%ebp),%eax
40197b:	89 46 04             	mov    %eax,0x4(%esi)
40197e:	8b 45 10             	mov    0x10(%ebp),%eax
401981:	89 46 08             	mov    %eax,0x8(%esi)
401984:	8b 4d 08             	mov    0x8(%ebp),%ecx
401987:	ff 47 08             	incl   0x8(%edi)
40198a:	e8 9e 40 00 00       	call   0x405a2d
40198f:	5f                   	pop    %edi
401990:	5e                   	pop    %esi
401991:	5b                   	pop    %ebx
401992:	c9                   	leave
401993:	c2 0c 00             	ret    $0xc
401996:	53                   	push   %ebx
401997:	56                   	push   %esi
401998:	57                   	push   %edi
401999:	8b f9                	mov    %ecx,%edi
40199b:	33 db                	xor    %ebx,%ebx
40199d:	6a 0c                	push   $0xc
40199f:	59                   	pop    %ecx
4019a0:	8b 77 04             	mov    0x4(%edi),%esi
4019a3:	8b c6                	mov    %esi,%eax
4019a5:	f7 e1                	mul    %ecx
4019a7:	0f 90 c3             	seto   %bl
4019aa:	33 c9                	xor    %ecx,%ecx
4019ac:	f7 db                	neg    %ebx
4019ae:	0b d8                	or     %eax,%ebx
4019b0:	83 c3 04             	add    $0x4,%ebx
4019b3:	0f 92 c1             	setb   %cl
4019b6:	f7 d9                	neg    %ecx
4019b8:	0b cb                	or     %ebx,%ecx
4019ba:	e8 1c 41 00 00       	call   0x405adb
4019bf:	85 c0                	test   %eax,%eax
4019c1:	74 18                	je     0x4019db
4019c3:	89 30                	mov    %esi,(%eax)
4019c5:	83 c0 04             	add    $0x4,%eax
4019c8:	8b c8                	mov    %eax,%ecx
4019ca:	85 f6                	test   %esi,%esi
4019cc:	74 0f                	je     0x4019dd
4019ce:	83 21 00             	andl   $0x0,(%ecx)
4019d1:	8d 49 0c             	lea    0xc(%ecx),%ecx
4019d4:	83 ee 01             	sub    $0x1,%esi
4019d7:	75 f5                	jne    0x4019ce
4019d9:	eb 02                	jmp    0x4019dd
4019db:	33 c0                	xor    %eax,%eax
4019dd:	89 07                	mov    %eax,(%edi)
4019df:	5f                   	pop    %edi
4019e0:	5e                   	pop    %esi
4019e1:	5b                   	pop    %ebx
4019e2:	c3                   	ret
4019e3:	55                   	push   %ebp
4019e4:	8b ec                	mov    %esp,%ebp
4019e6:	53                   	push   %ebx
4019e7:	56                   	push   %esi
4019e8:	8b 75 0c             	mov    0xc(%ebp),%esi
4019eb:	57                   	push   %edi
4019ec:	8b f9                	mov    %ecx,%edi
4019ee:	3b 77 08             	cmp    0x8(%edi),%esi
4019f1:	0f 92 c1             	setb   %cl
4019f4:	e8 32 3e 00 00       	call   0x40582b
4019f9:	6b de 0c             	imul   $0xc,%esi,%ebx
4019fc:	8b 75 08             	mov    0x8(%ebp),%esi
4019ff:	8b ce                	mov    %esi,%ecx
401a01:	03 1f                	add    (%edi),%ebx
401a03:	53                   	push   %ebx
401a04:	e8 51 1a 00 00       	call   0x40345a
401a09:	8b 4b 04             	mov    0x4(%ebx),%ecx
401a0c:	8b c6                	mov    %esi,%eax
401a0e:	89 4e 04             	mov    %ecx,0x4(%esi)
401a11:	8b 4b 08             	mov    0x8(%ebx),%ecx
401a14:	5f                   	pop    %edi