577af9:	3b f8                	cmp    %eax,%edi
577afb:	7f 09                	jg     0x577b06
577afd:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
577b01:	83 ca ff             	or     $0xffffffff,%edx
577b04:	eb 3d                	jmp    0x577b43
577b06:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
577b0a:	ff 4b 1c             	decl   0x1c(%ebx)
577b0d:	79 19                	jns    0x577b28
577b0f:	8b d6                	mov    %esi,%edx
577b11:	8b c3                	mov    %ebx,%eax
577b13:	c1 ea 08             	shr    $0x8,%edx
577b16:	80 e2 ff             	and    $0xff,%dl
577b19:	81 e2 ff 00 00 00    	and    $0xff,%edx
577b1f:	e8 f4 12 00 00       	call   0x578e18
577b24:	8b d0                	mov    %eax,%edx
577b26:	eb 1b                	jmp    0x577b43
577b28:	ff 43 3c             	incl   0x3c(%ebx)
577b2b:	8b c6                	mov    %esi,%eax
577b2d:	8b 4b 18             	mov    0x18(%ebx),%ecx
577b30:	ff 43 18             	incl   0x18(%ebx)
577b33:	c1 e8 08             	shr    $0x8,%eax
577b36:	24 ff                	and    $0xff,%al
577b38:	33 d2                	xor    %edx,%edx
577b3a:	8a d0                	mov    %al,%dl
577b3c:	88 01                	mov    %al,(%ecx)
577b3e:	eb 03                	jmp    0x577b43
577b40:	83 ca ff             	or     $0xffffffff,%edx
577b43:	42                   	inc    %edx
577b44:	74 57                	je     0x577b9d
577b46:	f6 43 08 07          	testb  $0x7,0x8(%ebx)
577b4a:	75 4b                	jne    0x577b97
577b4c:	8b 7b 40             	mov    0x40(%ebx),%edi
577b4f:	85 ff                	test   %edi,%edi
577b51:	7c 10                	jl     0x577b63
577b53:	8b 43 3c             	mov    0x3c(%ebx),%eax
577b56:	3b f8                	cmp    %eax,%edi
577b58:	7f 09                	jg     0x577b63
577b5a:	83 4b 08 04          	orl    $0x4,0x8(%ebx)
577b5e:	83 ca ff             	or     $0xffffffff,%edx
577b61:	eb 37                	jmp    0x577b9a
577b63:	83 4b 04 20          	orl    $0x20,0x4(%ebx)
577b67:	ff 4b 1c             	decl   0x1c(%ebx)
577b6a:	79 16                	jns    0x577b82
577b6c:	8b d6                	mov    %esi,%edx
577b6e:	8b c3                	mov    %ebx,%eax
577b70:	80 e2 ff             	and    $0xff,%dl
577b73:	81 e2 ff 00 00 00    	and    $0xff,%edx
577b79:	e8 9a 12 00 00       	call   0x578e18
577b7e:	8b d0                	mov    %eax,%edx
577b80:	eb 18                	jmp    0x577b9a
577b82:	ff 43 3c             	incl   0x3c(%ebx)
577b85:	8b c6                	mov    %esi,%eax
577b87:	8b 4b 18             	mov    0x18(%ebx),%ecx
577b8a:	24 ff                	and    $0xff,%al
577b8c:	ff 43 18             	incl   0x18(%ebx)
577b8f:	33 d2                	xor    %edx,%edx
577b91:	8a d0                	mov    %al,%dl
577b93:	88 01                	mov    %al,(%ecx)
577b95:	eb 03                	jmp    0x577b9a
577b97:	83 ca ff             	or     $0xffffffff,%edx
577b9a:	42                   	inc    %edx
577b9b:	75 05                	jne    0x577ba2
577b9d:	83 c8 ff             	or     $0xffffffff,%eax
577ba0:	eb 02                	jmp    0x577ba4
577ba2:	33 c0                	xor    %eax,%eax
577ba4:	5f                   	pop    %edi
577ba5:	5e                   	pop    %esi
577ba6:	5b                   	pop    %ebx
577ba7:	c3                   	ret
577ba8:	ba c8 20 6a 00       	mov    $0x6a20c8,%edx
577bad:	8b 0a                	mov    (%edx),%ecx
577baf:	3b c1                	cmp    %ecx,%eax
577bb1:	74 04                	je     0x577bb7
577bb3:	85 c9                	test   %ecx,%ecx
577bb5:	7d 03                	jge    0x577bba
577bb7:	8b c2                	mov    %edx,%eax
577bb9:	c3                   	ret
577bba:	83 c2 18             	add    $0x18,%edx
577bbd:	eb ee                	jmp    0x577bad
577bbf:	68 29 06 00 00       	push   $0x629
577bc4:	68 80 28 6a 00       	push   $0x6a2880
577bc9:	68 7e 28 6a 00       	push   $0x6a287e
577bce:	e8 6d 2f fe ff       	call   0x55ab40
577bd3:	83 c4 0c             	add    $0xc,%esp
577bd6:	33 c0                	xor    %eax,%eax
577bd8:	c3                   	ret
577bd9:	90                   	nop
577bda:	90                   	nop
577bdb:	90                   	nop
577bdc:	53                   	push   %ebx
577bdd:	56                   	push   %esi
577bde:	57                   	push   %edi
577bdf:	55                   	push   %ebp
577be0:	51                   	push   %ecx
577be1:	8b f8                	mov    %eax,%edi
577be3:	8b d4                	mov    %esp,%edx
577be5:	b9 02 00 00 00       	mov    $0x2,%ecx
577bea:	8b c7                	mov    %edi,%eax
577bec:	e8 8f 0c 00 00       	call   0x578880
577bf1:	8b e8                	mov    %eax,%ebp
577bf3:	85 c0                	test   %eax,%eax
577bf5:	7d 05                	jge    0x577bfc
577bf7:	83 c8 ff             	or     $0xffffffff,%eax
577bfa:	eb 45                	jmp    0x577c41
577bfc:	8d 5d ff             	lea    -0x1(%ebp),%ebx
577bff:	8d 34 1c             	lea    (%esp,%ebx,1),%esi
577c02:	85 db                	test   %ebx,%ebx
577c04:	7c 19                	jl     0x577c1f
577c06:	33 d2                	xor    %edx,%edx
577c08:	8b c7                	mov    %edi,%eax
577c0a:	8a 16                	mov    (%esi),%dl
577c0c:	e8 47 0c 00 00       	call   0x578858
577c11:	40                   	inc    %eax
577c12:	75 05                	jne    0x577c19
577c14:	83 c8 ff             	or     $0xffffffff,%eax
577c17:	eb 28                	jmp    0x577c41
577c19:	4b                   	dec    %ebx
577c1a:	4e                   	dec    %esi
577c1b:	85 db                	test   %ebx,%ebx
577c1d:	7d e7                	jge    0x577c06
577c1f:	83 fd 02             	cmp    $0x2,%ebp
577c22:	7d 05                	jge    0x577c29
577c24:	83 c8 ff             	or     $0xffffffff,%eax
577c27:	eb 18                	jmp    0x577c41
577c29:	8a 14 24             	mov    (%esp),%dl
577c2c:	80 fa ff             	cmp    $0xff,%dl
577c2f:	75 0d                	jne    0x577c3e
577c31:	8a 4c 24 01          	mov    0x1(%esp),%cl
577c35:	80 f9 4f             	cmp    $0x4f,%cl
577c38:	75 04                	jne    0x577c3e
577c3a:	33 c0                	xor    %eax,%eax
577c3c:	eb 03                	jmp    0x577c41
577c3e:	83 c8 ff             	or     $0xffffffff,%eax
577c41:	5a                   	pop    %edx
577c42:	5d                   	pop    %ebp
577c43:	5f                   	pop    %edi
577c44:	5e                   	pop    %esi
577c45:	5b                   	pop    %ebx
577c46:	c3                   	ret
577c47:	90                   	nop
577c48:	92                   	xchg   %eax,%edx
577c49:	e8 da 12 00 00       	call   0x578f28
577c4e:	c3                   	ret
577c4f:	90                   	nop
577c50:	e8 d3 12 00 00       	call   0x578f28
577c55:	c3                   	ret
577c56:	8b c0                	mov    %eax,%eax
577c58:	55                   	push   %ebp
577c59:	8b ec                	mov    %esp,%ebp
577c5b:	51                   	push   %ecx
577c5c:	53                   	push   %ebx
577c5d:	56                   	push   %esi
577c5e:	57                   	push   %edi
577c5f:	89 4d fc             	mov    %ecx,-0x4(%ebp)
577c62:	8b fa                	mov    %edx,%edi
577c64:	8b f0                	mov    %eax,%esi
577c66:	8b 45 fc             	mov    -0x4(%ebp),%eax
577c69:	3b f0                	cmp    %eax,%esi
577c6b:	7f 07                	jg     0x577c74
577c6d:	8b 55 08             	mov    0x8(%ebp),%edx
577c70:	3b fa                	cmp    %edx,%edi
577c72:	7e 17                	jle    0x577c8b
577c74:	68 8a 00 00 00       	push   $0x8a
577c79:	68 d1 28 6a 00       	push   $0x6a28d1
577c7e:	68 b0 28 6a 00       	push   $0x6a28b0
577c83:	e8 b8 2e fe ff       	call   0x55ab40
577c88:	83 c4 0c             	add    $0xc,%esp
577c8b:	8b 55 fc             	mov    -0x4(%ebp),%edx
577c8e:	2b d6                	sub    %esi,%edx
577c90:	8b 45 08             	mov    0x8(%ebp),%eax
577c93:	2b c7                	sub    %edi,%eax
577c95:	e8 26 00 00 00       	call   0x577cc0
577c9a:	8b d8                	mov    %eax,%ebx
577c9c:	85 c0                	test   %eax,%eax
577c9e:	75 04                	jne    0x577ca4
577ca0:	33 c0                	xor    %eax,%eax
577ca2:	eb 14                	jmp    0x577cb8
577ca4:	89 73 04             	mov    %esi,0x4(%ebx)
577ca7:	89 7b 08             	mov    %edi,0x8(%ebx)
577caa:	8b 55 fc             	mov    -0x4(%ebp),%edx
577cad:	8b c3                	mov    %ebx,%eax
577caf:	89 53 0c             	mov    %edx,0xc(%ebx)
577cb2:	8b 4d 08             	mov    0x8(%ebp),%ecx
577cb5:	89 4b 10             	mov    %ecx,0x10(%ebx)
577cb8:	5f                   	pop    %edi
577cb9:	5e                   	pop    %esi
577cba:	5b                   	pop    %ebx
577cbb:	59                   	pop    %ecx
577cbc:	5d                   	pop    %ebp
577cbd:	c2 04 00             	ret    $0x4
577cc0:	53                   	push   %ebx
577cc1:	56                   	push   %esi
577cc2:	57                   	push   %edi
577cc3:	8b fa                	mov    %edx,%edi
577cc5:	8b f0                	mov    %eax,%esi
577cc7:	b8 2c 00 00 00       	mov    $0x2c,%eax
577ccc:	e8 ab 06 00 00       	call   0x57837c
577cd1:	8b d8                	mov    %eax,%ebx
577cd3:	85 c0                	test   %eax,%eax
577cd5:	75 07                	jne    0x577cde
577cd7:	33 c0                	xor    %eax,%eax
577cd9:	e9 b0 00 00 00       	jmp    0x577d8e
577cde:	33 d2                	xor    %edx,%edx
577ce0:	33 c9                	xor    %ecx,%ecx
577ce2:	89 13                	mov    %edx,(%ebx)
577ce4:	8b d6                	mov    %esi,%edx
577ce6:	0f af d7             	imul   %edi,%edx
577ce9:	89 73 14             	mov    %esi,0x14(%ebx)
577cec:	89 7b 18             	mov    %edi,0x18(%ebx)
577cef:	89 4b 1c             	mov    %ecx,0x1c(%ebx)
577cf2:	33 c0                	xor    %eax,%eax
577cf4:	89 73 20             	mov    %esi,0x20(%ebx)
577cf7:	89 43 24             	mov    %eax,0x24(%ebx)
577cfa:	89 53 28             	mov    %edx,0x28(%ebx)
577cfd:	8b 7b 20             	mov    0x20(%ebx),%edi
577d00:	85 ff                	test   %edi,%edi
577d02:	7e 1c                	jle    0x577d20
577d04:	8b c7                	mov    %edi,%eax
577d06:	c1 e0 02             	shl    $0x2,%eax
577d09:	e8 6e 06 00 00       	call   0x57837c
577d0e:	89 43 1c             	mov    %eax,0x1c(%ebx)
577d11:	85 c0                	test   %eax,%eax
577d13:	75 0b                	jne    0x577d20
577d15:	8b c3                	mov    %ebx,%eax
577d17:	e8 78 00 00 00       	call   0x577d94
577d1c:	33 c0                	xor    %eax,%eax
577d1e:	eb 6e                	jmp    0x577d8e
577d20:	8b 7b 28             	mov    0x28(%ebx),%edi
577d23:	85 ff                	test   %edi,%edi
577d25:	7e 1c                	jle    0x577d43
577d27:	8b c7                	mov    %edi,%eax
577d29:	c1 e0 02             	shl    $0x2,%eax
577d2c:	e8 4b 06 00 00       	call   0x57837c
577d31:	89 43 24             	mov    %eax,0x24(%ebx)
577d34:	85 c0                	test   %eax,%eax
577d36:	75 0b                	jne    0x577d43
577d38:	8b c3                	mov    %ebx,%eax
577d3a:	e8 55 00 00 00       	call   0x577d94
577d3f:	33 c0                	xor    %eax,%eax
577d41:	eb 4b                	jmp    0x577d8e
577d43:	33 c0                	xor    %eax,%eax
577d45:	3b f0                	cmp    %eax,%esi
577d47:	7e 19                	jle    0x577d62
577d49:	8b d0                	mov    %eax,%edx
577d4b:	0f af 53 18          	imul   0x18(%ebx),%edx
577d4f:	c1 e2 02             	shl    $0x2,%edx
577d52:	8b 4b 24             	mov    0x24(%ebx),%ecx
577d55:	03 d1                	add    %ecx,%edx
577d57:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
577d5a:	89 14 81             	mov    %edx,(%ecx,%eax,4)
577d5d:	40                   	inc    %eax
577d5e:	3b f0                	cmp    %eax,%esi
577d60:	7f e7                	jg     0x577d49
577d62:	33 c0                	xor    %eax,%eax
577d64:	eb 09                	jmp    0x577d6f
577d66:	8b 53 24             	mov    0x24(%ebx),%edx
577d69:	33 c9                	xor    %ecx,%ecx
577d6b:	89 0c 82             	mov    %ecx,(%edx,%eax,4)
577d6e:	40                   	inc    %eax
577d6f:	8b 53 28             	mov    0x28(%ebx),%edx
577d72:	3b c2                	cmp    %edx,%eax
577d74:	7c f0                	jl     0x577d66
577d76:	33 c0                	xor    %eax,%eax
577d78:	89 43 04             	mov    %eax,0x4(%ebx)
577d7b:	33 c0                	xor    %eax,%eax
577d7d:	89 43 08             	mov    %eax,0x8(%ebx)
577d80:	8b c3                	mov    %ebx,%eax
577d82:	8b 53 18             	mov    0x18(%ebx),%edx
577d85:	89 53 0c             	mov    %edx,0xc(%ebx)
577d88:	8b 4b 14             	mov    0x14(%ebx),%ecx
577d8b:	89 4b 10             	mov    %ecx,0x10(%ebx)
577d8e:	5f                   	pop    %edi
577d8f:	5e                   	pop    %esi
577d90:	5b                   	pop    %ebx
577d91:	c3                   	ret
577d92:	90                   	nop
577d93:	90                   	nop
577d94:	53                   	push   %ebx
577d95:	8b d8                	mov    %eax,%ebx
577d97:	8b 43 24             	mov    0x24(%ebx),%eax
577d9a:	85 c0                	test   %eax,%eax
577d9c:	74 29                	je     0x577dc7
577d9e:	f6 03 01             	testb  $0x1,(%ebx)
577da1:	74 17                	je     0x577dba
577da3:	68 c8 00 00 00       	push   $0xc8
577da8:	68 fe 28 6a 00       	push   $0x6a28fe
577dad:	68 db 28 6a 00       	push   $0x6a28db
577db2:	e8 89 2d fe ff       	call   0x55ab40
577db7:	83 c4 0c             	add    $0xc,%esp
577dba:	8b 43 24             	mov    0x24(%ebx),%eax
577dbd:	e8 c2 05 00 00       	call   0x578384
577dc2:	33 d2                	xor    %edx,%edx
577dc4:	89 53 24             	mov    %edx,0x24(%ebx)
577dc7:	8b 43 1c             	mov    0x1c(%ebx),%eax
577dca:	85 c0                	test   %eax,%eax
577dcc:	74 0a                	je     0x577dd8
577dce:	e8 b1 05 00 00       	call   0x578384
577dd3:	33 d2                	xor    %edx,%edx
577dd5:	89 53 1c             	mov    %edx,0x1c(%ebx)
577dd8:	8b c3                	mov    %ebx,%eax
577dda:	e8 a5 05 00 00       	call   0x578384
577ddf:	5b                   	pop    %ebx
577de0:	c3                   	ret
577de1:	90                   	nop
577de2:	90                   	nop
577de3:	90                   	nop
577de4:	53                   	push   %ebx
577de5:	8b d8                	mov    %eax,%ebx
577de7:	56                   	push   %esi
577de8:	57                   	push   %edi
577de9:	8b 43 10             	mov    0x10(%ebx),%eax
577dec:	50                   	push   %eax
577ded:	8b 43 04             	mov    0x4(%ebx),%eax
577df0:	8b 4b 0c             	mov    0xc(%ebx),%ecx
577df3:	8b 53 08             	mov    0x8(%ebx),%edx
577df6:	e8 5d fe ff ff       	call   0x577c58
577dfb:	8b f0                	mov    %eax,%esi
577dfd:	85 f6                	test   %esi,%esi
577dff:	75 17                	jne    0x577e18
577e01:	68 da 00 00 00       	push   $0xda
577e06:	68 0a 29 6a 00       	push   $0x6a290a
577e0b:	68 08 29 6a 00       	push   $0x6a2908
577e10:	e8 2b 2d fe ff       	call   0x55ab40
577e15:	83 c4 0c             	add    $0xc,%esp
577e18:	33 d2                	xor    %edx,%edx
577e1a:	eb 1f                	jmp    0x577e3b
577e1c:	33 c0                	xor    %eax,%eax
577e1e:	eb 13                	jmp    0x577e33
577e20:	8b 4b 1c             	mov    0x1c(%ebx),%ecx
577e23:	8b 7e 1c             	mov    0x1c(%esi),%edi
577e26:	8b 0c 91             	mov    (%ecx,%edx,4),%ecx
577e29:	8b 3c 97             	mov    (%edi,%edx,4),%edi
577e2c:	8b 0c 81             	mov    (%ecx,%eax,4),%ecx
577e2f:	89 0c 87             	mov    %ecx,(%edi,%eax,4)
577e32:	40                   	inc    %eax
577e33:	8b 4b 18             	mov    0x18(%ebx),%ecx
577e36:	3b c1                	cmp    %ecx,%eax
577e38:	7c e6                	jl     0x577e20
577e3a:	42                   	inc    %edx
577e3b:	8b 43 14             	mov    0x14(%ebx),%eax
577e3e:	3b d0                	cmp    %eax,%edx
577e40:	7c da                	jl     0x577e1c
577e42:	8b c6                	mov    %esi,%eax
577e44:	5f                   	pop    %edi
577e45:	5e                   	pop    %esi
577e46:	5b                   	pop    %ebx
577e47:	c3                   	ret
577e48:	53                   	push   %ebx
577e49:	8b d8                	mov    %eax,%ebx
577e4b:	56                   	push   %esi