508886:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
50888c:	ff 52 04             	call   *0x4(%edx)
50888f:	8b b3 e4 00 00 00    	mov    0xe4(%ebx),%esi
508895:	c1 e6 03             	shl    $0x3,%esi
508898:	3b f5                	cmp    %ebp,%esi
50889a:	76 0f                	jbe    0x5088ab
50889c:	8b 03                	mov    (%ebx),%eax
50889e:	c7 40 14 15 00 00 00 	movl   $0x15,0x14(%eax)
5088a5:	8b c3                	mov    %ebx,%eax
5088a7:	8b 10                	mov    (%eax),%edx
5088a9:	ff 12                	call   *(%edx)
5088ab:	8b d7                	mov    %edi,%edx
5088ad:	8b c3                	mov    %ebx,%eax
5088af:	8b 88 50 01 00 00    	mov    0x150(%eax),%ecx
5088b5:	ff 51 04             	call   *0x4(%ecx)
5088b8:	85 c0                	test   %eax,%eax
5088ba:	75 04                	jne    0x5088c0
5088bc:	33 c0                	xor    %eax,%eax
5088be:	eb 08                	jmp    0x5088c8
5088c0:	01 b3 d8 00 00 00    	add    %esi,0xd8(%ebx)
5088c6:	8b c6                	mov    %esi,%eax
5088c8:	5d                   	pop    %ebp
5088c9:	5f                   	pop    %edi
5088ca:	5e                   	pop    %esi
5088cb:	5b                   	pop    %ebx
5088cc:	c3                   	ret
5088cd:	8d 40 00             	lea    0x0(%eax),%eax
5088d0:	53                   	push   %ebx
5088d1:	8b d8                	mov    %eax,%ebx
5088d3:	33 c0                	xor    %eax,%eax
5088d5:	56                   	push   %esi
5088d6:	8b f1                	mov    %ecx,%esi
5088d8:	89 43 04             	mov    %eax,0x4(%ebx)
5088db:	83 fa 3d             	cmp    $0x3d,%edx
5088de:	74 19                	je     0x5088f9
5088e0:	8b 03                	mov    (%ebx),%eax
5088e2:	c7 40 14 0a 00 00 00 	movl   $0xa,0x14(%eax)
5088e9:	c7 40 18 3d 00 00 00 	movl   $0x3d,0x18(%eax)
5088f0:	89 50 1c             	mov    %edx,0x1c(%eax)
5088f3:	8b c3                	mov    %ebx,%eax
5088f5:	8b 10                	mov    (%eax),%edx
5088f7:	ff 12                	call   *(%edx)
5088f9:	81 fe 68 01 00 00    	cmp    $0x168,%esi
5088ff:	74 19                	je     0x50891a
508901:	8b 03                	mov    (%ebx),%eax
508903:	c7 40 14 13 00 00 00 	movl   $0x13,0x14(%eax)
50890a:	c7 40 18 68 01 00 00 	movl   $0x168,0x18(%eax)
508911:	89 70 1c             	mov    %esi,0x1c(%eax)
508914:	8b c3                	mov    %ebx,%eax
508916:	8b 10                	mov    (%eax),%edx
508918:	ff 12                	call   *(%edx)
50891a:	8b 33                	mov    (%ebx),%esi
50891c:	68 68 01 00 00       	push   $0x168
508921:	6a 00                	push   $0x0
508923:	53                   	push   %ebx
508924:	e8 8b 29 ff ff       	call   0x4fb2b4
508929:	83 c4 0c             	add    $0xc,%esp
50892c:	89 33                	mov    %esi,(%ebx)
50892e:	33 c0                	xor    %eax,%eax
508930:	89 43 0c             	mov    %eax,0xc(%ebx)
508933:	8b c3                	mov    %ebx,%eax
508935:	e8 c2 4e ff ff       	call   0x4fd7fc
50893a:	33 d2                	xor    %edx,%edx
50893c:	33 c9                	xor    %ecx,%ecx
50893e:	89 53 08             	mov    %edx,0x8(%ebx)
508941:	89 4b 14             	mov    %ecx,0x14(%ebx)
508944:	33 c0                	xor    %eax,%eax
508946:	8d 53 40             	lea    0x40(%ebx),%edx
508949:	89 43 3c             	mov    %eax,0x3c(%ebx)
50894c:	33 c0                	xor    %eax,%eax
50894e:	33 c9                	xor    %ecx,%ecx
508950:	40                   	inc    %eax
508951:	89 0a                	mov    %ecx,(%edx)
508953:	83 c2 04             	add    $0x4,%edx
508956:	83 f8 04             	cmp    $0x4,%eax
508959:	7c f3                	jl     0x50894e
50895b:	33 c0                	xor    %eax,%eax
50895d:	8d 53 50             	lea    0x50(%ebx),%edx
508960:	33 c9                	xor    %ecx,%ecx
508962:	40                   	inc    %eax
508963:	89 0a                	mov    %ecx,(%edx)
508965:	33 c9                	xor    %ecx,%ecx
508967:	89 4a 10             	mov    %ecx,0x10(%edx)
50896a:	83 c2 04             	add    $0x4,%edx
50896d:	83 f8 04             	cmp    $0x4,%eax
508970:	7c ee                	jl     0x508960
508972:	33 c0                	xor    %eax,%eax
508974:	89 43 28             	mov    %eax,0x28(%ebx)
508977:	c7 43 2c 00 00 f0 3f 	movl   $0x3ff00000,0x2c(%ebx)
50897e:	c7 43 10 64 00 00 00 	movl   $0x64,0x10(%ebx)
508985:	5e                   	pop    %esi
508986:	5b                   	pop    %ebx
508987:	c3                   	ret
508988:	e8 93 f2 ff ff       	call   0x507c20
50898d:	c3                   	ret
50898e:	90                   	nop
50898f:	90                   	nop
508990:	e8 5b f2 ff ff       	call   0x507bf0
508995:	c3                   	ret
508996:	90                   	nop
508997:	90                   	nop
508998:	53                   	push   %ebx
508999:	56                   	push   %esi
50899a:	33 c9                	xor    %ecx,%ecx
50899c:	8d 58 40             	lea    0x40(%eax),%ebx
50899f:	8b 33                	mov    (%ebx),%esi
5089a1:	85 f6                	test   %esi,%esi
5089a3:	74 06                	je     0x5089ab
5089a5:	89 96 80 00 00 00    	mov    %edx,0x80(%esi)
5089ab:	41                   	inc    %ecx
5089ac:	83 c3 04             	add    $0x4,%ebx
5089af:	83 f9 04             	cmp    $0x4,%ecx
5089b2:	7c eb                	jl     0x50899f
5089b4:	33 c9                	xor    %ecx,%ecx
5089b6:	83 c0 50             	add    $0x50,%eax
5089b9:	8b 18                	mov    (%eax),%ebx
5089bb:	85 db                	test   %ebx,%ebx
5089bd:	74 06                	je     0x5089c5
5089bf:	89 93 14 01 00 00    	mov    %edx,0x114(%ebx)
5089c5:	8b 58 10             	mov    0x10(%eax),%ebx
5089c8:	85 db                	test   %ebx,%ebx
5089ca:	74 06                	je     0x5089d2
5089cc:	89 93 14 01 00 00    	mov    %edx,0x114(%ebx)
5089d2:	41                   	inc    %ecx
5089d3:	83 c0 04             	add    $0x4,%eax
5089d6:	83 f9 04             	cmp    $0x4,%ecx
5089d9:	7c de                	jl     0x5089b9
5089db:	5e                   	pop    %esi
5089dc:	5b                   	pop    %ebx
5089dd:	c3                   	ret
5089de:	90                   	nop
5089df:	90                   	nop
5089e0:	53                   	push   %ebx
5089e1:	8b d8                	mov    %eax,%ebx
5089e3:	56                   	push   %esi
5089e4:	8b 43 10             	mov    0x10(%ebx),%eax
5089e7:	83 f8 65             	cmp    $0x65,%eax
5089ea:	74 05                	je     0x5089f1
5089ec:	83 f8 66             	cmp    $0x66,%eax
5089ef:	75 27                	jne    0x508a18
5089f1:	8b 93 d8 00 00 00    	mov    0xd8(%ebx),%edx
5089f7:	3b 53 1c             	cmp    0x1c(%ebx),%edx
5089fa:	73 0f                	jae    0x508a0b
5089fc:	8b 0b                	mov    (%ebx),%ecx
5089fe:	8b c3                	mov    %ebx,%eax
508a00:	c7 41 14 42 00 00 00 	movl   $0x42,0x14(%ecx)
508a07:	8b 10                	mov    (%eax),%edx
508a09:	ff 12                	call   *(%edx)
508a0b:	8b c3                	mov    %ebx,%eax
508a0d:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
508a13:	ff 52 08             	call   *0x8(%edx)
508a16:	eb 79                	jmp    0x508a91
508a18:	83 7b 10 67          	cmpl   $0x67,0x10(%ebx)
508a1c:	74 73                	je     0x508a91
508a1e:	8b 03                	mov    (%ebx),%eax
508a20:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508a27:	8b 53 10             	mov    0x10(%ebx),%edx
508a2a:	89 50 18             	mov    %edx,0x18(%eax)
508a2d:	8b c3                	mov    %ebx,%eax
508a2f:	8b 10                	mov    (%eax),%edx
508a31:	ff 12                	call   *(%edx)
508a33:	eb 5c                	jmp    0x508a91
508a35:	8b c3                	mov    %ebx,%eax
508a37:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
508a3d:	ff 12                	call   *(%edx)
508a3f:	33 f6                	xor    %esi,%esi
508a41:	eb 3b                	jmp    0x508a7e
508a43:	8b 43 08             	mov    0x8(%ebx),%eax
508a46:	85 c0                	test   %eax,%eax
508a48:	74 13                	je     0x508a5d
508a4a:	89 70 04             	mov    %esi,0x4(%eax)
508a4d:	8b 93 e8 00 00 00    	mov    0xe8(%ebx),%edx
508a53:	89 50 08             	mov    %edx,0x8(%eax)
508a56:	8b c3                	mov    %ebx,%eax
508a58:	8b 50 08             	mov    0x8(%eax),%edx
508a5b:	ff 12                	call   *(%edx)
508a5d:	33 d2                	xor    %edx,%edx
508a5f:	8b c3                	mov    %ebx,%eax
508a61:	8b 88 50 01 00 00    	mov    0x150(%eax),%ecx
508a67:	ff 51 04             	call   *0x4(%ecx)
508a6a:	85 c0                	test   %eax,%eax
508a6c:	75 0f                	jne    0x508a7d
508a6e:	8b 03                	mov    (%ebx),%eax
508a70:	c7 40 14 16 00 00 00 	movl   $0x16,0x14(%eax)
508a77:	8b c3                	mov    %ebx,%eax
508a79:	8b 10                	mov    (%eax),%edx
508a7b:	ff 12                	call   *(%edx)
508a7d:	46                   	inc    %esi
508a7e:	3b b3 e8 00 00 00    	cmp    0xe8(%ebx),%esi
508a84:	72 bd                	jb     0x508a43
508a86:	8b c3                	mov    %ebx,%eax
508a88:	8b 90 44 01 00 00    	mov    0x144(%eax),%edx
508a8e:	ff 52 08             	call   *0x8(%edx)
508a91:	8b 8b 44 01 00 00    	mov    0x144(%ebx),%ecx
508a97:	83 79 10 00          	cmpl   $0x0,0x10(%ecx)
508a9b:	74 98                	je     0x508a35
508a9d:	8b c3                	mov    %ebx,%eax
508a9f:	8b 90 54 01 00 00    	mov    0x154(%eax),%edx
508aa5:	ff 52 10             	call   *0x10(%edx)
508aa8:	8b c3                	mov    %ebx,%eax
508aaa:	8b 50 14             	mov    0x14(%eax),%edx
508aad:	ff 52 10             	call   *0x10(%edx)
508ab0:	8b c3                	mov    %ebx,%eax
508ab2:	e8 39 f1 ff ff       	call   0x507bf0
508ab7:	5e                   	pop    %esi
508ab8:	5b                   	pop    %ebx
508ab9:	c3                   	ret
508aba:	90                   	nop
508abb:	90                   	nop
508abc:	55                   	push   %ebp
508abd:	8b ec                	mov    %esp,%ebp
508abf:	53                   	push   %ebx
508ac0:	8b d8                	mov    %eax,%ebx
508ac2:	56                   	push   %esi
508ac3:	57                   	push   %edi
508ac4:	83 bb d8 00 00 00 00 	cmpl   $0x0,0xd8(%ebx)
508acb:	8b f9                	mov    %ecx,%edi
508acd:	8b f2                	mov    %edx,%esi
508acf:	75 12                	jne    0x508ae3
508ad1:	8b 43 10             	mov    0x10(%ebx),%eax
508ad4:	83 f8 65             	cmp    $0x65,%eax
508ad7:	74 1f                	je     0x508af8
508ad9:	83 f8 66             	cmp    $0x66,%eax
508adc:	74 1a                	je     0x508af8
508ade:	83 f8 67             	cmp    $0x67,%eax
508ae1:	74 15                	je     0x508af8
508ae3:	8b 03                	mov    (%ebx),%eax
508ae5:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508aec:	8b 53 10             	mov    0x10(%ebx),%edx
508aef:	89 50 18             	mov    %edx,0x18(%eax)
508af2:	8b c3                	mov    %ebx,%eax
508af4:	8b 10                	mov    (%eax),%edx
508af6:	ff 12                	call   *(%edx)
508af8:	8b c3                	mov    %ebx,%eax
508afa:	8b 4d 08             	mov    0x8(%ebp),%ecx
508afd:	51                   	push   %ecx
508afe:	8b cf                	mov    %edi,%ecx
508b00:	8b 98 54 01 00 00    	mov    0x154(%eax),%ebx
508b06:	8b d6                	mov    %esi,%edx
508b08:	ff 13                	call   *(%ebx)
508b0a:	5f                   	pop    %edi
508b0b:	5e                   	pop    %esi
508b0c:	5b                   	pop    %ebx
508b0d:	5d                   	pop    %ebp
508b0e:	c2 04 00             	ret    $0x4
508b11:	90                   	nop
508b12:	90                   	nop
508b13:	90                   	nop
508b14:	53                   	push   %ebx
508b15:	8b d8                	mov    %eax,%ebx
508b17:	83 7b 10 64          	cmpl   $0x64,0x10(%ebx)
508b1b:	74 15                	je     0x508b32
508b1d:	8b 03                	mov    (%ebx),%eax
508b1f:	c7 40 14 12 00 00 00 	movl   $0x12,0x14(%eax)
508b26:	8b 53 10             	mov    0x10(%ebx),%edx
508b29:	89 50 18             	mov    %edx,0x18(%eax)
508b2c:	8b c3                	mov    %ebx,%eax
508b2e:	8b 10                	mov    (%eax),%edx
508b30:	ff 12                	call   *(%edx)
508b32:	8b c3                	mov    %ebx,%eax
508b34:	8b 10                	mov    (%eax),%edx
508b36:	ff 52 10             	call   *0x10(%edx)
508b39:	8b c3                	mov    %ebx,%eax
508b3b:	8b 50 14             	mov    0x14(%eax),%edx
508b3e:	ff 52 08             	call   *0x8(%edx)
508b41:	8b c3                	mov    %ebx,%eax
508b43:	e8 74 08 00 00       	call   0x5093bc
508b48:	8b c3                	mov    %ebx,%eax
508b4a:	8b 90 54 01 00 00    	mov    0x154(%eax),%edx
508b50:	ff 52 14             	call   *0x14(%edx)
508b53:	8b c3                	mov    %ebx,%eax
508b55:	8b 50 14             	mov    0x14(%eax),%edx
508b58:	ff 52 10             	call   *0x10(%edx)
508b5b:	8b c3                	mov    %ebx,%eax
508b5d:	e8 8e f0 ff ff       	call   0x507bf0
508b62:	5b                   	pop    %ebx
508b63:	c3                   	ret
508b64:	53                   	push   %ebx
508b65:	8b d8                	mov    %eax,%ebx
508b67:	33 d2                	xor    %edx,%edx
508b69:	8b c3                	mov    %ebx,%eax
508b6b:	e8 08 13 00 00       	call   0x509e78
508b70:	83 bb a8 00 00 00 00 	cmpl   $0x0,0xa8(%ebx)
508b77:	75 17                	jne    0x508b90
508b79:	8b c3                	mov    %ebx,%eax
508b7b:	e8 c4 26 00 00       	call   0x50b244
508b80:	8b c3                	mov    %ebx,%eax
508b82:	e8 a9 30 00 00       	call   0x50bc30
508b87:	33 d2                	xor    %edx,%edx
508b89:	8b c3                	mov    %ebx,%eax
508b8b:	e8 a0 19 00 00       	call   0x50a530
508b90:	8b c3                	mov    %ebx,%eax
508b92:	e8 bd 36 00 00       	call   0x50c254
508b97:	83 bb ac 00 00 00 00 	cmpl   $0x0,0xac(%ebx)
508b9e:	74 11                	je     0x508bb1
508ba0:	8b 13                	mov    (%ebx),%edx
508ba2:	8b c3                	mov    %ebx,%eax
508ba4:	c7 42 14 01 00 00 00 	movl   $0x1,0x14(%edx)
508bab:	8b 10                	mov    (%eax),%edx
508bad:	ff 12                	call   *(%edx)
508baf:	eb 19                	jmp    0x508bca
508bb1:	83 bb dc 00 00 00 00 	cmpl   $0x0,0xdc(%ebx)
508bb8:	74 09                	je     0x508bc3
508bba:	8b c3                	mov    %ebx,%eax
508bbc:	e8 bb 41 00 00       	call   0x50cd7c
508bc1:	eb 07                	jmp    0x508bca
508bc3:	8b c3                	mov    %ebx,%eax
508bc5:	e8 ce 52 00 00       	call   0x50de98
508bca:	83 bb a0 00 00 00 01 	cmpl   $0x1,0xa0(%ebx)
508bd1:	7f 0d                	jg     0x508be0
508bd3:	83 bb b0 00 00 00 00 	cmpl   $0x0,0xb0(%ebx)
508bda:	75 04                	jne    0x508be0
508bdc:	33 d2                	xor    %edx,%edx
508bde:	eb 05                	jmp    0x508be5
508be0:	ba 01 00 00 00       	mov    $0x1,%edx
508be5:	8b c3                	mov    %ebx,%eax
508be7:	e8 54 21 00 00       	call   0x50ad40
508bec:	33 d2                	xor    %edx,%edx
508bee:	8b c3                	mov    %ebx,%eax
508bf0:	e8 23 14 00 00       	call   0x50a018
508bf5:	8b c3                	mov    %ebx,%eax
508bf7:	e8 c0 07 00 00       	call   0x5093bc
508bfc:	8b c3                	mov    %ebx,%eax
508bfe:	8b 50 04             	mov    0x4(%eax),%edx
508c01:	ff 52 18             	call   *0x18(%edx)
508c04:	8b c3                	mov    %ebx,%eax
508c06:	8b 90 54 01 00 00    	mov    0x154(%eax),%edx
508c0c:	ff 52 04             	call   *0x4(%edx)
508c0f:	5b                   	pop    %ebx
508c10:	c3                   	ret
508c11:	8d 40 00             	lea    0x0(%eax),%eax
508c14:	53                   	push   %ebx
508c15:	8b d8                	mov    %eax,%ebx
508c17:	56                   	push   %esi
508c18:	8b 43 14             	mov    0x14(%ebx),%eax
508c1b:	8b 08                	mov    (%eax),%ecx
508c1d:	ff 00                	incl   (%eax)
508c1f:	88 11                	mov    %dl,(%ecx)
508c21:	ff 48 04             	decl   0x4(%eax)
508c24:	75 1a                	jne    0x508c40
508c26:	8b f0                	mov    %eax,%esi
508c28:	8b c3                	mov    %ebx,%eax
508c2a:	ff 56 0c             	call   *0xc(%esi)
508c2d:	85 c0                	test   %eax,%eax
508c2f:	75 0f                	jne    0x508c40
508c31:	8b 13                	mov    (%ebx),%edx
508c33:	8b c3                	mov    %ebx,%eax
508c35:	c7 42 14 16 00 00 00 	movl   $0x16,0x14(%edx)
508c3c:	8b 10                	mov    (%eax),%edx
508c3e:	ff 12                	call   *(%edx)