50a686:	83 7b 40 00          	cmpl   $0x0,0x40(%ebx)
50a68a:	75 0f                	jne    0x50a69b
50a68c:	8b 0e                	mov    (%esi),%ecx
50a68e:	8b c6                	mov    %esi,%eax
50a690:	c7 41 14 04 00 00 00 	movl   $0x4,0x14(%ecx)
50a697:	8b 10                	mov    (%eax),%edx
50a699:	ff 12                	call   *(%edx)
50a69b:	c7 43 04 78 ab 50 00 	movl   $0x50ab78,0x4(%ebx)
50a6a2:	eb 0f                	jmp    0x50a6b3
50a6a4:	8b 0e                	mov    (%esi),%ecx
50a6a6:	8b c6                	mov    %esi,%eax
50a6a8:	c7 41 14 04 00 00 00 	movl   $0x4,0x14(%ecx)
50a6af:	8b 10                	mov    (%eax),%edx
50a6b1:	ff 12                	call   *(%edx)
50a6b3:	5f                   	pop    %edi
50a6b4:	5e                   	pop    %esi
50a6b5:	5b                   	pop    %ebx
50a6b6:	c3                   	ret
50a6b7:	90                   	nop
50a6b8:	53                   	push   %ebx
50a6b9:	56                   	push   %esi
50a6ba:	57                   	push   %edi
50a6bb:	83 c4 c4             	add    $0xffffffc4,%esp
50a6be:	89 54 24 04          	mov    %edx,0x4(%esp)
50a6c2:	89 04 24             	mov    %eax,(%esp)
50a6c5:	8b 04 24             	mov    (%esp),%eax
50a6c8:	8b b0 50 01 00 00    	mov    0x150(%eax),%esi
50a6ce:	8b 04 24             	mov    (%esp),%eax
50a6d1:	8b 90 00 01 00 00    	mov    0x100(%eax),%edx
50a6d7:	4a                   	dec    %edx
50a6d8:	89 54 24 0c          	mov    %edx,0xc(%esp)
50a6dc:	8b 0c 24             	mov    (%esp),%ecx
50a6df:	8b 81 e8 00 00 00    	mov    0xe8(%ecx),%eax
50a6e5:	48                   	dec    %eax
50a6e6:	89 44 24 10          	mov    %eax,0x10(%esp)
50a6ea:	8b 56 10             	mov    0x10(%esi),%edx
50a6ed:	89 54 24 20          	mov    %edx,0x20(%esp)
50a6f1:	e9 cd 01 00 00       	jmp    0x50a8c3
50a6f6:	8b 4e 0c             	mov    0xc(%esi),%ecx
50a6f9:	89 4c 24 08          	mov    %ecx,0x8(%esp)
50a6fd:	8b 44 24 08          	mov    0x8(%esp),%eax
50a701:	3b 44 24 0c          	cmp    0xc(%esp),%eax
50a705:	0f 87 af 01 00 00    	ja     0x50a8ba
50a70b:	33 d2                	xor    %edx,%edx
50a70d:	33 c9                	xor    %ecx,%ecx
50a70f:	89 54 24 14          	mov    %edx,0x14(%esp)
50a713:	89 4c 24 18          	mov    %ecx,0x18(%esp)
50a717:	8b 44 24 04          	mov    0x4(%esp),%eax
50a71b:	8b d0                	mov    %eax,%edx
50a71d:	89 54 24 38          	mov    %edx,0x38(%esp)
50a721:	8b 0c 24             	mov    (%esp),%ecx
50a724:	8d 81 f0 00 00 00    	lea    0xf0(%ecx),%eax
50a72a:	89 44 24 30          	mov    %eax,0x30(%esp)
50a72e:	e9 3d 01 00 00       	jmp    0x50a870
50a733:	8b 54 24 30          	mov    0x30(%esp),%edx
50a737:	8b 1a                	mov    (%edx),%ebx
50a739:	8b 44 24 08          	mov    0x8(%esp),%eax
50a73d:	3b 44 24 0c          	cmp    0xc(%esp),%eax
50a741:	73 05                	jae    0x50a748
50a743:	8b 53 34             	mov    0x34(%ebx),%edx
50a746:	eb 03                	jmp    0x50a74b
50a748:	8b 53 44             	mov    0x44(%ebx),%edx
50a74b:	89 54 24 24          	mov    %edx,0x24(%esp)
50a74f:	8b 44 24 08          	mov    0x8(%esp),%eax
50a753:	f7 6b 40             	imull  0x40(%ebx)
50a756:	89 44 24 2c          	mov    %eax,0x2c(%esp)
50a75a:	8b 4c 24 20          	mov    0x20(%esp),%ecx
50a75e:	c1 e1 03             	shl    $0x3,%ecx
50a761:	33 c0                	xor    %eax,%eax
50a763:	89 4c 24 28          	mov    %ecx,0x28(%esp)
50a767:	89 44 24 1c          	mov    %eax,0x1c(%esp)
50a76b:	8b 54 24 38          	mov    0x38(%esp),%edx
50a76f:	8b ca                	mov    %edx,%ecx
50a771:	89 4c 24 34          	mov    %ecx,0x34(%esp)
50a775:	e9 db 00 00 00       	jmp    0x50a855
50a77a:	8b 46 08             	mov    0x8(%esi),%eax
50a77d:	3b 44 24 10          	cmp    0x10(%esp),%eax
50a781:	72 0d                	jb     0x50a790
50a783:	8b 54 24 20          	mov    0x20(%esp),%edx
50a787:	03 54 24 1c          	add    0x1c(%esp),%edx
50a78b:	3b 53 48             	cmp    0x48(%ebx),%edx
50a78e:	7d 77                	jge    0x50a807
50a790:	8b 4c 24 14          	mov    0x14(%esp),%ecx
50a794:	8b 44 8e 18          	mov    0x18(%esi,%ecx,4),%eax
50a798:	50                   	push   %eax
50a799:	8b 54 24 2c          	mov    0x2c(%esp),%edx
50a79d:	52                   	push   %edx
50a79e:	8b 4c 24 34          	mov    0x34(%esp),%ecx
50a7a2:	51                   	push   %ecx
50a7a3:	8b 44 24 30          	mov    0x30(%esp),%eax
50a7a7:	50                   	push   %eax
50a7a8:	8b 44 24 10          	mov    0x10(%esp),%eax
50a7ac:	8b 54 24 44          	mov    0x44(%esp),%edx
50a7b0:	8b b8 60 01 00 00    	mov    0x160(%eax),%edi
50a7b6:	8b 0a                	mov    (%edx),%ecx
50a7b8:	8b d3                	mov    %ebx,%edx
50a7ba:	ff 57 04             	call   *0x4(%edi)
50a7bd:	8b 43 34             	mov    0x34(%ebx),%eax
50a7c0:	3b 44 24 24          	cmp    0x24(%esp),%eax
50a7c4:	7e 7f                	jle    0x50a845
50a7c6:	2b 44 24 24          	sub    0x24(%esp),%eax
50a7ca:	c1 e0 07             	shl    $0x7,%eax
50a7cd:	50                   	push   %eax
50a7ce:	6a 00                	push   $0x0
50a7d0:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50a7d4:	03 54 24 2c          	add    0x2c(%esp),%edx
50a7d8:	8b 4c 96 18          	mov    0x18(%esi,%edx,4),%ecx
50a7dc:	51                   	push   %ecx
50a7dd:	e8 d2 0a ff ff       	call   0x4fb2b4
50a7e2:	83 c4 0c             	add    $0xc,%esp
50a7e5:	8b 44 24 24          	mov    0x24(%esp),%eax
50a7e9:	eb 15                	jmp    0x50a800
50a7eb:	8b 54 24 14          	mov    0x14(%esp),%edx
50a7ef:	03 d0                	add    %eax,%edx
50a7f1:	40                   	inc    %eax
50a7f2:	8b 4c 96 14          	mov    0x14(%esi,%edx,4),%ecx
50a7f6:	8b 54 96 18          	mov    0x18(%esi,%edx,4),%edx
50a7fa:	66 8b 09             	mov    (%ecx),%cx
50a7fd:	66 89 0a             	mov    %cx,(%edx)
50a800:	3b 43 34             	cmp    0x34(%ebx),%eax
50a803:	7c e6                	jl     0x50a7eb
50a805:	eb 3e                	jmp    0x50a845
50a807:	8b 43 34             	mov    0x34(%ebx),%eax
50a80a:	c1 e0 07             	shl    $0x7,%eax
50a80d:	50                   	push   %eax
50a80e:	6a 00                	push   $0x0
50a810:	8b 44 24 1c          	mov    0x1c(%esp),%eax
50a814:	8b 54 86 18          	mov    0x18(%esi,%eax,4),%edx
50a818:	52                   	push   %edx
50a819:	e8 96 0a ff ff       	call   0x4fb2b4
50a81e:	83 c4 0c             	add    $0xc,%esp
50a821:	33 c0                	xor    %eax,%eax
50a823:	8b 54 24 14          	mov    0x14(%esp),%edx
50a827:	8d 54 96 14          	lea    0x14(%esi,%edx,4),%edx
50a82b:	eb 13                	jmp    0x50a840
50a82d:	8b 4c 24 14          	mov    0x14(%esp),%ecx
50a831:	8b 3a                	mov    (%edx),%edi
50a833:	03 c8                	add    %eax,%ecx
50a835:	40                   	inc    %eax
50a836:	66 8b 3f             	mov    (%edi),%di
50a839:	8b 4c 8e 18          	mov    0x18(%esi,%ecx,4),%ecx
50a83d:	66 89 39             	mov    %di,(%ecx)
50a840:	3b 43 34             	cmp    0x34(%ebx),%eax
50a843:	7c e8                	jl     0x50a82d
50a845:	8b 43 34             	mov    0x34(%ebx),%eax
50a848:	01 44 24 14          	add    %eax,0x14(%esp)
50a84c:	83 44 24 28 08       	addl   $0x8,0x28(%esp)
50a851:	ff 44 24 1c          	incl   0x1c(%esp)
50a855:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50a859:	3b 53 38             	cmp    0x38(%ebx),%edx
50a85c:	0f 8c 18 ff ff ff    	jl     0x50a77a
50a862:	ff 44 24 18          	incl   0x18(%esp)
50a866:	83 44 24 38 04       	addl   $0x4,0x38(%esp)
50a86b:	83 44 24 30 04       	addl   $0x4,0x30(%esp)
50a870:	8b 0c 24             	mov    (%esp),%ecx
50a873:	8b 81 ec 00 00 00    	mov    0xec(%ecx),%eax
50a879:	3b 44 24 18          	cmp    0x18(%esp),%eax
50a87d:	0f 8f b0 fe ff ff    	jg     0x50a733
50a883:	8d 56 18             	lea    0x18(%esi),%edx
50a886:	8b 04 24             	mov    (%esp),%eax
50a889:	8b 88 64 01 00 00    	mov    0x164(%eax),%ecx
50a88f:	ff 51 04             	call   *0x4(%ecx)
50a892:	85 c0                	test   %eax,%eax
50a894:	75 12                	jne    0x50a8a8
50a896:	8b 54 24 20          	mov    0x20(%esp),%edx
50a89a:	89 56 10             	mov    %edx,0x10(%esi)
50a89d:	8b 44 24 08          	mov    0x8(%esp),%eax
50a8a1:	89 46 0c             	mov    %eax,0xc(%esi)
50a8a4:	33 c0                	xor    %eax,%eax
50a8a6:	eb 38                	jmp    0x50a8e0
50a8a8:	ff 44 24 08          	incl   0x8(%esp)
50a8ac:	8b 54 24 08          	mov    0x8(%esp),%edx
50a8b0:	3b 54 24 0c          	cmp    0xc(%esp),%edx
50a8b4:	0f 86 51 fe ff ff    	jbe    0x50a70b
50a8ba:	33 c9                	xor    %ecx,%ecx
50a8bc:	89 4e 0c             	mov    %ecx,0xc(%esi)
50a8bf:	ff 44 24 20          	incl   0x20(%esp)
50a8c3:	8b 46 14             	mov    0x14(%esi),%eax
50a8c6:	3b 44 24 20          	cmp    0x20(%esp),%eax
50a8ca:	0f 8f 26 fe ff ff    	jg     0x50a6f6
50a8d0:	ff 46 08             	incl   0x8(%esi)
50a8d3:	8b 04 24             	mov    (%esp),%eax
50a8d6:	e8 fd fc ff ff       	call   0x50a5d8
50a8db:	b8 01 00 00 00       	mov    $0x1,%eax
50a8e0:	83 c4 3c             	add    $0x3c,%esp
50a8e3:	5f                   	pop    %edi
50a8e4:	5e                   	pop    %esi
50a8e5:	5b                   	pop    %ebx
50a8e6:	c3                   	ret
50a8e7:	90                   	nop
50a8e8:	53                   	push   %ebx
50a8e9:	56                   	push   %esi
50a8ea:	57                   	push   %edi
50a8eb:	83 c4 b8             	add    $0xffffffb8,%esp
50a8ee:	89 54 24 04          	mov    %edx,0x4(%esp)
50a8f2:	89 04 24             	mov    %eax,(%esp)
50a8f5:	8b 04 24             	mov    (%esp),%eax
50a8f8:	8b 90 50 01 00 00    	mov    0x150(%eax),%edx
50a8fe:	89 54 24 08          	mov    %edx,0x8(%esp)
50a902:	8b 0c 24             	mov    (%esp),%ecx
50a905:	8b 81 e8 00 00 00    	mov    0xe8(%ecx),%eax
50a90b:	48                   	dec    %eax
50a90c:	33 d2                	xor    %edx,%edx
50a90e:	89 44 24 0c          	mov    %eax,0xc(%esp)
50a912:	89 54 24 1c          	mov    %edx,0x1c(%esp)
50a916:	8b 0c 24             	mov    (%esp),%ecx
50a919:	8b 41 3c             	mov    0x3c(%ecx),%eax
50a91c:	89 44 24 28          	mov    %eax,0x28(%esp)
50a920:	8b 54 24 04          	mov    0x4(%esp),%edx
50a924:	8b ca                	mov    %edx,%ecx
50a926:	89 4c 24 40          	mov    %ecx,0x40(%esp)
50a92a:	8b 44 24 08          	mov    0x8(%esp),%eax
50a92e:	8d 50 40             	lea    0x40(%eax),%edx
50a931:	89 54 24 34          	mov    %edx,0x34(%esp)
50a935:	e9 1b 02 00 00       	jmp    0x50ab55
50a93a:	8b 4c 24 28          	mov    0x28(%esp),%ecx
50a93e:	8b 41 0c             	mov    0xc(%ecx),%eax
50a941:	50                   	push   %eax
50a942:	6a 01                	push   $0x1
50a944:	8b 54 24 10          	mov    0x10(%esp),%edx
50a948:	8b 4a 08             	mov    0x8(%edx),%ecx
50a94b:	0f af c8             	imul   %eax,%ecx
50a94e:	8b 44 24 3c          	mov    0x3c(%esp),%eax
50a952:	8b 10                	mov    (%eax),%edx
50a954:	8b 44 24 08          	mov    0x8(%esp),%eax
50a958:	8b 58 04             	mov    0x4(%eax),%ebx
50a95b:	ff 53 20             	call   *0x20(%ebx)
50a95e:	89 44 24 2c          	mov    %eax,0x2c(%esp)
50a962:	8b 44 24 08          	mov    0x8(%esp),%eax
50a966:	8b 50 08             	mov    0x8(%eax),%edx
50a969:	3b 54 24 0c          	cmp    0xc(%esp),%edx
50a96d:	73 0d                	jae    0x50a97c
50a96f:	8b 4c 24 28          	mov    0x28(%esp),%ecx
50a973:	8b 41 0c             	mov    0xc(%ecx),%eax
50a976:	89 44 24 24          	mov    %eax,0x24(%esp)
50a97a:	eb 21                	jmp    0x50a99d
50a97c:	8b 54 24 28          	mov    0x28(%esp),%edx
50a980:	8b 42 20             	mov    0x20(%edx),%eax
50a983:	8b 54 24 28          	mov    0x28(%esp),%edx
50a987:	8b 4a 0c             	mov    0xc(%edx),%ecx
50a98a:	33 d2                	xor    %edx,%edx
50a98c:	f7 f1                	div    %ecx
50a98e:	89 54 24 24          	mov    %edx,0x24(%esp)
50a992:	83 7c 24 24 00       	cmpl   $0x0,0x24(%esp)
50a997:	75 04                	jne    0x50a99d
50a999:	89 4c 24 24          	mov    %ecx,0x24(%esp)
50a99d:	8b 44 24 28          	mov    0x28(%esp),%eax
50a9a1:	33 d2                	xor    %edx,%edx
50a9a3:	8b 48 1c             	mov    0x1c(%eax),%ecx
50a9a6:	89 4c 24 10          	mov    %ecx,0x10(%esp)
50a9aa:	8b 44 24 28          	mov    0x28(%esp),%eax
50a9ae:	8b 58 08             	mov    0x8(%eax),%ebx
50a9b1:	8b 44 24 10          	mov    0x10(%esp),%eax
50a9b5:	f7 f3                	div    %ebx
50a9b7:	8b f2                	mov    %edx,%esi
50a9b9:	85 f6                	test   %esi,%esi
50a9bb:	7e 06                	jle    0x50a9c3
50a9bd:	8b c3                	mov    %ebx,%eax
50a9bf:	2b c6                	sub    %esi,%eax
50a9c1:	8b f0                	mov    %eax,%esi
50a9c3:	33 d2                	xor    %edx,%edx
50a9c5:	89 54 24 20          	mov    %edx,0x20(%esp)
50a9c9:	8b 4c 24 40          	mov    0x40(%esp),%ecx
50a9cd:	8b c1                	mov    %ecx,%eax
50a9cf:	89 44 24 3c          	mov    %eax,0x3c(%esp)
50a9d3:	8b 54 24 2c          	mov    0x2c(%esp),%edx
50a9d7:	8b ca                	mov    %edx,%ecx
50a9d9:	89 4c 24 38          	mov    %ecx,0x38(%esp)
50a9dd:	8b 44 24 20          	mov    0x20(%esp),%eax
50a9e1:	3b 44 24 24          	cmp    0x24(%esp),%eax
50a9e5:	0f 8d 90 00 00 00    	jge    0x50aa7b
50a9eb:	8b 54 24 38          	mov    0x38(%esp),%edx
50a9ef:	8b 0a                	mov    (%edx),%ecx
50a9f1:	89 4c 24 30          	mov    %ecx,0x30(%esp)
50a9f5:	8b 44 24 30          	mov    0x30(%esp),%eax
50a9f9:	50                   	push   %eax
50a9fa:	8b 54 24 24          	mov    0x24(%esp),%edx
50a9fe:	c1 e2 03             	shl    $0x3,%edx
50aa01:	52                   	push   %edx
50aa02:	6a 00                	push   $0x0
50aa04:	8b 4c 24 1c          	mov    0x1c(%esp),%ecx
50aa08:	51                   	push   %ecx
50aa09:	8b 44 24 4c          	mov    0x4c(%esp),%eax
50aa0d:	8b 54 24 38          	mov    0x38(%esp),%edx
50aa11:	8b 08                	mov    (%eax),%ecx
50aa13:	8b 44 24 10          	mov    0x10(%esp),%eax
50aa17:	8b b8 60 01 00 00    	mov    0x160(%eax),%edi
50aa1d:	ff 57 04             	call   *0x4(%edi)
50aa20:	85 f6                	test   %esi,%esi
50aa22:	7e 40                	jle    0x50aa64
50aa24:	8b 44 24 10          	mov    0x10(%esp),%eax
50aa28:	c1 e0 07             	shl    $0x7,%eax
50aa2b:	01 44 24 30          	add    %eax,0x30(%esp)
50aa2f:	8b d6                	mov    %esi,%edx
50aa31:	c1 e2 07             	shl    $0x7,%edx
50aa34:	52                   	push   %edx
50aa35:	6a 00                	push   $0x0
50aa37:	8b 4c 24 38          	mov    0x38(%esp),%ecx
50aa3b:	51                   	push   %ecx
50aa3c:	e8 73 08 ff ff       	call   0x4fb2b4
50aa41:	83 c4 0c             	add    $0xc,%esp
50aa44:	8b 44 24 30          	mov    0x30(%esp),%eax
50aa48:	8b 54 24 30          	mov    0x30(%esp),%edx
50aa4c:	66 8b 48 80          	mov    -0x80(%eax),%cx
50aa50:	33 c0                	xor    %eax,%eax
50aa52:	3b f0                	cmp    %eax,%esi
50aa54:	7e 0e                	jle    0x50aa64
50aa56:	66 89 0a             	mov    %cx,(%edx)
50aa59:	40                   	inc    %eax
50aa5a:	81 c2 80 00 00 00    	add    $0x80,%edx
50aa60:	3b f0                	cmp    %eax,%esi
50aa62:	7f f2                	jg     0x50aa56
50aa64:	ff 44 24 20          	incl   0x20(%esp)
50aa68:	83 44 24 38 04       	addl   $0x4,0x38(%esp)
50aa6d:	8b 44 24 20          	mov    0x20(%esp),%eax
50aa71:	3b 44 24 24          	cmp    0x24(%esp),%eax
50aa75:	0f 8c 70 ff ff ff    	jl     0x50a9eb
50aa7b:	8b 4c 24 08          	mov    0x8(%esp),%ecx
50aa7f:	8b 41 08             	mov    0x8(%ecx),%eax
50aa82:	3b 44 24 0c          	cmp    0xc(%esp),%eax
50aa86:	0f 85 b6 00 00 00    	jne    0x50ab42
50aa8c:	01 74 24 10          	add    %esi,0x10(%esp)
50aa90:	8b 44 24 10          	mov    0x10(%esp),%eax
50aa94:	33 d2                	xor    %edx,%edx
50aa96:	f7 f3                	div    %ebx
50aa98:	89 44 24 14          	mov    %eax,0x14(%esp)
50aa9c:	8b 4c 24 24          	mov    0x24(%esp),%ecx
50aaa0:	89 4c 24 20          	mov    %ecx,0x20(%esp)
50aaa4:	8b 44 24 2c          	mov    0x2c(%esp),%eax
50aaa8:	8b 54 24 20          	mov    0x20(%esp),%edx
50aaac:	8d 0c 90             	lea    (%eax,%edx,4),%ecx
50aaaf:	89 4c 24 44          	mov    %ecx,0x44(%esp)
50aab3:	eb 7c                	jmp    0x50ab31
50aab5:	8b 44 24 44          	mov    0x44(%esp),%eax
50aab9:	8b 10                	mov    (%eax),%edx
50aabb:	89 54 24 30          	mov    %edx,0x30(%esp)
50aabf:	8b 4c 24 44          	mov    0x44(%esp),%ecx
50aac3:	8b 44 24 10          	mov    0x10(%esp),%eax
50aac7:	c1 e0 07             	shl    $0x7,%eax
50aaca:	8b 71 fc             	mov    -0x4(%ecx),%esi
50aacd:	50                   	push   %eax
50aace:	6a 00                	push   $0x0
50aad0:	8b 54 24 38          	mov    0x38(%esp),%edx
50aad4:	52                   	push   %edx
50aad5:	e8 da 07 ff ff       	call   0x4fb2b4
50aada:	83 c4 0c             	add    $0xc,%esp
50aadd:	33 c9                	xor    %ecx,%ecx
50aadf:	89 4c 24 18          	mov    %ecx,0x18(%esp)
50aae3:	8b 44 24 18          	mov    0x18(%esp),%eax
50aae7:	3b 44 24 14          	cmp    0x14(%esp),%eax