503713:	8b 4c 24 20          	mov    0x20(%esp),%ecx
503717:	3b 4b 38             	cmp    0x38(%ebx),%ecx
50371a:	7c 92                	jl     0x5036ae
50371c:	ff 44 24 1c          	incl   0x1c(%esp)
503720:	83 44 24 3c 04       	addl   $0x4,0x3c(%esp)
503725:	83 44 24 38 04       	addl   $0x4,0x38(%esp)
50372a:	8b 04 24             	mov    (%esp),%eax
50372d:	8b 90 40 01 00 00    	mov    0x140(%eax),%edx
503733:	3b 54 24 1c          	cmp    0x1c(%esp),%edx
503737:	0f 8f 05 ff ff ff    	jg     0x503642
50373d:	ff 44 24 0c          	incl   0xc(%esp)
503741:	8b 4c 24 0c          	mov    0xc(%esp),%ecx
503745:	3b 4c 24 10          	cmp    0x10(%esp),%ecx
503749:	0f 86 78 fe ff ff    	jbe    0x5035c7
50374f:	8b 44 24 08          	mov    0x8(%esp),%eax
503753:	33 d2                	xor    %edx,%edx
503755:	89 50 14             	mov    %edx,0x14(%eax)
503758:	ff 44 24 24          	incl   0x24(%esp)
50375c:	8b 4c 24 08          	mov    0x8(%esp),%ecx
503760:	8b 41 1c             	mov    0x1c(%ecx),%eax
503763:	3b 44 24 24          	cmp    0x24(%esp),%eax
503767:	0f 8f 41 fe ff ff    	jg     0x5035ae
50376d:	8b 14 24             	mov    (%esp),%edx
503770:	ff 82 98 00 00 00    	incl   0x98(%edx)
503776:	8b 0c 24             	mov    (%esp),%ecx
503779:	ff 81 90 00 00 00    	incl   0x90(%ecx)
50377f:	8b 81 90 00 00 00    	mov    0x90(%ecx),%eax
503785:	8b 14 24             	mov    (%esp),%edx
503788:	3b 82 38 01 00 00    	cmp    0x138(%edx),%eax
50378e:	73 0f                	jae    0x50379f
503790:	8b 04 24             	mov    (%esp),%eax
503793:	e8 38 fd ff ff       	call   0x5034d0
503798:	b8 03 00 00 00       	mov    $0x3,%eax
50379d:	eb 11                	jmp    0x5037b0
50379f:	8b 04 24             	mov    (%esp),%eax
5037a2:	8b 90 ac 01 00 00    	mov    0x1ac(%eax),%edx
5037a8:	ff 52 0c             	call   *0xc(%edx)
5037ab:	b8 04 00 00 00       	mov    $0x4,%eax
5037b0:	83 c4 40             	add    $0x40,%esp
5037b3:	5f                   	pop    %edi
5037b4:	5e                   	pop    %esi
5037b5:	5b                   	pop    %ebx
5037b6:	c3                   	ret
5037b7:	90                   	nop
5037b8:	33 c0                	xor    %eax,%eax
5037ba:	c3                   	ret
5037bb:	90                   	nop
5037bc:	53                   	push   %ebx
5037bd:	56                   	push   %esi
5037be:	57                   	push   %edi
5037bf:	83 c4 c8             	add    $0xffffffc8,%esp
5037c2:	33 c9                	xor    %ecx,%ecx
5037c4:	89 04 24             	mov    %eax,(%esp)
5037c7:	8b 04 24             	mov    (%esp),%eax
5037ca:	8d 74 24 28          	lea    0x28(%esp),%esi
5037ce:	8b 90 a4 01 00 00    	mov    0x1a4(%eax),%edx
5037d4:	89 54 24 04          	mov    %edx,0x4(%esp)
5037d8:	89 4c 24 0c          	mov    %ecx,0xc(%esp)
5037dc:	8b 04 24             	mov    (%esp),%eax
5037df:	8d 98 44 01 00 00    	lea    0x144(%eax),%ebx
5037e5:	eb 42                	jmp    0x503829
5037e7:	8b 03                	mov    (%ebx),%eax
5037e9:	89 44 24 18          	mov    %eax,0x18(%esp)
5037ed:	8b 54 24 18          	mov    0x18(%esp),%edx
5037f1:	8b 7a 0c             	mov    0xc(%edx),%edi
5037f4:	57                   	push   %edi
5037f5:	6a 01                	push   $0x1
5037f7:	8b 44 24 08          	mov    0x8(%esp),%eax
5037fb:	8b 54 24 20          	mov    0x20(%esp),%edx
5037ff:	8b 88 90 00 00 00    	mov    0x90(%eax),%ecx
503805:	8b 42 04             	mov    0x4(%edx),%eax
503808:	0f af cf             	imul   %edi,%ecx
50380b:	8b 54 24 0c          	mov    0xc(%esp),%edx
50380f:	8b 54 82 48          	mov    0x48(%edx,%eax,4),%edx
503813:	8b 44 24 08          	mov    0x8(%esp),%eax
503817:	8b 78 04             	mov    0x4(%eax),%edi
50381a:	ff 57 20             	call   *0x20(%edi)
50381d:	89 06                	mov    %eax,(%esi)
50381f:	83 c6 04             	add    $0x4,%esi
503822:	ff 44 24 0c          	incl   0xc(%esp)
503826:	83 c3 04             	add    $0x4,%ebx
503829:	8b 04 24             	mov    (%esp),%eax
50382c:	8b 90 40 01 00 00    	mov    0x140(%eax),%edx
503832:	3b 54 24 0c          	cmp    0xc(%esp),%edx
503836:	7f af                	jg     0x5037e7
503838:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50383c:	8b 41 18             	mov    0x18(%ecx),%eax
50383f:	89 44 24 10          	mov    %eax,0x10(%esp)
503843:	e9 11 01 00 00       	jmp    0x503959
503848:	8b 54 24 04          	mov    0x4(%esp),%edx
50384c:	8b 4a 14             	mov    0x14(%edx),%ecx
50384f:	89 4c 24 08          	mov    %ecx,0x8(%esp)
503853:	e9 e1 00 00 00       	jmp    0x503939
503858:	33 db                	xor    %ebx,%ebx
50385a:	33 c0                	xor    %eax,%eax
50385c:	89 44 24 0c          	mov    %eax,0xc(%esp)
503860:	8d 54 24 28          	lea    0x28(%esp),%edx
503864:	89 54 24 24          	mov    %edx,0x24(%esp)
503868:	8b 0c 24             	mov    (%esp),%ecx
50386b:	8d 81 44 01 00 00    	lea    0x144(%ecx),%eax
503871:	89 44 24 1c          	mov    %eax,0x1c(%esp)
503875:	eb 7a                	jmp    0x5038f1
503877:	8b 54 24 1c          	mov    0x1c(%esp),%edx
50387b:	8b 0a                	mov    (%edx),%ecx
50387d:	89 4c 24 18          	mov    %ecx,0x18(%esp)
503881:	8b 44 24 18          	mov    0x18(%esp),%eax
503885:	8b 50 34             	mov    0x34(%eax),%edx
503888:	0f af 54 24 08       	imul   0x8(%esp),%edx
50388d:	89 54 24 14          	mov    %edx,0x14(%esp)
503891:	33 f6                	xor    %esi,%esi
503893:	8b 44 24 24          	mov    0x24(%esp),%eax
503897:	8b d0                	mov    %eax,%edx
503899:	89 54 24 20          	mov    %edx,0x20(%esp)
50389d:	eb 3b                	jmp    0x5038da
50389f:	8b 44 24 20          	mov    0x20(%esp),%eax
5038a3:	8b 4c 24 10          	mov    0x10(%esp),%ecx
5038a7:	03 ce                	add    %esi,%ecx
5038a9:	8b 10                	mov    (%eax),%edx
5038ab:	8b 44 24 14          	mov    0x14(%esp),%eax
5038af:	c1 e0 07             	shl    $0x7,%eax
5038b2:	8b 14 8a             	mov    (%edx,%ecx,4),%edx
5038b5:	03 d0                	add    %eax,%edx
5038b7:	8b 44 24 04          	mov    0x4(%esp),%eax
5038bb:	33 c9                	xor    %ecx,%ecx
5038bd:	8d 44 98 20          	lea    0x20(%eax,%ebx,4),%eax
5038c1:	eb 0d                	jmp    0x5038d0
5038c3:	89 10                	mov    %edx,(%eax)
5038c5:	81 c2 80 00 00 00    	add    $0x80,%edx
5038cb:	43                   	inc    %ebx
5038cc:	83 c0 04             	add    $0x4,%eax
5038cf:	41                   	inc    %ecx
5038d0:	8b 7c 24 18          	mov    0x18(%esp),%edi
5038d4:	3b 4f 34             	cmp    0x34(%edi),%ecx
5038d7:	7c ea                	jl     0x5038c3
5038d9:	46                   	inc    %esi
5038da:	8b 44 24 18          	mov    0x18(%esp),%eax
5038de:	3b 70 38             	cmp    0x38(%eax),%esi
5038e1:	7c bc                	jl     0x50389f
5038e3:	ff 44 24 0c          	incl   0xc(%esp)
5038e7:	83 44 24 24 04       	addl   $0x4,0x24(%esp)
5038ec:	83 44 24 1c 04       	addl   $0x4,0x1c(%esp)
5038f1:	8b 14 24             	mov    (%esp),%edx
5038f4:	8b 8a 40 01 00 00    	mov    0x140(%edx),%ecx
5038fa:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
5038fe:	0f 8f 73 ff ff ff    	jg     0x503877
503904:	8b 04 24             	mov    (%esp),%eax
503907:	8b 54 24 04          	mov    0x4(%esp),%edx
50390b:	83 c2 20             	add    $0x20,%edx
50390e:	8b 88 b4 01 00 00    	mov    0x1b4(%eax),%ecx
503914:	ff 51 04             	call   *0x4(%ecx)
503917:	85 c0                	test   %eax,%eax
503919:	75 1a                	jne    0x503935
50391b:	8b 44 24 04          	mov    0x4(%esp),%eax
50391f:	8b 54 24 10          	mov    0x10(%esp),%edx
503923:	89 50 18             	mov    %edx,0x18(%eax)
503926:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50392a:	8b 44 24 08          	mov    0x8(%esp),%eax
50392e:	89 41 14             	mov    %eax,0x14(%ecx)
503931:	33 c0                	xor    %eax,%eax
503933:	eb 6f                	jmp    0x5039a4
503935:	ff 44 24 08          	incl   0x8(%esp)
503939:	8b 14 24             	mov    (%esp),%edx
50393c:	8b 8a 54 01 00 00    	mov    0x154(%edx),%ecx
503942:	3b 4c 24 08          	cmp    0x8(%esp),%ecx
503946:	0f 87 0c ff ff ff    	ja     0x503858
50394c:	8b 44 24 04          	mov    0x4(%esp),%eax
503950:	33 d2                	xor    %edx,%edx
503952:	89 50 14             	mov    %edx,0x14(%eax)
503955:	ff 44 24 10          	incl   0x10(%esp)
503959:	8b 4c 24 04          	mov    0x4(%esp),%ecx
50395d:	8b 41 1c             	mov    0x1c(%ecx),%eax
503960:	3b 44 24 10          	cmp    0x10(%esp),%eax
503964:	0f 8f de fe ff ff    	jg     0x503848
50396a:	8b 14 24             	mov    (%esp),%edx
50396d:	ff 82 90 00 00 00    	incl   0x90(%edx)
503973:	8b 8a 90 00 00 00    	mov    0x90(%edx),%ecx
503979:	8b 04 24             	mov    (%esp),%eax
50397c:	3b 88 38 01 00 00    	cmp    0x138(%eax),%ecx
503982:	73 0f                	jae    0x503993
503984:	8b 04 24             	mov    (%esp),%eax
503987:	e8 44 fb ff ff       	call   0x5034d0
50398c:	b8 03 00 00 00       	mov    $0x3,%eax
503991:	eb 11                	jmp    0x5039a4
503993:	8b 04 24             	mov    (%esp),%eax
503996:	8b 90 ac 01 00 00    	mov    0x1ac(%eax),%edx
50399c:	ff 52 0c             	call   *0xc(%edx)
50399f:	b8 04 00 00 00       	mov    $0x4,%eax
5039a4:	83 c4 38             	add    $0x38,%esp
5039a7:	5f                   	pop    %edi
5039a8:	5e                   	pop    %esi
5039a9:	5b                   	pop    %ebx
5039aa:	c3                   	ret
5039ab:	90                   	nop
5039ac:	53                   	push   %ebx
5039ad:	56                   	push   %esi
5039ae:	57                   	push   %edi
5039af:	83 c4 d4             	add    $0xffffffd4,%esp
5039b2:	8b fa                	mov    %edx,%edi
5039b4:	89 04 24             	mov    %eax,(%esp)
5039b7:	8b 04 24             	mov    (%esp),%eax
5039ba:	8b b0 a4 01 00 00    	mov    0x1a4(%eax),%esi
5039c0:	8b 04 24             	mov    (%esp),%eax
5039c3:	8b 90 38 01 00 00    	mov    0x138(%eax),%edx
5039c9:	4a                   	dec    %edx
5039ca:	89 54 24 04          	mov    %edx,0x4(%esp)
5039ce:	eb 16                	jmp    0x5039e6
5039d0:	8b 04 24             	mov    (%esp),%eax
5039d3:	8b 90 ac 01 00 00    	mov    0x1ac(%eax),%edx
5039d9:	ff 12                	call   *(%edx)
5039db:	85 c0                	test   %eax,%eax
5039dd:	75 07                	jne    0x5039e6
5039df:	33 c0                	xor    %eax,%eax
5039e1:	e9 8c 01 00 00       	jmp    0x503b72
5039e6:	8b 14 24             	mov    (%esp),%edx
5039e9:	8b 04 24             	mov    (%esp),%eax
5039ec:	8b 8a 8c 00 00 00    	mov    0x8c(%edx),%ecx
5039f2:	3b 88 94 00 00 00    	cmp    0x94(%eax),%ecx
5039f8:	7c d6                	jl     0x5039d0
5039fa:	8b 14 24             	mov    (%esp),%edx
5039fd:	8b 04 24             	mov    (%esp),%eax
503a00:	8b 8a 8c 00 00 00    	mov    0x8c(%edx),%ecx
503a06:	3b 88 94 00 00 00    	cmp    0x94(%eax),%ecx
503a0c:	75 14                	jne    0x503a22
503a0e:	8b 14 24             	mov    (%esp),%edx
503a11:	8b 04 24             	mov    (%esp),%eax
503a14:	8b 8a 90 00 00 00    	mov    0x90(%edx),%ecx
503a1a:	3b 88 98 00 00 00    	cmp    0x98(%eax),%ecx
503a20:	76 ae                	jbe    0x5039d0
503a22:	33 d2                	xor    %edx,%edx
503a24:	8b c7                	mov    %edi,%eax
503a26:	89 54 24 0c          	mov    %edx,0xc(%esp)
503a2a:	8d 56 48             	lea    0x48(%esi),%edx
503a2d:	8b 0c 24             	mov    (%esp),%ecx
503a30:	8b 99 d4 00 00 00    	mov    0xd4(%ecx),%ebx
503a36:	89 44 24 24          	mov    %eax,0x24(%esp)
503a3a:	89 54 24 20          	mov    %edx,0x20(%esp)
503a3e:	e9 f9 00 00 00       	jmp    0x503b3c
503a43:	83 7b 30 00          	cmpl   $0x0,0x30(%ebx)
503a47:	0f 84 de 00 00 00    	je     0x503b2b
503a4d:	8b 43 0c             	mov    0xc(%ebx),%eax
503a50:	50                   	push   %eax
503a51:	6a 00                	push   $0x0
503a53:	8b 54 24 08          	mov    0x8(%esp),%edx
503a57:	8b 8a 98 00 00 00    	mov    0x98(%edx),%ecx
503a5d:	0f af c8             	imul   %eax,%ecx
503a60:	8b 44 24 28          	mov    0x28(%esp),%eax
503a64:	8b 10                	mov    (%eax),%edx
503a66:	8b 44 24 08          	mov    0x8(%esp),%eax
503a6a:	8b 70 04             	mov    0x4(%eax),%esi
503a6d:	ff 56 20             	call   *0x20(%esi)
503a70:	8b c8                	mov    %eax,%ecx
503a72:	8b 04 24             	mov    (%esp),%eax
503a75:	8b 90 98 00 00 00    	mov    0x98(%eax),%edx
503a7b:	3b 54 24 04          	cmp    0x4(%esp),%edx
503a7f:	73 09                	jae    0x503a8a
503a81:	8b 43 0c             	mov    0xc(%ebx),%eax
503a84:	89 44 24 14          	mov    %eax,0x14(%esp)
503a88:	eb 19                	jmp    0x503aa3
503a8a:	8b 43 20             	mov    0x20(%ebx),%eax
503a8d:	8b 73 0c             	mov    0xc(%ebx),%esi
503a90:	33 d2                	xor    %edx,%edx
503a92:	f7 f6                	div    %esi
503a94:	89 54 24 14          	mov    %edx,0x14(%esp)
503a98:	83 7c 24 14 00       	cmpl   $0x0,0x14(%esp)
503a9d:	75 04                	jne    0x503aa3
503a9f:	89 74 24 14          	mov    %esi,0x14(%esp)
503aa3:	8b 04 24             	mov    (%esp),%eax
503aa6:	8b 80 b8 01 00 00    	mov    0x1b8(%eax),%eax
503aac:	8b 54 24 0c          	mov    0xc(%esp),%edx
503ab0:	8b 44 90 04          	mov    0x4(%eax,%edx,4),%eax
503ab4:	89 44 24 1c          	mov    %eax,0x1c(%esp)
503ab8:	8b 54 24 24          	mov    0x24(%esp),%edx
503abc:	8b 02                	mov    (%edx),%eax
503abe:	89 44 24 18          	mov    %eax,0x18(%esp)
503ac2:	33 d2                	xor    %edx,%edx
503ac4:	89 54 24 10          	mov    %edx,0x10(%esp)
503ac8:	89 4c 24 28          	mov    %ecx,0x28(%esp)
503acc:	8b 44 24 10          	mov    0x10(%esp),%eax
503ad0:	3b 44 24 14          	cmp    0x14(%esp),%eax
503ad4:	7d 55                	jge    0x503b2b
503ad6:	8b 54 24 28          	mov    0x28(%esp),%edx
503ada:	33 ff                	xor    %edi,%edi
503adc:	33 c0                	xor    %eax,%eax
503ade:	8b 32                	mov    (%edx),%esi
503ae0:	89 44 24 08          	mov    %eax,0x8(%esp)
503ae4:	eb 1f                	jmp    0x503b05
503ae6:	8b 54 24 18          	mov    0x18(%esp),%edx
503aea:	8b ce                	mov    %esi,%ecx
503aec:	52                   	push   %edx
503aed:	57                   	push   %edi
503aee:	8b 44 24 08          	mov    0x8(%esp),%eax
503af2:	8b d3                	mov    %ebx,%edx
503af4:	ff 54 24 24          	call   *0x24(%esp)
503af8:	81 c6 80 00 00 00    	add    $0x80,%esi
503afe:	03 7b 24             	add    0x24(%ebx),%edi
503b01:	ff 44 24 08          	incl   0x8(%esp)
503b05:	8b 4c 24 08          	mov    0x8(%esp),%ecx
503b09:	3b 4b 1c             	cmp    0x1c(%ebx),%ecx
503b0c:	72 d8                	jb     0x503ae6
503b0e:	8b 43 24             	mov    0x24(%ebx),%eax
503b11:	c1 e0 02             	shl    $0x2,%eax
503b14:	01 44 24 18          	add    %eax,0x18(%esp)
503b18:	ff 44 24 10          	incl   0x10(%esp)
503b1c:	83 44 24 28 04       	addl   $0x4,0x28(%esp)
503b21:	8b 54 24 10          	mov    0x10(%esp),%edx
503b25:	3b 54 24 14          	cmp    0x14(%esp),%edx
503b29:	7c ab                	jl     0x503ad6
503b2b:	83 44 24 20 04       	addl   $0x4,0x20(%esp)
503b30:	83 44 24 24 04       	addl   $0x4,0x24(%esp)
503b35:	ff 44 24 0c          	incl   0xc(%esp)
503b39:	83 c3 54             	add    $0x54,%ebx
503b3c:	8b 0c 24             	mov    (%esp),%ecx
503b3f:	8b 41 20             	mov    0x20(%ecx),%eax
503b42:	3b 44 24 0c          	cmp    0xc(%esp),%eax
503b46:	0f 8f f7 fe ff ff    	jg     0x503a43
503b4c:	8b 14 24             	mov    (%esp),%edx
503b4f:	ff 82 98 00 00 00    	incl   0x98(%edx)
503b55:	8b 8a 98 00 00 00    	mov    0x98(%edx),%ecx
503b5b:	8b 04 24             	mov    (%esp),%eax
503b5e:	3b 88 38 01 00 00    	cmp    0x138(%eax),%ecx
503b64:	73 07                	jae    0x503b6d
503b66:	b8 03 00 00 00       	mov    $0x3,%eax
503b6b:	eb 05                	jmp    0x503b72
503b6d:	b8 04 00 00 00       	mov    $0x4,%eax
503b72:	83 c4 2c             	add    $0x2c,%esp
503b75:	5f                   	pop    %edi
503b76:	5e                   	pop    %esi
503b77:	5b                   	pop    %ebx
503b78:	c3                   	ret
503b79:	90                   	nop
503b7a:	90                   	nop
503b7b:	90                   	nop
503b7c:	53                   	push   %ebx
503b7d:	56                   	push   %esi
503b7e:	57                   	push   %edi
503b7f:	83 c4 f4             	add    $0xfffffff4,%esp
503b82:	89 04 24             	mov    %eax,(%esp)
503b85:	8b 04 24             	mov    (%esp),%eax
503b88:	8b 98 a4 01 00 00    	mov    0x1a4(%eax),%ebx
503b8e:	33 c0                	xor    %eax,%eax
503b90:	89 44 24 04          	mov    %eax,0x4(%esp)
503b94:	8b 14 24             	mov    (%esp),%edx
503b97:	83 ba d8 00 00 00 00 	cmpl   $0x0,0xd8(%edx)
503b9e:	74 0c                	je     0x503bac
503ba0:	8b 0c 24             	mov    (%esp),%ecx
503ba3:	83 b9 9c 00 00 00 00 	cmpl   $0x0,0x9c(%ecx)
503baa:	75 07                	jne    0x503bb3
503bac:	33 c0                	xor    %eax,%eax
503bae:	e9 d2 00 00 00       	jmp    0x503c85
503bb3:	83 7b 70 00          	cmpl   $0x0,0x70(%ebx)