43a6f7:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a6fa:	83 c3 ff             	add    $0xffffffff,%ebx
43a6fd:	89 5d bc             	mov    %ebx,-0x44(%ebp)
43a700:	83 d0 ff             	adc    $0xffffffff,%eax
43a703:	03 7d cc             	add    -0x34(%ebp),%edi
43a706:	89 45 e8             	mov    %eax,-0x18(%ebp)
43a709:	83 55 d8 00          	adcl   $0x0,-0x28(%ebp)
43a70d:	89 45 c0             	mov    %eax,-0x40(%ebp)
43a710:	75 0a                	jne    0x43a71c
43a712:	83 ff ff             	cmp    $0xffffffff,%edi
43a715:	76 bf                	jbe    0x43a6d6
43a717:	eb 03                	jmp    0x43a71c
43a719:	8b 45 e8             	mov    -0x18(%ebp),%eax
43a71c:	89 5d fc             	mov    %ebx,-0x4(%ebp)
43a71f:	85 c0                	test   %eax,%eax
43a721:	75 08                	jne    0x43a72b
43a723:	85 db                	test   %ebx,%ebx
43a725:	0f 84 b4 00 00 00    	je     0x43a7df
43a72b:	8b 4d c8             	mov    -0x38(%ebp),%ecx
43a72e:	33 ff                	xor    %edi,%edi
43a730:	33 f6                	xor    %esi,%esi
43a732:	85 c9                	test   %ecx,%ecx
43a734:	74 55                	je     0x43a78b
43a736:	8b 45 0c             	mov    0xc(%ebp),%eax
43a739:	8b 5d f0             	mov    -0x10(%ebp),%ebx
43a73c:	83 c0 04             	add    $0x4,%eax
43a73f:	89 45 ec             	mov    %eax,-0x14(%ebp)
43a742:	89 4d f4             	mov    %ecx,-0xc(%ebp)
43a745:	8b 00                	mov    (%eax),%eax
43a747:	89 45 d8             	mov    %eax,-0x28(%ebp)
43a74a:	8b 45 c0             	mov    -0x40(%ebp),%eax
43a74d:	f7 65 d8             	mull   -0x28(%ebp)
43a750:	8b c8                	mov    %eax,%ecx
43a752:	8b 45 bc             	mov    -0x44(%ebp),%eax
43a755:	f7 65 d8             	mull   -0x28(%ebp)
43a758:	03 d1                	add    %ecx,%edx
43a75a:	03 f8                	add    %eax,%edi
43a75c:	8b 03                	mov    (%ebx),%eax
43a75e:	8b cf                	mov    %edi,%ecx
43a760:	13 f2                	adc    %edx,%esi
43a762:	8b fe                	mov    %esi,%edi
43a764:	33 f6                	xor    %esi,%esi
43a766:	3b c1                	cmp    %ecx,%eax
43a768:	73 05                	jae    0x43a76f
43a76a:	83 c7 01             	add    $0x1,%edi
43a76d:	13 f6                	adc    %esi,%esi
43a76f:	2b c1                	sub    %ecx,%eax
43a771:	89 03                	mov    %eax,(%ebx)
43a773:	83 c3 04             	add    $0x4,%ebx
43a776:	8b 45 ec             	mov    -0x14(%ebp),%eax
43a779:	83 c0 04             	add    $0x4,%eax
43a77c:	83 6d f4 01          	subl   $0x1,-0xc(%ebp)
43a780:	89 45 ec             	mov    %eax,-0x14(%ebp)
43a783:	75 c0                	jne    0x43a745
43a785:	8b 5d fc             	mov    -0x4(%ebp),%ebx
43a788:	8b 4d c8             	mov    -0x38(%ebp),%ecx
43a78b:	33 c0                	xor    %eax,%eax
43a78d:	3b c6                	cmp    %esi,%eax
43a78f:	77 47                	ja     0x43a7d8
43a791:	72 05                	jb     0x43a798
43a793:	39 7d d0             	cmp    %edi,-0x30(%ebp)
43a796:	73 40                	jae    0x43a7d8
43a798:	85 c9                	test   %ecx,%ecx
43a79a:	74 35                	je     0x43a7d1
43a79c:	8b 75 0c             	mov    0xc(%ebp),%esi
43a79f:	8b f9                	mov    %ecx,%edi
43a7a1:	8b 55 f0             	mov    -0x10(%ebp),%edx
43a7a4:	83 c6 04             	add    $0x4,%esi
43a7a7:	8b d8                	mov    %eax,%ebx
43a7a9:	8d a4 24 00 00 00 00 	lea    0x0(%esp),%esp
43a7b0:	8b 0a                	mov    (%edx),%ecx
43a7b2:	8d 76 04             	lea    0x4(%esi),%esi
43a7b5:	33 c0                	xor    %eax,%eax
43a7b7:	8d 52 04             	lea    0x4(%edx),%edx
43a7ba:	03 4e fc             	add    -0x4(%esi),%ecx
43a7bd:	13 c0                	adc    %eax,%eax
43a7bf:	03 cb                	add    %ebx,%ecx
43a7c1:	89 4a fc             	mov    %ecx,-0x4(%edx)
43a7c4:	83 d0 00             	adc    $0x0,%eax
43a7c7:	8b d8                	mov    %eax,%ebx
43a7c9:	83 ef 01             	sub    $0x1,%edi
43a7cc:	75 e2                	jne    0x43a7b0
43a7ce:	8b 5d fc             	mov    -0x4(%ebp),%ebx
43a7d1:	83 c3 ff             	add    $0xffffffff,%ebx
43a7d4:	83 55 e8 ff          	adcl   $0xffffffff,-0x18(%ebp)
43a7d8:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a7db:	48                   	dec    %eax
43a7dc:	89 45 f4             	mov    %eax,-0xc(%ebp)
43a7df:	8b 75 b8             	mov    -0x48(%ebp),%esi
43a7e2:	33 c0                	xor    %eax,%eax
43a7e4:	8b 55 e4             	mov    -0x1c(%ebp),%edx
43a7e7:	03 c3                	add    %ebx,%eax
43a7e9:	8b 4d b4             	mov    -0x4c(%ebp),%ecx
43a7ec:	8b f8                	mov    %eax,%edi
43a7ee:	8b 45 f8             	mov    -0x8(%ebp),%eax
43a7f1:	83 d6 00             	adc    $0x0,%esi
43a7f4:	83 6d f0 04          	subl   $0x4,-0x10(%ebp)
43a7f8:	4a                   	dec    %edx
43a7f9:	8b 5d 08             	mov    0x8(%ebp),%ebx
43a7fc:	83 e9 04             	sub    $0x4,%ecx
43a7ff:	48                   	dec    %eax
43a800:	89 7d b8             	mov    %edi,-0x48(%ebp)
43a803:	89 55 e4             	mov    %edx,-0x1c(%ebp)
43a806:	89 4d b4             	mov    %ecx,-0x4c(%ebp)
43a809:	89 45 f8             	mov    %eax,-0x8(%ebp)
43a80c:	85 d2                	test   %edx,%edx
43a80e:	0f 89 ee fd ff ff    	jns    0x43a602
43a814:	eb 02                	jmp    0x43a818
43a816:	33 ff                	xor    %edi,%edi
43a818:	8b 55 f4             	mov    -0xc(%ebp),%edx
43a81b:	42                   	inc    %edx
43a81c:	8b c2                	mov    %edx,%eax
43a81e:	3b 03                	cmp    (%ebx),%eax
43a820:	73 1c                	jae    0x43a83e
43a822:	8d 48 01             	lea    0x1(%eax),%ecx
43a825:	8d 0c 8b             	lea    (%ebx,%ecx,4),%ecx
43a828:	eb 06                	jmp    0x43a830
43a82a:	8d 9b 00 00 00 00    	lea    0x0(%ebx),%ebx
43a830:	c7 01 00 00 00 00    	movl   $0x0,(%ecx)
43a836:	8d 49 04             	lea    0x4(%ecx),%ecx
43a839:	40                   	inc    %eax
43a83a:	3b 03                	cmp    (%ebx),%eax
43a83c:	72 f2                	jb     0x43a830
43a83e:	89 13                	mov    %edx,(%ebx)
43a840:	85 d2                	test   %edx,%edx
43a842:	74 0f                	je     0x43a853
43a844:	8b 0b                	mov    (%ebx),%ecx
43a846:	83 3c 8b 00          	cmpl   $0x0,(%ebx,%ecx,4)
43a84a:	75 07                	jne    0x43a853
43a84c:	83 c1 ff             	add    $0xffffffff,%ecx
43a84f:	89 0b                	mov    %ecx,(%ebx)
43a851:	75 f1                	jne    0x43a844
43a853:	8b d6                	mov    %esi,%edx
43a855:	8b c7                	mov    %edi,%eax
43a857:	5e                   	pop    %esi
43a858:	5f                   	pop    %edi
43a859:	5b                   	pop    %ebx
43a85a:	8b e5                	mov    %ebp,%esp
43a85c:	5d                   	pop    %ebp
43a85d:	c3                   	ret
43a85e:	8b ff                	mov    %edi,%edi
43a860:	55                   	push   %ebp
43a861:	8b ec                	mov    %esp,%ebp
43a863:	81 ec 64 09 00 00    	sub    $0x964,%esp
43a869:	a1 08 a0 46 00       	mov    0x46a008,%eax
43a86e:	33 c5                	xor    %ebp,%eax
43a870:	89 45 fc             	mov    %eax,-0x4(%ebp)
43a873:	53                   	push   %ebx
43a874:	8b 5d 18             	mov    0x18(%ebp),%ebx
43a877:	8d 8d 6c f8 ff ff    	lea    -0x794(%ebp),%ecx
43a87d:	56                   	push   %esi
43a87e:	57                   	push   %edi
43a87f:	8b 7d 14             	mov    0x14(%ebp),%edi
43a882:	89 bd 80 f8 ff ff    	mov    %edi,-0x780(%ebp)
43a888:	89 9d 84 f8 ff ff    	mov    %ebx,-0x77c(%ebp)
43a88e:	e8 ea fa ff ff       	call   0x43a37d
43a893:	8b 75 0c             	mov    0xc(%ebp),%esi
43a896:	33 c0                	xor    %eax,%eax
43a898:	8b ce                	mov    %esi,%ecx
43a89a:	81 e1 00 00 00 80    	and    $0x80000000,%ecx
43a8a0:	0b c1                	or     %ecx,%eax
43a8a2:	b0 2d                	mov    $0x2d,%al
43a8a4:	75 02                	jne    0x43a8a8
43a8a6:	04 f3                	add    $0xf3,%al
43a8a8:	0f be c0             	movsbl %al,%eax
43a8ab:	8b ce                	mov    %esi,%ecx
43a8ad:	89 07                	mov    %eax,(%edi)
43a8af:	81 e1 00 00 f0 7f    	and    $0x7ff00000,%ecx
43a8b5:	33 c0                	xor    %eax,%eax
43a8b7:	89 5f 08             	mov    %ebx,0x8(%edi)
43a8ba:	0b c1                	or     %ecx,%eax
43a8bc:	8b 7d 08             	mov    0x8(%ebp),%edi
43a8bf:	75 22                	jne    0x43a8e3
43a8c1:	8b ce                	mov    %esi,%ecx
43a8c3:	8b c7                	mov    %edi,%eax
43a8c5:	81 e1 ff ff 0f 00    	and    $0xfffff,%ecx
43a8cb:	0b c1                	or     %ecx,%eax
43a8cd:	75 14                	jne    0x43a8e3
43a8cf:	8b 85 80 f8 ff ff    	mov    -0x780(%ebp),%eax
43a8d5:	68 3c 34 46 00       	push   $0x46343c
43a8da:	83 60 04 00          	andl   $0x0,0x4(%eax)
43a8de:	e9 d3 12 00 00       	jmp    0x43bbb6
43a8e3:	8d 45 08             	lea    0x8(%ebp),%eax
43a8e6:	50                   	push   %eax
43a8e7:	e8 00 c1 ff ff       	call   0x4369ec
43a8ec:	59                   	pop    %ecx
43a8ed:	85 c0                	test   %eax,%eax
43a8ef:	74 0d                	je     0x43a8fe
43a8f1:	8b 8d 80 f8 ff ff    	mov    -0x780(%ebp),%ecx
43a8f7:	c7 41 04 01 00 00 00 	movl   $0x1,0x4(%ecx)
43a8fe:	83 e8 01             	sub    $0x1,%eax
43a901:	0f 84 aa 12 00 00    	je     0x43bbb1
43a907:	83 e8 01             	sub    $0x1,%eax
43a90a:	0f 84 9a 12 00 00    	je     0x43bbaa
43a910:	83 e8 01             	sub    $0x1,%eax
43a913:	0f 84 8a 12 00 00    	je     0x43bba3
43a919:	83 e8 01             	sub    $0x1,%eax
43a91c:	0f 84 7a 12 00 00    	je     0x43bb9c
43a922:	8b 45 10             	mov    0x10(%ebp),%eax
43a925:	81 e6 ff ff ff 7f    	and    $0x7fffffff,%esi
43a92b:	83 a5 7c f8 ff ff 00 	andl   $0x0,-0x784(%ebp)
43a932:	40                   	inc    %eax
43a933:	89 7d 08             	mov    %edi,0x8(%ebp)
43a936:	89 75 0c             	mov    %esi,0xc(%ebp)
43a939:	dd 45 08             	fldl   0x8(%ebp)
43a93c:	dd 95 98 f8 ff ff    	fstl   -0x768(%ebp)
43a942:	8b bd 9c f8 ff ff    	mov    -0x764(%ebp),%edi
43a948:	8b cf                	mov    %edi,%ecx
43a94a:	89 85 88 f8 ff ff    	mov    %eax,-0x778(%ebp)
43a950:	c1 e9 14             	shr    $0x14,%ecx
43a953:	8b c1                	mov    %ecx,%eax
43a955:	25 ff 07 00 00       	and    $0x7ff,%eax
43a95a:	83 c8 00             	or     $0x0,%eax
43a95d:	75 06                	jne    0x43a965
43a95f:	b2 01                	mov    $0x1,%dl
43a961:	33 f6                	xor    %esi,%esi
43a963:	eb 09                	jmp    0x43a96e
43a965:	32 d2                	xor    %dl,%dl
43a967:	be 00 00 10 00       	mov    $0x100000,%esi
43a96c:	33 c0                	xor    %eax,%eax
43a96e:	8b 9d 98 f8 ff ff    	mov    -0x768(%ebp),%ebx
43a974:	81 e7 ff ff 0f 00    	and    $0xfffff,%edi
43a97a:	03 d8                	add    %eax,%ebx
43a97c:	13 fe                	adc    %esi,%edi
43a97e:	33 c0                	xor    %eax,%eax
43a980:	84 d2                	test   %dl,%dl
43a982:	0f 95 c0             	setne  %al
43a985:	81 e1 ff 07 00 00    	and    $0x7ff,%ecx
43a98b:	40                   	inc    %eax
43a98c:	8d b1 cc fb ff ff    	lea    -0x434(%ecx),%esi
43a992:	03 f0                	add    %eax,%esi
43a994:	89 b5 b4 f8 ff ff    	mov    %esi,-0x74c(%ebp)
43a99a:	e8 f1 1d 00 00       	call   0x43c790
43a99f:	51                   	push   %ecx
43a9a0:	51                   	push   %ecx
43a9a1:	dd 1c 24             	fstpl  (%esp)
43a9a4:	e8 f7 1e 00 00       	call   0x43c8a0
43a9a9:	59                   	pop    %ecx
43a9aa:	59                   	pop    %ecx
43a9ab:	e8 90 f4 00 00       	call   0x449e40
43a9b0:	89 85 94 f8 ff ff    	mov    %eax,-0x76c(%ebp)
43a9b6:	3d ff ff ff 7f       	cmp    $0x7fffffff,%eax
43a9bb:	74 07                	je     0x43a9c4
43a9bd:	3d 00 00 00 80       	cmp    $0x80000000,%eax
43a9c2:	75 08                	jne    0x43a9cc
43a9c4:	33 c0                	xor    %eax,%eax
43a9c6:	89 85 94 f8 ff ff    	mov    %eax,-0x76c(%ebp)
43a9cc:	89 9d 30 fe ff ff    	mov    %ebx,-0x1d0(%ebp)
43a9d2:	33 db                	xor    %ebx,%ebx
43a9d4:	85 ff                	test   %edi,%edi
43a9d6:	89 bd 34 fe ff ff    	mov    %edi,-0x1cc(%ebp)
43a9dc:	0f 95 c3             	setne  %bl
43a9df:	43                   	inc    %ebx
43a9e0:	89 9d 2c fe ff ff    	mov    %ebx,-0x1d4(%ebp)
43a9e6:	85 f6                	test   %esi,%esi
43a9e8:	0f 88 ed 03 00 00    	js     0x43addb
43a9ee:	83 a5 90 fa ff ff 00 	andl   $0x0,-0x570(%ebp)
43a9f5:	6a 02                	push   $0x2
43a9f7:	5e                   	pop    %esi
43a9f8:	c7 85 94 fa ff ff 00 	movl   $0x100000,-0x56c(%ebp)
43a9ff:	00 10 00
43aa02:	89 b5 8c fa ff ff    	mov    %esi,-0x574(%ebp)
43aa08:	3b de                	cmp    %esi,%ebx
43aa0a:	0f 85 00 02 00 00    	jne    0x43ac10
43aa10:	33 c9                	xor    %ecx,%ecx
43aa12:	8b 84 0d 90 fa ff ff 	mov    -0x570(%ebp,%ecx,1),%eax
43aa19:	3b 84 0d 30 fe ff ff 	cmp    -0x1d0(%ebp,%ecx,1),%eax
43aa20:	0f 85 ea 01 00 00    	jne    0x43ac10
43aa26:	83 c1 04             	add    $0x4,%ecx
43aa29:	83 f9 08             	cmp    $0x8,%ecx
43aa2c:	75 e4                	jne    0x43aa12
43aa2e:	8b 85 b4 f8 ff ff    	mov    -0x74c(%ebp),%eax
43aa34:	33 d2                	xor    %edx,%edx
43aa36:	83 c0 02             	add    $0x2,%eax
43aa39:	8b f0                	mov    %eax,%esi
43aa3b:	83 e0 1f             	and    $0x1f,%eax
43aa3e:	6a 20                	push   $0x20
43aa40:	59                   	pop    %ecx
43aa41:	2b c8                	sub    %eax,%ecx
43aa43:	89 85 a4 f8 ff ff    	mov    %eax,-0x75c(%ebp)
43aa49:	33 c0                	xor    %eax,%eax
43aa4b:	c1 ee 05             	shr    $0x5,%esi
43aa4e:	40                   	inc    %eax
43aa4f:	89 b5 b0 f8 ff ff    	mov    %esi,-0x750(%ebp)
43aa55:	89 8d 90 f8 ff ff    	mov    %ecx,-0x770(%ebp)
43aa5b:	e8 c0 f3 00 00       	call   0x449e20
43aa60:	83 a5 9c f8 ff ff 00 	andl   $0x0,-0x764(%ebp)
43aa67:	48                   	dec    %eax
43aa68:	0f bd cf             	bsr    %edi,%ecx
43aa6b:	89 85 a8 f8 ff ff    	mov    %eax,-0x758(%ebp)
43aa71:	f7 d0                	not    %eax
43aa73:	89 85 8c f8 ff ff    	mov    %eax,-0x774(%ebp)
43aa79:	74 03                	je     0x43aa7e
43aa7b:	41                   	inc    %ecx
43aa7c:	eb 02                	jmp    0x43aa80
43aa7e:	33 c9                	xor    %ecx,%ecx
43aa80:	6a 20                	push   $0x20
43aa82:	58                   	pop    %eax
43aa83:	2b c1                	sub    %ecx,%eax
43aa85:	8d 56 02             	lea    0x2(%esi),%edx
43aa88:	39 85 a4 f8 ff ff    	cmp    %eax,-0x75c(%ebp)
43aa8e:	89 95 ac f8 ff ff    	mov    %edx,-0x754(%ebp)
43aa94:	0f 97 c0             	seta   %al
43aa97:	83 fa 73             	cmp    $0x73,%edx
43aa9a:	88 85 bb f8 ff ff    	mov    %al,-0x745(%ebp)
43aaa0:	0f 97 c1             	seta   %cl
43aaa3:	83 fa 73             	cmp    $0x73,%edx
43aaa6:	75 08                	jne    0x43aab0
43aaa8:	84 c0                	test   %al,%al
43aaaa:	74 04                	je     0x43aab0
43aaac:	b0 01                	mov    $0x1,%al
43aaae:	eb 02                	jmp    0x43aab2
43aab0:	32 c0                	xor    %al,%al
43aab2:	84 c9                	test   %cl,%cl
43aab4:	0f 85 ef 00 00 00    	jne    0x43aba9
43aaba:	84 c0                	test   %al,%al
43aabc:	0f 85 e7 00 00 00    	jne    0x43aba9
43aac2:	6a 72                	push   $0x72
43aac4:	59                   	pop    %ecx
43aac5:	3b d1                	cmp    %ecx,%edx
43aac7:	72 08                	jb     0x43aad1
43aac9:	8b d1                	mov    %ecx,%edx
43aacb:	89 8d ac f8 ff ff    	mov    %ecx,-0x754(%ebp)
43aad1:	8b ca                	mov    %edx,%ecx
43aad3:	89 8d a0 f8 ff ff    	mov    %ecx,-0x760(%ebp)
43aad9:	83 fa ff             	cmp    $0xffffffff,%edx
43aadc:	0f 84 96 00 00 00    	je     0x43ab78
43aae2:	8b f2                	mov    %edx,%esi
43aae4:	8d 85 30 fe ff ff    	lea    -0x1d0(%ebp),%eax
43aaea:	8b 95 b0 f8 ff ff    	mov    -0x750(%ebp),%edx
43aaf0:	2b f2                	sub    %edx,%esi
43aaf2:	8d 04 b0             	lea    (%eax,%esi,4),%eax
43aaf5:	89 85 b4 f8 ff ff    	mov    %eax,-0x74c(%ebp)
43aafb:	3b ca                	cmp    %edx,%ecx
43aafd:	72 6d                	jb     0x43ab6c
43aaff:	3b f3                	cmp    %ebx,%esi
43ab01:	73 04                	jae    0x43ab07
43ab03:	8b 38                	mov    (%eax),%edi
43ab05:	eb 02                	jmp    0x43ab09
43ab07:	33 ff                	xor    %edi,%edi
43ab09:	8d 46 ff             	lea    -0x1(%esi),%eax
43ab0c:	3b c3                	cmp    %ebx,%eax
43ab0e:	73 0b                	jae    0x43ab1b
43ab10:	8b 85 b4 f8 ff ff    	mov    -0x74c(%ebp),%eax
43ab16:	8b 40 fc             	mov    -0x4(%eax),%eax
43ab19:	eb 02                	jmp    0x43ab1d
43ab1b:	33 c0                	xor    %eax,%eax
43ab1d:	23 85 8c f8 ff ff    	and    -0x774(%ebp),%eax
43ab23:	23 bd a8 f8 ff ff    	and    -0x758(%ebp),%edi
43ab29:	8b 8d 90 f8 ff ff    	mov    -0x770(%ebp),%ecx