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)
503bb7:	75 1c                	jne    0x503bd5
503bb9:	8b 14 24             	mov    (%esp),%edx
503bbc:	8b 04 24             	mov    (%esp),%eax
503bbf:	8b 4a 20             	mov    0x20(%edx),%ecx
503bc2:	8b 70 04             	mov    0x4(%eax),%esi
503bc5:	c1 e1 03             	shl    $0x3,%ecx
503bc8:	ba 01 00 00 00       	mov    $0x1,%edx
503bcd:	8d 0c 49             	lea    (%ecx,%ecx,2),%ecx
503bd0:	ff 16                	call   *(%esi)
503bd2:	89 43 70             	mov    %eax,0x70(%ebx)
503bd5:	8b 04 24             	mov    (%esp),%eax
503bd8:	8b 73 70             	mov    0x70(%ebx),%esi
503bdb:	33 db                	xor    %ebx,%ebx
503bdd:	8b 90 d4 00 00 00    	mov    0xd4(%eax),%edx
503be3:	89 54 24 08          	mov    %edx,0x8(%esp)
503be7:	e9 89 00 00 00       	jmp    0x503c75
503bec:	8b 4c 24 08          	mov    0x8(%esp),%ecx
503bf0:	8b 41 4c             	mov    0x4c(%ecx),%eax
503bf3:	85 c0                	test   %eax,%eax
503bf5:	75 07                	jne    0x503bfe
503bf7:	33 c0                	xor    %eax,%eax
503bf9:	e9 87 00 00 00       	jmp    0x503c85
503bfe:	66 83 38 00          	cmpw   $0x0,(%eax)
503c02:	74 23                	je     0x503c27
503c04:	66 83 78 02 00       	cmpw   $0x0,0x2(%eax)
503c09:	74 1c                	je     0x503c27
503c0b:	66 83 78 10 00       	cmpw   $0x0,0x10(%eax)
503c10:	74 15                	je     0x503c27
503c12:	66 83 78 20 00       	cmpw   $0x0,0x20(%eax)
503c17:	74 0e                	je     0x503c27
503c19:	66 83 78 12 00       	cmpw   $0x0,0x12(%eax)
503c1e:	74 07                	je     0x503c27
503c20:	66 83 78 04 00       	cmpw   $0x0,0x4(%eax)
503c25:	75 04                	jne    0x503c2b
503c27:	33 c0                	xor    %eax,%eax
503c29:	eb 5a                	jmp    0x503c85
503c2b:	8b 14 24             	mov    (%esp),%edx
503c2e:	8b 82 9c 00 00 00    	mov    0x9c(%edx),%eax
503c34:	8b d3                	mov    %ebx,%edx
503c36:	c1 e2 08             	shl    $0x8,%edx
503c39:	03 c2                	add    %edx,%eax
503c3b:	83 38 00             	cmpl   $0x0,(%eax)
503c3e:	7d 04                	jge    0x503c44
503c40:	33 c0                	xor    %eax,%eax
503c42:	eb 41                	jmp    0x503c85
503c44:	b9 01 00 00 00       	mov    $0x1,%ecx
503c49:	8d 56 04             	lea    0x4(%esi),%edx
503c4c:	83 c0 04             	add    $0x4,%eax
503c4f:	8b 38                	mov    (%eax),%edi
503c51:	89 3a                	mov    %edi,(%edx)
503c53:	83 38 00             	cmpl   $0x0,(%eax)
503c56:	74 08                	je     0x503c60
503c58:	c7 44 24 04 01 00 00 	movl   $0x1,0x4(%esp)
503c5f:	00
503c60:	41                   	inc    %ecx
503c61:	83 c2 04             	add    $0x4,%edx
503c64:	83 c0 04             	add    $0x4,%eax
503c67:	83 f9 05             	cmp    $0x5,%ecx
503c6a:	7e e3                	jle    0x503c4f
503c6c:	83 c6 18             	add    $0x18,%esi
503c6f:	43                   	inc    %ebx
503c70:	83 44 24 08 54       	addl   $0x54,0x8(%esp)
503c75:	8b 04 24             	mov    (%esp),%eax
503c78:	3b 58 20             	cmp    0x20(%eax),%ebx
503c7b:	0f 8c 6b ff ff ff    	jl     0x503bec
503c81:	8b 44 24 04          	mov    0x4(%esp),%eax
503c85:	83 c4 0c             	add    $0xc,%esp
503c88:	5f                   	pop    %edi
503c89:	5e                   	pop    %esi
503c8a:	5b                   	pop    %ebx
503c8b:	c3                   	ret
503c8c:	53                   	push   %ebx
503c8d:	56                   	push   %esi
503c8e:	81 c4 e8 fe ff ff    	add    $0xfffffee8,%esp
503c94:	89 54 24 04          	mov    %edx,0x4(%esp)
503c98:	89 04 24             	mov    %eax,(%esp)
503c9b:	8b 04 24             	mov    (%esp),%eax
503c9e:	8b 90 a4 01 00 00    	mov    0x1a4(%eax),%edx
503ca4:	89 54 24 08          	mov    %edx,0x8(%esp)
503ca8:	8b 0c 24             	mov    (%esp),%ecx
503cab:	8b 81 38 01 00 00    	mov    0x138(%ecx),%eax
503cb1:	48                   	dec    %eax
503cb2:	89 44 24 0c          	mov    %eax,0xc(%esp)
503cb6:	eb 63                	jmp    0x503d1b
503cb8:	8b 14 24             	mov    (%esp),%edx
503cbb:	8b 04 24             	mov    (%esp),%eax
503cbe:	8b 8a 94 00 00 00    	mov    0x94(%edx),%ecx
503cc4:	3b 88 8c 00 00 00    	cmp    0x8c(%eax),%ecx
503cca:	75 39                	jne    0x503d05
503ccc:	8b 14 24             	mov    (%esp),%edx
503ccf:	83 ba 88 01 00 00 00 	cmpl   $0x0,0x188(%edx)
503cd6:	75 07                	jne    0x503cdf
503cd8:	b9 01 00 00 00       	mov    $0x1,%ecx
503cdd:	eb 02                	jmp    0x503ce1
503cdf:	33 c9                	xor    %ecx,%ecx
503ce1:	89 8c 24 90 00 00 00 	mov    %ecx,0x90(%esp)
503ce8:	8b 04 24             	mov    (%esp),%eax
503ceb:	8b 90 90 00 00 00    	mov    0x90(%eax),%edx
503cf1:	8b 04 24             	mov    (%esp),%eax
503cf4:	8b 88 98 00 00 00    	mov    0x98(%eax),%ecx
503cfa:	03 8c 24 90 00 00 00 	add    0x90(%esp),%ecx
503d01:	3b d1                	cmp    %ecx,%edx
503d03:	77 3d                	ja     0x503d42
503d05:	8b 04 24             	mov    (%esp),%eax
503d08:	8b 90 ac 01 00 00    	mov    0x1ac(%eax),%edx
503d0e:	ff 12                	call   *(%edx)
503d10:	85 c0                	test   %eax,%eax
503d12:	75 07                	jne    0x503d1b
503d14:	33 c0                	xor    %eax,%eax
503d16:	e9 36 07 00 00       	jmp    0x504451
503d1b:	8b 14 24             	mov    (%esp),%edx
503d1e:	8b 04 24             	mov    (%esp),%eax
503d21:	8b 8a 94 00 00 00    	mov    0x94(%edx),%ecx
503d27:	3b 88 8c 00 00 00    	cmp    0x8c(%eax),%ecx
503d2d:	7c 13                	jl     0x503d42
503d2f:	8b 14 24             	mov    (%esp),%edx
503d32:	8b 8a ac 01 00 00    	mov    0x1ac(%edx),%ecx
503d38:	83 79 14 00          	cmpl   $0x0,0x14(%ecx)
503d3c:	0f 84 76 ff ff ff    	je     0x503cb8
503d42:	33 c0                	xor    %eax,%eax
503d44:	89 44 24 18          	mov    %eax,0x18(%esp)
503d48:	8b 14 24             	mov    (%esp),%edx
503d4b:	8b 8a d4 00 00 00    	mov    0xd4(%edx),%ecx
503d51:	89 4c 24 40          	mov    %ecx,0x40(%esp)
503d55:	e9 c1 06 00 00       	jmp    0x50441b
503d5a:	8b 44 24 40          	mov    0x40(%esp),%eax
503d5e:	83 78 30 00          	cmpl   $0x0,0x30(%eax)
503d62:	0f 84 aa 06 00 00    	je     0x504412
503d68:	8b 14 24             	mov    (%esp),%edx
503d6b:	8b 8a 98 00 00 00    	mov    0x98(%edx),%ecx
503d71:	3b 4c 24 0c          	cmp    0xc(%esp),%ecx
503d75:	73 1d                	jae    0x503d94
503d77:	8b 44 24 40          	mov    0x40(%esp),%eax
503d7b:	8b 50 0c             	mov    0xc(%eax),%edx
503d7e:	89 54 24 20          	mov    %edx,0x20(%esp)
503d82:	8b 4c 24 20          	mov    0x20(%esp),%ecx
503d86:	03 c9                	add    %ecx,%ecx
503d88:	89 4c 24 24          	mov    %ecx,0x24(%esp)
503d8c:	33 c0                	xor    %eax,%eax
503d8e:	89 44 24 4c          	mov    %eax,0x4c(%esp)
503d92:	eb 38                	jmp    0x503dcc
503d94:	8b 54 24 40          	mov    0x40(%esp),%edx
503d98:	8b 42 20             	mov    0x20(%edx),%eax
503d9b:	8b 54 24 40          	mov    0x40(%esp),%edx
503d9f:	8b 4a 0c             	mov    0xc(%edx),%ecx
503da2:	33 d2                	xor    %edx,%edx
503da4:	f7 f1                	div    %ecx
503da6:	89 54 24 20          	mov    %edx,0x20(%esp)
503daa:	83 7c 24 20 00       	cmpl   $0x0,0x20(%esp)
503daf:	75 0b                	jne    0x503dbc
503db1:	8b 44 24 40          	mov    0x40(%esp),%eax
503db5:	8b 40 0c             	mov    0xc(%eax),%eax
503db8:	89 44 24 20          	mov    %eax,0x20(%esp)
503dbc:	8b 54 24 20          	mov    0x20(%esp),%edx
503dc0:	89 54 24 24          	mov    %edx,0x24(%esp)
503dc4:	c7 44 24 4c 01 00 00 	movl   $0x1,0x4c(%esp)
503dcb:	00
503dcc:	8b 0c 24             	mov    (%esp),%ecx
503dcf:	83 b9 98 00 00 00 00 	cmpl   $0x0,0x98(%ecx)
503dd6:	76 55                	jbe    0x503e2d
503dd8:	8b 44 24 40          	mov    0x40(%esp),%eax
503ddc:	8b 50 0c             	mov    0xc(%eax),%edx
503ddf:	01 54 24 24          	add    %edx,0x24(%esp)
503de3:	8b 4c 24 24          	mov    0x24(%esp),%ecx
503de7:	51                   	push   %ecx
503de8:	6a 00                	push   $0x0
503dea:	8b 44 24 08          	mov    0x8(%esp),%eax
503dee:	8b 54 24 48          	mov    0x48(%esp),%edx
503df2:	8b 88 98 00 00 00    	mov    0x98(%eax),%ecx
503df8:	8b 44 24 10          	mov    0x10(%esp),%eax
503dfc:	49                   	dec    %ecx
503dfd:	0f af 4a 0c          	imul   0xc(%edx),%ecx
503e01:	8b 54 24 20          	mov    0x20(%esp),%edx
503e05:	8b 54 90 48          	mov    0x48(%eax,%edx,4),%edx
503e09:	8b 44 24 08          	mov    0x8(%esp),%eax